use of org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel in project neo4j by neo4j.
the class VersionAwareLogEntryReaderTest method shouldReadACheckPointLogEntry.
@Test
public void shouldReadACheckPointLogEntry() throws IOException {
// given
LogEntryVersion version = LogEntryVersion.CURRENT;
final LogPosition logPosition = new LogPosition(42, 43);
final CheckPoint checkPoint = new CheckPoint(version, logPosition);
final InMemoryClosableChannel channel = new InMemoryClosableChannel();
channel.put(version.byteCode());
channel.put(LogEntryByteCodes.CHECK_POINT);
channel.putLong(logPosition.getLogVersion());
channel.putLong(logPosition.getByteOffset());
// when
final LogEntry logEntry = logEntryReader.readLogEntry(channel);
// then
assertEquals(checkPoint, logEntry);
}
use of org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel in project neo4j by neo4j.
the class LogHeaderReaderTest method shouldReadALongString.
@Test
public void shouldReadALongString() throws IOException {
// given
// build a string longer than 32k
int stringSize = 32 * 1024 + 1;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < stringSize; i++) {
sb.append("x");
}
String lengthyString = sb.toString();
// we need 3 more bytes for writing the string length
InMemoryClosableChannel channel = new InMemoryClosableChannel(stringSize + 3);
IoPrimitiveUtils.write3bLengthAndString(channel, lengthyString);
// when
String stringFromChannel = IoPrimitiveUtils.read3bLengthAndString(channel);
// then
assertEquals(lengthyString, stringFromChannel);
}
use of org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel in project neo4j by neo4j.
the class LogHeaderWriterTest method shouldWriteALogHeaderInTheGivenChannel.
@Test
public void shouldWriteALogHeaderInTheGivenChannel() throws IOException {
// given
final InMemoryClosableChannel channel = new InMemoryClosableChannel();
// when
writeLogHeader(channel, expectedLogVersion, expectedTxId);
// then
long encodedLogVersions = channel.getLong();
assertEquals(encodeLogVersion(expectedLogVersion), encodedLogVersions);
byte logFormatVersion = decodeLogFormatVersion(encodedLogVersions);
assertEquals(CURRENT_LOG_VERSION, logFormatVersion);
long logVersion = decodeLogVersion(encodedLogVersions);
assertEquals(expectedLogVersion, logVersion);
long txId = channel.getLong();
assertEquals(expectedTxId, txId);
}
use of org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel in project neo4j by neo4j.
the class VersionAwareLogEntryReaderTest method shouldReturnNullWhenLogEntryIsEmpty.
@Test
public void shouldReturnNullWhenLogEntryIsEmpty() throws IOException {
// given
LogEntryVersion version = LogEntryVersion.CURRENT;
final InMemoryClosableChannel channel = new InMemoryClosableChannel();
channel.put(version.byteCode());
channel.put(LogEntryByteCodes.EMPTY);
// when
final LogEntry logEntry = logEntryReader.readLogEntry(channel);
// then
assertNull(logEntry);
}
use of org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel in project neo4j by neo4j.
the class VersionAwareLogEntryReaderTest method shouldParseOldLogEntryEmptyANdReturnNull.
@Test
public void shouldParseOldLogEntryEmptyANdReturnNull() throws IOException {
// given
LogEntryVersion version = LogEntryVersion.V2_1;
final InMemoryClosableChannel channel = new InMemoryClosableChannel();
channel.put(version.byteCode());
channel.put(LogEntryByteCodes.EMPTY);
// when
final LogEntry logEntry = logEntryReader.readLogEntry(channel);
// then
assertNull(logEntry);
}
Aggregations