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);
}
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);
}
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);
}
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);
}
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);
}
Aggregations