Search in sources :

Example 56 with InMemoryClosableChannel

use of org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel in project neo4j by neo4j.

the class VersionAwareLogEntryReaderTest method shouldReturnNullWhenNotEnoughDataInTheChannel.

@Test
public void shouldReturnNullWhenNotEnoughDataInTheChannel() throws IOException {
    // given
    LogEntryVersion version = LogEntryVersion.CURRENT;
    final InMemoryClosableChannel channel = new InMemoryClosableChannel();
    // when
    final LogEntry logEntry = logEntryReader.readLogEntry(channel);
    // then
    assertNull(logEntry);
}
Also used : InMemoryClosableChannel(org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel) Test(org.junit.Test)

Example 57 with InMemoryClosableChannel

use of org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel in project neo4j by neo4j.

the class VersionAwareLogEntryReaderTest method shouldParseOldDoneSkipItAndReadTheOneAfter.

@Test
public void shouldParseOldDoneSkipItAndReadTheOneAfter() throws IOException {
    // given
    LogEntryVersion version = LogEntryVersion.V2_1;
    final InMemoryClosableChannel channel = new InMemoryClosableChannel();
    final OnePhaseCommit commit = new OnePhaseCommit(42, 456);
    // PREPARE
    channel.put(version.byteCode());
    channel.put(LogEntryByteCodes.DONE);
    // ignored data
    // identifier
    channel.putInt(123);
    // 2P COMMIT
    channel.put(version.byteCode());
    channel.put(LogEntryByteCodes.TX_2P_COMMIT);
    // ignored data
    // identifier
    channel.putInt(123);
    // actually used data
    channel.putLong(commit.getTxId());
    channel.putLong(commit.getTimeWritten());
    // when
    final LogEntry logEntry = logEntryReader.readLogEntry(channel);
    // then
    assertTrue(logEntry instanceof IdentifiableLogEntry);
    assertEquals(commit, ((IdentifiableLogEntry) logEntry).getEntry());
}
Also used : InMemoryClosableChannel(org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel) Test(org.junit.Test)

Example 58 with InMemoryClosableChannel

use of org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel in project neo4j by neo4j.

the class VersionAwareLogEntryReaderTest method shouldParseOldTwoPhaseCommit.

@Test
public void shouldParseOldTwoPhaseCommit() throws IOException {
    // given
    LogEntryVersion version = LogEntryVersion.V2_1;
    final InMemoryClosableChannel channel = new InMemoryClosableChannel();
    final OnePhaseCommit commit = new OnePhaseCommit(42, 456);
    channel.put(version.byteCode());
    channel.put(LogEntryByteCodes.TX_2P_COMMIT);
    // ignored data
    // identifier
    channel.putInt(123);
    // actually used data
    channel.putLong(commit.getTxId());
    channel.putLong(commit.getTimeWritten());
    // when
    final LogEntry logEntry = logEntryReader.readLogEntry(channel);
    // then
    assertTrue(logEntry instanceof IdentifiableLogEntry);
    assertEquals(commit, ((IdentifiableLogEntry) logEntry).getEntry());
}
Also used : InMemoryClosableChannel(org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel) Test(org.junit.Test)

Example 59 with InMemoryClosableChannel

use of org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel in project neo4j by neo4j.

the class RelationshipGroupCommandV2_2Test method assertSerializationWorksFor.

private void assertSerializationWorksFor(Command.RelationshipGroupCommand cmd) throws IOException {
    InMemoryClosableChannel channel = new InMemoryClosableChannel();
    cmd.serialize(channel);
    CommandReader commandReader = new PhysicalLogCommandReaderV2_2();
    Command.RelationshipGroupCommand result = (Command.RelationshipGroupCommand) commandReader.read(channel);
    RelationshipGroupRecord recordBefore = cmd.getBefore();
    RelationshipGroupRecord recordAfter = result.getAfter();
    // Then
    assertThat(recordBefore.getFirstIn(), equalTo(recordAfter.getFirstIn()));
    assertThat(recordBefore.getFirstOut(), equalTo(recordAfter.getFirstOut()));
    assertThat(recordBefore.getFirstLoop(), equalTo(recordAfter.getFirstLoop()));
    assertThat(recordBefore.getNext(), equalTo(recordAfter.getNext()));
    assertThat(recordBefore.getOwningNode(), equalTo(recordAfter.getOwningNode()));
    assertThat(recordBefore.getPrev(), equalTo(recordAfter.getPrev()));
    assertThat(recordBefore.getType(), equalTo(recordAfter.getType()));
}
Also used : CommandReader(org.neo4j.storageengine.api.CommandReader) RelationshipGroupRecord(org.neo4j.kernel.impl.store.record.RelationshipGroupRecord) InMemoryClosableChannel(org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel) Command(org.neo4j.kernel.impl.transaction.command.Command) PhysicalLogCommandReaderV2_2(org.neo4j.kernel.impl.transaction.command.PhysicalLogCommandReaderV2_2)

Example 60 with InMemoryClosableChannel

use of org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel in project neo4j by neo4j.

the class SchemaRuleCommandTest method shouldWriteSchemaRuleToLog.

@Test
public void shouldWriteSchemaRuleToLog() throws Exception {
    // GIVEN
    SchemaRecord beforeRecords = serialize(rule, id, false, false);
    SchemaRecord afterRecords = serialize(rule, id, true, true);
    SchemaRuleCommand command = new SchemaRuleCommand(beforeRecords, afterRecords, rule);
    InMemoryClosableChannel buffer = new InMemoryClosableChannel();
    when(neoStores.getSchemaStore()).thenReturn(schemaStore);
    // WHEN
    command.serialize(buffer);
    Command readCommand = reader.read(buffer);
    // THEN
    assertThat(readCommand, instanceOf(SchemaRuleCommand.class));
    assertSchemaRule((SchemaRuleCommand) readCommand);
}
Also used : SchemaRuleCommand(org.neo4j.kernel.impl.transaction.command.Command.SchemaRuleCommand) SchemaRecord(org.neo4j.kernel.impl.store.record.SchemaRecord) InMemoryClosableChannel(org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel) Command(org.neo4j.kernel.impl.transaction.command.Command) SchemaRuleCommand(org.neo4j.kernel.impl.transaction.command.Command.SchemaRuleCommand) Test(org.junit.Test)

Aggregations

InMemoryClosableChannel (org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel)66 Test (org.junit.Test)63 Command (org.neo4j.kernel.impl.transaction.command.Command)8 NodeRecord (org.neo4j.kernel.impl.store.record.NodeRecord)5 RelationshipGroupRecord (org.neo4j.kernel.impl.store.record.RelationshipGroupRecord)4 LogPosition (org.neo4j.kernel.impl.transaction.log.LogPosition)4 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)3 PropertyRecord (org.neo4j.kernel.impl.store.record.PropertyRecord)3 RelationshipRecord (org.neo4j.kernel.impl.store.record.RelationshipRecord)3 CommandReader (org.neo4j.storageengine.api.CommandReader)3 Before (org.junit.Before)2 AddRelationshipCommand (org.neo4j.kernel.impl.index.IndexCommand.AddRelationshipCommand)2 CountsKey (org.neo4j.kernel.impl.store.counts.keys.CountsKey)2 SchemaRecord (org.neo4j.kernel.impl.store.record.SchemaRecord)2 SchemaRuleCommand (org.neo4j.kernel.impl.transaction.command.Command.SchemaRuleCommand)2 ReadableClosablePositionAwareChannel (org.neo4j.kernel.impl.transaction.log.ReadableClosablePositionAwareChannel)2 HashMap (java.util.HashMap)1 Map (java.util.Map)1 ChannelBuffer (org.jboss.netty.buffer.ChannelBuffer)1 EndOfStreamException (org.neo4j.causalclustering.messaging.EndOfStreamException)1