aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/eu/mulk/jgvariant/core/DecoderTest.java123
1 files changed, 43 insertions, 80 deletions
diff --git a/src/test/java/eu/mulk/jgvariant/core/DecoderTest.java b/src/test/java/eu/mulk/jgvariant/core/DecoderTest.java
index 13cd398..d37f6a2 100644
--- a/src/test/java/eu/mulk/jgvariant/core/DecoderTest.java
+++ b/src/test/java/eu/mulk/jgvariant/core/DecoderTest.java
@@ -4,13 +4,6 @@ import static java.nio.ByteOrder.LITTLE_ENDIAN;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.junit.jupiter.api.Assertions.assertEquals;
-import eu.mulk.jgvariant.core.Value.Array;
-import eu.mulk.jgvariant.core.Value.Bool;
-import eu.mulk.jgvariant.core.Value.Int32;
-import eu.mulk.jgvariant.core.Value.Int8;
-import eu.mulk.jgvariant.core.Value.Maybe;
-import eu.mulk.jgvariant.core.Value.Str;
-import eu.mulk.jgvariant.core.Value.Structure;
import java.nio.ByteBuffer;
import java.util.List;
import java.util.Optional;
@@ -25,26 +18,23 @@ class DecoderTest {
@Test
void testString() {
var data = new byte[] {0x68, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x77, 0x6F, 0x72, 0x6C, 0x64, 0x00};
- var decoder = Decoder.ofStr(UTF_8);
- assertEquals(new Str("hello world"), decoder.decode(ByteBuffer.wrap(data)));
+ var decoder = Decoder.ofString(UTF_8);
+ assertEquals("hello world", decoder.decode(ByteBuffer.wrap(data)));
}
@Test
void testMaybe() {
var data =
new byte[] {0x68, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x77, 0x6F, 0x72, 0x6C, 0x64, 0x00, 0x00};
- var decoder = Decoder.ofMaybe(Decoder.ofStr(UTF_8));
- assertEquals(
- new Maybe<>(Optional.of(new Str("hello world"))), decoder.decode(ByteBuffer.wrap(data)));
+ var decoder = Decoder.ofMaybe(Decoder.ofString(UTF_8));
+ assertEquals(Optional.of("hello world"), decoder.decode(ByteBuffer.wrap(data)));
}
@Test
void testBooleanArray() {
var data = new byte[] {0x01, 0x00, 0x00, 0x01, 0x01};
- var decoder = Decoder.ofArray(Decoder.ofBool());
- assertEquals(
- new Array<>(List.of(Bool.TRUE, Bool.FALSE, Bool.FALSE, Bool.TRUE, Bool.TRUE)),
- decoder.decode(ByteBuffer.wrap(data)));
+ var decoder = Decoder.ofArray(Decoder.ofBoolean());
+ assertEquals(List.of(true, false, false, true, true), decoder.decode(ByteBuffer.wrap(data)));
}
@Test
@@ -54,12 +44,10 @@ class DecoderTest {
0x66, 0x6F, 0x6F, 0x00, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, 0x04
};
- record TestRecord(Str s, Int32 i) {}
+ record TestRecord(String s, int i) {}
- var decoder = Decoder.ofStructure(TestRecord.class, Decoder.ofStr(UTF_8), Decoder.ofInt32());
- assertEquals(
- new Structure<>(new TestRecord(new Str("foo"), new Int32(-1))),
- decoder.decode(ByteBuffer.wrap(data)));
+ var decoder = Decoder.ofStructure(TestRecord.class, Decoder.ofString(UTF_8), Decoder.ofInt());
+ assertEquals(new TestRecord("foo", -1), decoder.decode(ByteBuffer.wrap(data)));
}
@Test
@@ -91,19 +79,16 @@ class DecoderTest {
0x15
};
- record TestRecord(Str s, Int32 i) {}
+ record TestRecord(String s, int i) {}
var decoder =
Decoder.ofArray(
Decoder.ofStructure(
TestRecord.class,
- Decoder.ofStr(UTF_8),
- Decoder.ofInt32().withByteOrder(LITTLE_ENDIAN)));
+ Decoder.ofString(UTF_8),
+ Decoder.ofInt().withByteOrder(LITTLE_ENDIAN)));
assertEquals(
- new Array<>(
- List.of(
- new Structure<>(new TestRecord(new Str("hi"), new Int32(-2))),
- new Structure<>(new TestRecord(new Str("bye"), new Int32(-1))))),
+ List.of(new TestRecord("hi", -2), new TestRecord("bye", -1)),
decoder.decode(ByteBuffer.wrap(data)));
}
@@ -114,10 +99,8 @@ class DecoderTest {
0x69, 0x00, 0x63, 0x61, 0x6E, 0x00, 0x68, 0x61, 0x73, 0x00, 0x73, 0x74, 0x72, 0x69, 0x6E,
0x67, 0x73, 0x3F, 0x00, 0x02, 0x06, 0x0a, 0x13
};
- var decoder = Decoder.ofArray(Decoder.ofStr(UTF_8));
- assertEquals(
- new Array<>(List.of(new Str("i"), new Str("can"), new Str("has"), new Str("strings?"))),
- decoder.decode(ByteBuffer.wrap(data)));
+ var decoder = Decoder.ofArray(Decoder.ofString(UTF_8));
+ assertEquals(List.of("i", "can", "has", "strings?"), decoder.decode(ByteBuffer.wrap(data)));
}
@Test
@@ -128,20 +111,17 @@ class DecoderTest {
0x73, 0x3F, 0x00, 0x04, 0x0d, 0x05
};
- record TestChild(Int8 b, Str s) {}
- record TestParent(Structure<TestChild> tc, Array<Str> as) {}
+ record TestChild(byte b, String s) {}
+ record TestParent(TestChild tc, List<String> as) {}
var decoder =
Decoder.ofStructure(
TestParent.class,
- Decoder.ofStructure(TestChild.class, Decoder.ofInt8(), Decoder.ofStr(UTF_8)),
- Decoder.ofArray(Decoder.ofStr(UTF_8)));
+ Decoder.ofStructure(TestChild.class, Decoder.ofByte(), Decoder.ofString(UTF_8)),
+ Decoder.ofArray(Decoder.ofString(UTF_8)));
assertEquals(
- new Structure<>(
- new TestParent(
- new Structure<>(new TestChild(new Int8((byte) 0x69), new Str("can"))),
- new Array<>(List.of(new Str("has"), new Str("strings?"))))),
+ new TestParent(new TestChild((byte) 0x69, "can"), List.of("has", "strings?")),
decoder.decode(ByteBuffer.wrap(data)));
}
@@ -149,51 +129,45 @@ class DecoderTest {
void testSimpleStructure() {
var data = new byte[] {0x60, 0x70};
- record TestRecord(Int8 b1, Int8 b2) {}
+ record TestRecord(byte b1, byte b2) {}
var decoder =
Decoder.ofStructure(
TestRecord.class,
- Decoder.ofInt8().withByteOrder(LITTLE_ENDIAN),
- Decoder.ofInt8().withByteOrder(LITTLE_ENDIAN));
+ Decoder.ofByte().withByteOrder(LITTLE_ENDIAN),
+ Decoder.ofByte().withByteOrder(LITTLE_ENDIAN));
- assertEquals(
- new Structure<>(new TestRecord(new Int8((byte) 0x60), new Int8((byte) 0x70))),
- decoder.decode(ByteBuffer.wrap(data)));
+ assertEquals(new TestRecord((byte) 0x60, (byte) 0x70), decoder.decode(ByteBuffer.wrap(data)));
}
@Test
void testPaddedStructureRight() {
var data = new byte[] {0x60, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00};
- record TestRecord(Int32 b1, Int8 b2) {}
+ record TestRecord(int b1, byte b2) {}
var decoder =
Decoder.ofStructure(
TestRecord.class,
- Decoder.ofInt32().withByteOrder(LITTLE_ENDIAN),
- Decoder.ofInt8().withByteOrder(LITTLE_ENDIAN));
+ Decoder.ofInt().withByteOrder(LITTLE_ENDIAN),
+ Decoder.ofByte().withByteOrder(LITTLE_ENDIAN));
- assertEquals(
- new Structure<>(new TestRecord(new Int32(0x60), new Int8((byte) 0x70))),
- decoder.decode(ByteBuffer.wrap(data)));
+ assertEquals(new TestRecord(0x60, (byte) 0x70), decoder.decode(ByteBuffer.wrap(data)));
}
@Test
void testPaddedStructureLeft() {
var data = new byte[] {0x60, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00};
- record TestRecord(Int8 b1, Int32 b2) {}
+ record TestRecord(byte b1, int b2) {}
var decoder =
Decoder.ofStructure(
TestRecord.class,
- Decoder.ofInt8().withByteOrder(LITTLE_ENDIAN),
- Decoder.ofInt32().withByteOrder(LITTLE_ENDIAN));
+ Decoder.ofByte().withByteOrder(LITTLE_ENDIAN),
+ Decoder.ofInt().withByteOrder(LITTLE_ENDIAN));
- assertEquals(
- new Structure<>(new TestRecord(new Int8((byte) 0x60), new Int32(0x70))),
- decoder.decode(ByteBuffer.wrap(data)));
+ assertEquals(new TestRecord((byte) 0x60, 0x70), decoder.decode(ByteBuffer.wrap(data)));
}
@Test
@@ -218,20 +192,17 @@ class DecoderTest {
0x00
};
- record TestRecord(Int32 b1, Int8 b2) {}
+ record TestRecord(int b1, byte b2) {}
var decoder =
Decoder.ofArray(
Decoder.ofStructure(
TestRecord.class,
- Decoder.ofInt32().withByteOrder(LITTLE_ENDIAN),
- Decoder.ofInt8().withByteOrder(LITTLE_ENDIAN)));
+ Decoder.ofInt().withByteOrder(LITTLE_ENDIAN),
+ Decoder.ofByte().withByteOrder(LITTLE_ENDIAN)));
assertEquals(
- new Array<>(
- List.of(
- new Structure<>(new TestRecord(new Int32(96), new Int8((byte) 0x70))),
- new Structure<>(new TestRecord(new Int32(648), new Int8((byte) 0xf7))))),
+ List.of(new TestRecord(96, (byte) 0x70), new TestRecord(648, (byte) 0xf7)),
decoder.decode(ByteBuffer.wrap(data)));
}
@@ -239,15 +210,10 @@ class DecoderTest {
void testByteArray() {
var data = new byte[] {0x04, 0x05, 0x06, 0x07};
- var decoder = Decoder.ofArray(Decoder.ofInt8());
+ var decoder = Decoder.ofArray(Decoder.ofByte());
assertEquals(
- new Array<>(
- List.of(
- new Int8((byte) 0x04),
- new Int8((byte) 0x05),
- new Int8((byte) 0x06),
- new Int8((byte) 0x07))),
+ List.of((byte) 0x04, (byte) 0x05, (byte) 0x06, (byte) 0x07),
decoder.decode(ByteBuffer.wrap(data)));
}
@@ -255,10 +221,9 @@ class DecoderTest {
void testIntegerArray() {
var data = new byte[] {0x04, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00};
- var decoder = Decoder.ofArray(Decoder.ofInt32().withByteOrder(LITTLE_ENDIAN));
+ var decoder = Decoder.ofArray(Decoder.ofInt().withByteOrder(LITTLE_ENDIAN));
- assertEquals(
- new Array<>(List.of(new Int32(4), new Int32(258))), decoder.decode(ByteBuffer.wrap(data)));
+ assertEquals(List.of(4, 258), decoder.decode(ByteBuffer.wrap(data)));
}
@Test
@@ -266,13 +231,11 @@ class DecoderTest {
var data =
new byte[] {0x61, 0x20, 0x6B, 0x65, 0x79, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x06};
- record TestEntry(Str key, Int32 value) {}
+ record TestEntry(String key, int value) {}
var decoder =
Decoder.ofStructure(
- TestEntry.class, Decoder.ofStr(UTF_8), Decoder.ofInt32().withByteOrder(LITTLE_ENDIAN));
- assertEquals(
- new Structure<>(new TestEntry(new Str("a key"), new Int32(514))),
- decoder.decode(ByteBuffer.wrap(data)));
+ TestEntry.class, Decoder.ofString(UTF_8), Decoder.ofInt().withByteOrder(LITTLE_ENDIAN));
+ assertEquals(new TestEntry("a key", 514), decoder.decode(ByteBuffer.wrap(data)));
}
}