@Test
public void shouldSerializeDynamicRecordsRemoved() throws Exception
{
channel.reset();
NodeRecord before = new NodeRecord( 12, false, 1, 2 );
before.setInUse( true );
List<DynamicRecord> beforeDyn = singletonList( dynamicRecord(
0, true, true, -1L, LONG.intValue(), new byte[]{1, 2, 3, 4, 5, 6, 7, 8} ) );
before.setLabelField( dynamicPointer( beforeDyn ), beforeDyn );
NodeRecord after = new NodeRecord( 12, false, 2, 1 );
after.setInUse( true );
List<DynamicRecord> dynamicRecords = singletonList( dynamicRecord(
0, false, true, -1L, LONG.intValue(), new byte[]{ 1, 2, 3, 4, 5, 6, 7, 8} ) );
after.setLabelField( dynamicPointer( dynamicRecords ), dynamicRecords );
Command.NodeCommand cmd = new Command.NodeCommand( before, after );
cmd.serialize( channel );
Command.NodeCommand result = (Command.NodeCommand) commandReader.read( channel );
assertThat( result, equalTo( cmd ) );
assertThat( result.getMode(), equalTo( cmd.getMode() ) );
assertThat( result.getBefore(), equalTo( cmd.getBefore() ) );
assertThat( result.getAfter(), equalTo( cmd.getAfter() ) );
assertThat( result.getBefore().getDynamicLabelRecords(), equalTo( cmd.getBefore().getDynamicLabelRecords() ) );
assertThat( result.getAfter().getDynamicLabelRecords(), equalTo( cmd.getAfter().getDynamicLabelRecords() ) );
}