@Override public RelationshipTypeTokenRecord newRecord() { return new RelationshipTypeTokenRecord( -1 ); } }
@Override public RelationshipTypeTokenRecord newUnused( long key, Void additionalData ) { return andMarkAsCreated( new RelationshipTypeTokenRecord( toIntExact( key ) ) ); }
public void relationshipType( int id, String label, int... dynamicIds ) { RelationshipTypeTokenRecord before = new RelationshipTypeTokenRecord( id ); RelationshipTypeTokenRecord after = withName( new RelationshipTypeTokenRecord( id ), dynamicIds, label ); otherCommands.add( new Command.RelationshipTypeTokenCommand( before, after ) ); }
public static RelationshipTypeTokenCommand createRelationshipTypeToken( int id, int nameId ) { RelationshipTypeTokenRecord before = new RelationshipTypeTokenRecord( id ); RelationshipTypeTokenRecord after = new RelationshipTypeTokenRecord( id ); populateTokenRecord( after, nameId ); return new RelationshipTypeTokenCommand( before, after ); }
@Test void shouldNotReportAnythingForRecordThatDoesNotReferenceADynamicBlock() { // given RelationshipTypeTokenRecord label = inUse( new RelationshipTypeTokenRecord( 42 ) ); // when RelationshipTypeConsistencyReport report = check( label ); // then verifyNoMoreInteractions( report ); }
@Override public Generator<RelationshipTypeTokenRecord> relationshipTypeToken() { return ( recordSize, format, recordId ) -> new RelationshipTypeTokenRecord( toIntExact( recordId ) ).initialize( random.nextBoolean(), randomInt( tokenBits ) ); }
@Test void shouldNotReportAnythingForRecordNotInUse() { // given RelationshipTypeTokenRecord label = notInUse( new RelationshipTypeTokenRecord( 42 ) ); // when RelationshipTypeConsistencyReport report = check( label ); // then verifyNoMoreInteractions( report ); }
@Test public void shouldApplyRelationshipTypeTokenCommandToTheStore() throws Exception { // given final BatchTransactionApplier applier = newApplier( false ); final RelationshipTypeTokenRecord before = new RelationshipTypeTokenRecord( 42 ); final RelationshipTypeTokenRecord after = new RelationshipTypeTokenRecord( 42 ); after.setInUse( true ); after.setNameId( 323 ); final Command command = new RelationshipTypeTokenCommand( before, after ); // when boolean result = apply( applier, command::handle, transactionToApply ); // then assertFalse( result ); verify( relationshipTypeTokenStore, times( 1 ) ).updateRecord( after ); }
private RelationshipTypeTokenRecord createRelationshipTypeTokenRecord( int id ) { RelationshipTypeTokenRecord relationshipTypeTokenRecord = new RelationshipTypeTokenRecord( id ); relationshipTypeTokenRecord.setInUse( true ); relationshipTypeTokenRecord.setNameId( 333 ); relationshipTypeTokenRecord.addNameRecord( new DynamicRecord( 43 ) ); return relationshipTypeTokenRecord; }
@Override public RelationshipTypeTokenRecord clone() { RelationshipTypeTokenRecord relationshipTypeTokenRecord = new RelationshipTypeTokenRecord( getIntId() ); relationshipTypeTokenRecord.setInUse( inUse() ); if ( isCreated() ) { relationshipTypeTokenRecord.setCreated(); } relationshipTypeTokenRecord.setNameId( getNameId() ); relationshipTypeTokenRecord.addNameRecords( getNameRecords() ); return relationshipTypeTokenRecord; } }
@Test void shouldReportDynamicBlockNotInUse() { // given RelationshipTypeTokenRecord label = inUse( new RelationshipTypeTokenRecord( 42 ) ); DynamicRecord name = addRelationshipTypeName( notInUse( new DynamicRecord( 6 ) ) ); label.setNameId( (int) name.getId() ); // when RelationshipTypeConsistencyReport report = check( label ); // then verify( report ).nameBlockNotInUse( name ); verifyNoMoreInteractions( report ); }
@Test void shouldReportEmptyName() { // given RelationshipTypeTokenRecord label = inUse( new RelationshipTypeTokenRecord( 42 ) ); DynamicRecord name = addRelationshipTypeName( inUse( new DynamicRecord( 6 ) ) ); label.setNameId( (int) name.getId() ); // when RelationshipTypeConsistencyReport report = check( label ); // then verify( report ).emptyName( name ); verifyNoMoreInteractions( report ); } }
private int createNewRelationshipType( String name ) { int id = (int) relationshipTypeTokenStore.nextId(); RelationshipTypeTokenRecord record = new RelationshipTypeTokenRecord( id ); record.setInUse( true ); record.setCreated(); Collection<DynamicRecord> nameRecords = relationshipTypeTokenStore.allocateNameRecords( encodeString( name ) ); record.setNameId( (int) Iterables.first( nameRecords ).getId() ); record.addNameRecords( nameRecords ); relationshipTypeTokenStore.updateRecord( record ); tokenHolders.relationshipTypeTokens().addToken( new NamedToken( name, id ) ); return id; }
@Test void shouldReportIllegalTargetNode() { // given checkSingleDirection(); RelationshipRecord relationship = inUse( new RelationshipRecord( 42, 1, NONE, 4 ) ); add( inUse( new RelationshipTypeTokenRecord( 4 ) ) ); add( inUse( new NodeRecord( 1, false, 42, NONE ) ) ); // when RelationshipConsistencyReport report = check( relationship ); // then verify( report ).illegalTargetNode(); verifyNoMoreInteractions( report ); }
@Test void shouldReportIllegalSourceNode() { // 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 RelationshipConsistencyReport report = check( relationship ); // then verify( report ).illegalSourceNode(); verifyNoMoreInteractions( report ); }
@Test void shouldReportRelationshipTypeNotInUse() { // given checkSingleDirection(); RelationshipRecord relationship = inUse( new RelationshipRecord( 42, 1, 2, 4 ) ); RelationshipTypeTokenRecord relationshipType = add( notInUse( new RelationshipTypeTokenRecord( 4 ) ) ); add( inUse( new NodeRecord( 1, false, 42, NONE ) ) ); add( inUse( new NodeRecord( 2, false, 42, NONE ) ) ); // when RelationshipConsistencyReport report = check( relationship ); // then verify( report ).relationshipTypeNotInUse( relationshipType ); verifyNoMoreInteractions( report ); }
@Test void shouldNotReportAnythingForRelationshipThatDoesNotReferenceOtherRecords() { // 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, 42, NONE ) ) ); // when RelationshipConsistencyReport report = check( relationship ); // then verifyNoMoreInteractions( report ); }
@Test void shouldReportSourceNodeNotReferencingBackForFirstRelationshipInSourceChain() { // given checkSingleDirection(); initialize( RELATIONSHIPS, NODES ); RelationshipRecord relationship = inUse( new RelationshipRecord( 42, 1, 2, 4 ) ); add( inUse( new RelationshipTypeTokenRecord( 4 ) ) ); NodeRecord source = add( inUse( new NodeRecord( 1, false, 7, NONE ) ) ); add( inUse( new NodeRecord( 2, false, 42, NONE ) ) ); // when RelationshipConsistencyReport report = check( relationship ); // then verify( report ).sourceNodeDoesNotReferenceBack( source ); verifyNoMoreInteractions( report ); }
@Test void shouldReportSourceNextReferencingOtherNodes() { // 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, 42, NONE ) ) ); RelationshipRecord sNext = add( inUse( new RelationshipRecord( 51, 8, 9, 0 ) ) ); relationship.setFirstNextRel( sNext.getId() ); // when RelationshipConsistencyReport report = check( relationship ); // then verify( report ).sourceNextReferencesOtherNodes( sNext ); verifyNoMoreInteractions( report ); }
@Test void shouldReportSourceNextNotReferencingBack() { // 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, 42, NONE ) ) ); RelationshipRecord sNext = add( inUse( new RelationshipRecord( 51, 3, 1, 0 ) ) ); relationship.setFirstNextRel( sNext.getId() ); // when RelationshipConsistencyReport report = check( relationship ); // then verify( report ).sourceNextDoesNotReferenceBack( sNext ); verifyNoMoreInteractions( report ); }