use of com.swirlds.common.io.SerializableDataOutputStream in project hedera-services by hashgraph.
the class MerkleSpecialFilesTest method liveFireSerdeWorksWithEmpty.
@Test
void liveFireSerdeWorksWithEmpty() throws IOException, ConstructableRegistryException {
final var baos = new ByteArrayOutputStream();
final var dos = new SerializableDataOutputStream(baos);
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleSpecialFiles.class, MerkleSpecialFiles::new));
subject.serialize(dos);
dos.flush();
final var bytes = baos.toByteArray();
final var bais = new ByteArrayInputStream(bytes);
final var din = new SerializableDataInputStream(bais);
final var newSubject = new MerkleSpecialFiles();
newSubject.deserialize(din, MerkleSpecialFiles.CURRENT_VERSION);
assertTrue(newSubject.getFileContents().isEmpty(), "Deserialized instance should be empty");
}
use of com.swirlds.common.io.SerializableDataOutputStream in project hedera-services by hashgraph.
the class MerkleSpecialFilesTest method liveFireSerdeWorksWithNonEmpty.
@Test
void liveFireSerdeWorksWithNonEmpty() throws IOException, ConstructableRegistryException {
final var baos = new ByteArrayOutputStream();
final var dos = new SerializableDataOutputStream(baos);
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleSpecialFiles.class, MerkleSpecialFiles::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(FCQueue.class, FCQueue::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(FilePart.class, FilePart::new));
subject.update(fid, Arrays.copyOfRange(stuff, 0, stuff.length / 2));
subject.update(secondFid, Arrays.copyOfRange(stuff, stuff.length / 2, stuff.length));
subject.serialize(dos);
dos.flush();
final var bytes = baos.toByteArray();
final var bais = new ByteArrayInputStream(bytes);
final var din = new SerializableDataInputStream(bais);
final var newSubject = new MerkleSpecialFiles();
newSubject.deserialize(din, MerkleSpecialFiles.CURRENT_VERSION);
assertArrayEquals(subject.get(fid), newSubject.get(fid), "Deserialized contents should match for first file");
assertArrayEquals(subject.get(secondFid), newSubject.get(secondFid), "Deserialized contents should match for second file");
}
use of com.swirlds.common.io.SerializableDataOutputStream in project hedera-services by hashgraph.
the class MerkleUniqueTokenTest method liveFireSerdeWorks.
@Test
void liveFireSerdeWorks() throws IOException, ConstructableRegistryException {
// setup:
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
final var dos = new SerializableDataOutputStream(baos);
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleUniqueToken.class, MerkleUniqueToken::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(EntityId.class, EntityId::new));
// given:
subject.serialize(dos);
dos.flush();
// and:
final var bytes = baos.toByteArray();
final ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
final var din = new SerializableDataInputStream(bais);
// when:
final var newSubject = new MerkleUniqueToken();
newSubject.deserialize(din, MerkleToken.CURRENT_VERSION);
// then:
assertEquals(subject, newSubject);
}
Aggregations