Search in sources :

Example 51 with RelationshipTypeTokenRecord

use of org.neo4j.kernel.impl.store.record.RelationshipTypeTokenRecord in project neo4j by neo4j.

the class RelationshipRecordCheckTest method shouldReportPropertyNotFirstInChain.

@Test
public void shouldReportPropertyNotFirstInChain() throws Exception {
    // given
    checkSingleDirection();
    RelationshipRecord relationship = inUse(new RelationshipRecord(42, 1, 2, 4));
    add(inUse(new RelationshipTypeTokenRecord(4)));
    relationship.setNextProp(11);
    add(inUse(new NodeRecord(1, false, 42, NONE)));
    add(inUse(new NodeRecord(2, false, 42, NONE)));
    PropertyRecord property = add(inUse(new PropertyRecord(11)));
    property.setPrevProp(6);
    // when
    ConsistencyReport.RelationshipConsistencyReport report = check(relationship);
    // then
    verify(report).propertyNotFirstInChain(property);
    verifyNoMoreInteractions(report);
}
Also used : NodeRecord(org.neo4j.kernel.impl.store.record.NodeRecord) PropertyRecord(org.neo4j.kernel.impl.store.record.PropertyRecord) RelationshipTypeTokenRecord(org.neo4j.kernel.impl.store.record.RelationshipTypeTokenRecord) RelationshipRecord(org.neo4j.kernel.impl.store.record.RelationshipRecord) ConsistencyReport(org.neo4j.consistency.report.ConsistencyReport) Test(org.junit.Test)

Example 52 with RelationshipTypeTokenRecord

use of org.neo4j.kernel.impl.store.record.RelationshipTypeTokenRecord in project neo4j by neo4j.

the class RelationshipRecordCheckTest method shouldReportIllegalSourceNode.

@Test
public void shouldReportIllegalSourceNode() throws Exception {
    // given
    checkSingleDirection();
    RelationshipRecord relationship = inUse(new RelationshipRecord(42, NONE, 1, 4));
    add(inUse(new RelationshipTypeTokenRecord(4)));
    add(inUse(new NodeRecord(1, false, 42, NONE)));
    // when
    ConsistencyReport.RelationshipConsistencyReport report = check(relationship);
    // then
    verify(report).illegalSourceNode();
    verifyNoMoreInteractions(report);
}
Also used : NodeRecord(org.neo4j.kernel.impl.store.record.NodeRecord) RelationshipTypeTokenRecord(org.neo4j.kernel.impl.store.record.RelationshipTypeTokenRecord) RelationshipRecord(org.neo4j.kernel.impl.store.record.RelationshipRecord) ConsistencyReport(org.neo4j.consistency.report.ConsistencyReport) Test(org.junit.Test)

Example 53 with RelationshipTypeTokenRecord

use of org.neo4j.kernel.impl.store.record.RelationshipTypeTokenRecord in project neo4j by neo4j.

the class RelationshipRecordCheckTest method shouldReportTargetPrevReferencingOtherNodesWhenReferencingSourceNode.

@Test
public void shouldReportTargetPrevReferencingOtherNodesWhenReferencingSourceNode() throws Exception {
    // given
    RelationshipRecord relationship = inUse(new RelationshipRecord(42, 1, 2, 4));
    add(inUse(new RelationshipTypeTokenRecord(4)));
    add(inUse(new NodeRecord(1, false, 42, NONE)));
    add(inUse(new NodeRecord(2, false, 0, NONE)));
    RelationshipRecord tPrev = add(inUse(new RelationshipRecord(51, 1, 0, 0)));
    relationship.setSecondPrevRel(tPrev.getId());
    relationship.setFirstInSecondChain(false);
    // when
    ConsistencyReport.RelationshipConsistencyReport report = check(relationship);
    // then
    verify(report).targetPrevReferencesOtherNodes(tPrev);
    verifyNoMoreInteractions(report);
}
Also used : NodeRecord(org.neo4j.kernel.impl.store.record.NodeRecord) RelationshipTypeTokenRecord(org.neo4j.kernel.impl.store.record.RelationshipTypeTokenRecord) RelationshipRecord(org.neo4j.kernel.impl.store.record.RelationshipRecord) ConsistencyReport(org.neo4j.consistency.report.ConsistencyReport) Test(org.junit.Test)

Example 54 with RelationshipTypeTokenRecord

use of org.neo4j.kernel.impl.store.record.RelationshipTypeTokenRecord in project neo4j by neo4j.

the class OwnerCheckTest method shouldReportDynamicRecordOwnedByOtherDynamicRecordAndRelationshipLabel.

@Test
public void shouldReportDynamicRecordOwnedByOtherDynamicRecordAndRelationshipLabel() throws Exception {
    // given
    RecordAccessStub records = new RecordAccessStub();
    OwnerCheck decorator = new OwnerCheck(true, DynamicStore.RELATIONSHIP_TYPE);
    RecordCheck<DynamicRecord, ConsistencyReport.DynamicConsistencyReport> dynChecker = decorator.decorateDynamicChecker(RecordType.RELATIONSHIP_TYPE_NAME, dummyDynamicCheck(configureDynamicStore(50), DynamicStore.RELATIONSHIP_TYPE));
    RecordCheck<RelationshipTypeTokenRecord, ConsistencyReport.RelationshipTypeConsistencyReport> labelCheck = decorator.decorateRelationshipTypeTokenChecker(dummyRelationshipLabelCheck());
    DynamicRecord owned = records.addRelationshipTypeName(inUse(string(new DynamicRecord(42))));
    DynamicRecord dynamic = records.addRelationshipTypeName(inUse(string(new DynamicRecord(1))));
    RelationshipTypeTokenRecord label = records.add(inUse(new RelationshipTypeTokenRecord(1)));
    dynamic.setNextBlock(owned.getId());
    label.setNameId((int) owned.getId());
    // when
    ConsistencyReport.DynamicConsistencyReport dynReport = check(ConsistencyReport.DynamicConsistencyReport.class, dynChecker, dynamic, records);
    ConsistencyReport.RelationshipTypeConsistencyReport labelReport = check(ConsistencyReport.RelationshipTypeConsistencyReport.class, labelCheck, label, records);
    // then
    verifyNoMoreInteractions(dynReport);
    verify(labelReport).nameMultipleOwners(dynamic);
    verifyNoMoreInteractions(labelReport);
}
Also used : DynamicRecord(org.neo4j.kernel.impl.store.record.DynamicRecord) RelationshipTypeTokenRecord(org.neo4j.kernel.impl.store.record.RelationshipTypeTokenRecord) RecordAccessStub(org.neo4j.consistency.store.RecordAccessStub) ConsistencyReport(org.neo4j.consistency.report.ConsistencyReport) Test(org.junit.Test)

Example 55 with RelationshipTypeTokenRecord

use of org.neo4j.kernel.impl.store.record.RelationshipTypeTokenRecord in project neo4j by neo4j.

the class OwnerCheckTest method shouldReportDynamicRecordOwnedByTwoRelationshipLabels.

@Test
public void shouldReportDynamicRecordOwnedByTwoRelationshipLabels() throws Exception {
    // given
    RecordAccessStub records = new RecordAccessStub();
    OwnerCheck decorator = new OwnerCheck(true, DynamicStore.RELATIONSHIP_TYPE);
    RecordCheck<RelationshipTypeTokenRecord, ConsistencyReport.RelationshipTypeConsistencyReport> checker = decorator.decorateRelationshipTypeTokenChecker(dummyRelationshipLabelCheck());
    DynamicRecord dynamic = records.addRelationshipTypeName(inUse(string(new DynamicRecord(42))));
    RelationshipTypeTokenRecord record1 = records.add(inUse(new RelationshipTypeTokenRecord(1)));
    RelationshipTypeTokenRecord record2 = records.add(inUse(new RelationshipTypeTokenRecord(2)));
    record1.setNameId((int) dynamic.getId());
    record2.setNameId((int) dynamic.getId());
    // when
    ConsistencyReport.RelationshipTypeConsistencyReport report1 = check(ConsistencyReport.RelationshipTypeConsistencyReport.class, checker, record1, records);
    ConsistencyReport.RelationshipTypeConsistencyReport report2 = check(ConsistencyReport.RelationshipTypeConsistencyReport.class, checker, record2, records);
    // then
    verifyNoMoreInteractions(report1);
    verify(report2).nameMultipleOwners(record1);
    verifyNoMoreInteractions(report2);
}
Also used : DynamicRecord(org.neo4j.kernel.impl.store.record.DynamicRecord) RelationshipTypeTokenRecord(org.neo4j.kernel.impl.store.record.RelationshipTypeTokenRecord) RecordAccessStub(org.neo4j.consistency.store.RecordAccessStub) ConsistencyReport(org.neo4j.consistency.report.ConsistencyReport) Test(org.junit.Test)

Aggregations

RelationshipTypeTokenRecord (org.neo4j.kernel.impl.store.record.RelationshipTypeTokenRecord)66 Test (org.junit.Test)36 ConsistencyReport (org.neo4j.consistency.report.ConsistencyReport)33 NodeRecord (org.neo4j.kernel.impl.store.record.NodeRecord)30 RelationshipRecord (org.neo4j.kernel.impl.store.record.RelationshipRecord)30 DynamicRecord (org.neo4j.kernel.impl.store.record.DynamicRecord)17 IOException (java.io.IOException)9 PropertyRecord (org.neo4j.kernel.impl.store.record.PropertyRecord)7 StorageCommand (org.neo4j.storageengine.api.StorageCommand)6 LabelTokenRecord (org.neo4j.kernel.impl.store.record.LabelTokenRecord)5 PropertyKeyTokenRecord (org.neo4j.kernel.impl.store.record.PropertyKeyTokenRecord)5 RepeatedTest (org.junit.jupiter.api.RepeatedTest)4 Test (org.junit.jupiter.api.Test)4 PrimitiveRecord (org.neo4j.kernel.impl.store.record.PrimitiveRecord)4 RelationshipGroupRecord (org.neo4j.kernel.impl.store.record.RelationshipGroupRecord)4 SchemaRecord (org.neo4j.kernel.impl.store.record.SchemaRecord)4 RecordAccessStub (org.neo4j.consistency.store.RecordAccessStub)3 NeoStores (org.neo4j.kernel.impl.store.NeoStores)3 RelationshipTypeTokenCommand (org.neo4j.kernel.impl.transaction.command.Command.RelationshipTypeTokenCommand)3 LinkedList (java.util.LinkedList)2