lenInBytes) {
- SchemaId schemaId = row.get().ReadSchemaId(offset).clone();
+ SchemaId schemaId = row.get().readSchemaId(offset).clone();
lenInBytes.setAndGet(SchemaId.SIZE);
return new TypeArgumentList(schemaId.clone());
}
diff --git a/java/src/test/java/com/azure/data/cosmos/serialization/hybridrow/codecs/DateTimeCodecTest.java b/java/src/test/java/com/azure/data/cosmos/serialization/hybridrow/codecs/DateTimeCodecTest.java
new file mode 100644
index 0000000..935a1ba
--- /dev/null
+++ b/java/src/test/java/com/azure/data/cosmos/serialization/hybridrow/codecs/DateTimeCodecTest.java
@@ -0,0 +1,87 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+package com.azure.data.cosmos.serialization.hybridrow.codecs;
+
+import com.google.common.collect.ImmutableList;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.time.OffsetDateTime;
+import java.util.Iterator;
+
+import static org.testng.Assert.assertEquals;
+
+/**
+ * Tests the DateTimeCodec using data generated from C# code
+ *
+ * Test data was generated from code that looks like this:
+ * {@code
+ * var buffer = new byte[8];
+ * var value = DateTime.Now;
+ * MemoryMarshal.Write(buffer, ref value);
+ * Console.WriteLine($"new DateTimeItem(new byte[] {{ (byte) {string.Join(", (byte) ", buffer )} }}, OffsetDateTime.parse(\"{value.ToString("o")}\"))");
+ * }
+ */
+public class DateTimeCodecTest {
+
+ @Test(dataProvider = "dateTimeDataProvider")
+ public void testDecodeByteArray(byte[] buffer, OffsetDateTime value) {
+ OffsetDateTime actual = DateTimeCodec.decode(buffer);
+ assertEquals(actual, value);
+ }
+
+ @Test(dataProvider = "dateTimeDataProvider")
+ public void testDecodeByteBuf(byte[] buffer, OffsetDateTime value) {
+ ByteBuf byteBuf = Unpooled.wrappedBuffer(new byte[DateTimeCodec.BYTES]);
+ OffsetDateTime actual = DateTimeCodec.decode(byteBuf);
+ assertEquals(actual, value);
+ }
+
+ @Test(dataProvider = "dateTimeDataProvider")
+ public void testEncodeByteArray(byte[] buffer, OffsetDateTime value) {
+ byte[] actual = DateTimeCodec.encode(value);
+ assertEquals(actual, buffer);
+ }
+
+ @Test(dataProvider = "dateTimeDataProvider")
+ public void testEncodeByteBuf(byte[] buffer, OffsetDateTime value) {
+ ByteBuf actual = Unpooled.wrappedBuffer(new byte[DateTimeCodec.BYTES]);
+ DateTimeCodec.encode(value, actual);
+ assertEquals(actual.array(), buffer);
+ }
+
+ @DataProvider(name = "dateTimeDataProvider")
+ private Iterator