mirror of
https://github.com/xpipe-io/xpipe.git
synced 2026-02-20 08:06:20 -05:00
Rework nodes
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
package io.xpipe.core.test;
|
||||
|
||||
import io.xpipe.core.data.generic.GenericDataStreamReader;
|
||||
import io.xpipe.core.data.generic.GenericDataStreamParser;
|
||||
import io.xpipe.core.data.generic.GenericDataStreamWriter;
|
||||
import io.xpipe.core.data.generic.GenericDataStructureReader;
|
||||
import io.xpipe.core.data.generic.GenericDataStructureNodeReader;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -25,8 +25,8 @@ public class GenericDataStructureIoTest {
|
||||
var format = HexFormat.of().withPrefix("0x").withDelimiter(" ");
|
||||
System.out.println(format.formatHex(data));
|
||||
|
||||
var reader = new GenericDataStructureReader();
|
||||
GenericDataStreamReader.read(new ByteArrayInputStream(data), reader);
|
||||
var reader = new GenericDataStructureNodeReader();
|
||||
GenericDataStreamParser.read(new ByteArrayInputStream(data), reader);
|
||||
var node = reader.create();
|
||||
|
||||
Assertions.assertEquals(obj, node);
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package io.xpipe.core.test;
|
||||
|
||||
import io.xpipe.core.data.typed.TypedDataStreamReader;
|
||||
import io.xpipe.core.data.typed.TypedDataStreamParser;
|
||||
import io.xpipe.core.data.typed.TypedDataStreamWriter;
|
||||
import io.xpipe.core.data.typed.TypedDataStructureNodeReader;
|
||||
import io.xpipe.core.data.typed.TypedReusableDataStructureNodeReader;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -20,17 +21,41 @@ public class TypedDataStructureIoTest {
|
||||
var obj = createTestData();
|
||||
var type = obj.getDataType();
|
||||
var dataOut = new ByteArrayOutputStream();
|
||||
TypedDataStreamWriter.writeStructure(dataOut, obj);
|
||||
TypedDataStreamWriter.writeStructure(dataOut, obj, type);
|
||||
var data = dataOut.toByteArray();
|
||||
|
||||
var format = HexFormat.of().withPrefix("0x").withDelimiter(" ");
|
||||
System.out.println(format.formatHex(data));
|
||||
|
||||
var reader = new TypedDataStructureNodeReader(type);
|
||||
TypedDataStreamReader.readStructure(new ByteArrayInputStream(data), reader);
|
||||
new TypedDataStreamParser(type).readStructure(new ByteArrayInputStream(data), reader);
|
||||
var node = reader.create();
|
||||
|
||||
Assertions.assertEquals(obj, node);
|
||||
System.out.println(node);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBasicReusableIo() throws IOException {
|
||||
var obj = createTestData();
|
||||
var type = obj.getDataType();
|
||||
var dataOut = new ByteArrayOutputStream();
|
||||
TypedDataStreamWriter.writeStructure(dataOut, obj, type);
|
||||
TypedDataStreamWriter.writeStructure(dataOut, obj, type);
|
||||
var data = dataOut.toByteArray();
|
||||
|
||||
var format = HexFormat.of().withPrefix("0x").withDelimiter(" ");
|
||||
System.out.println(format.formatHex(data));
|
||||
|
||||
var in = new ByteArrayInputStream(data);
|
||||
var reader = new TypedReusableDataStructureNodeReader(type);
|
||||
new TypedDataStreamParser(type).readStructure(in, reader);
|
||||
var firstNode = reader.create();
|
||||
new TypedDataStreamParser(type).readStructure(in, reader);
|
||||
var secondNode = reader.create();
|
||||
|
||||
System.out.println(firstNode);
|
||||
Assertions.assertEquals(obj, firstNode);
|
||||
Assertions.assertEquals(obj, secondNode);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user