1
+ package com.baeldung.dataclasstobytebuffer
2
+
3
+ import com.esotericsoftware.kryo.Kryo
4
+ import org.junit.Test
5
+ import org.junit.jupiter.api.Assertions.assertEquals
6
+
7
+ class DataClassToByteBufferUnitTest {
8
+
9
+ private val kryo = Kryo ().apply {
10
+ register(User ::class .java)
11
+ }
12
+
13
+ @Test
14
+ fun `Manual serialize and deserialize with fixed size` () {
15
+ val user = User (id = 1 , name = " Alice" , age = 30 )
16
+
17
+ val serializedUser = user.manualToByteBuffer()
18
+
19
+ val deserializedUser = serializedUser.manualToUser()
20
+
21
+ assertEquals(user, deserializedUser)
22
+ }
23
+
24
+ @Test
25
+ fun `Serialize and deserialize using byte array output and input stream` () {
26
+ val user = UserInputOutputStream (id = 1 , name = " Alice" , age = 30 )
27
+
28
+ val serializedUser = user.outputStreamByteBuffer()
29
+
30
+ val deserializedUser = serializedUser.inputStreamToUser()
31
+
32
+ assertEquals(user, deserializedUser)
33
+ }
34
+
35
+ @Test
36
+ fun `Serialize and deserialize using kotlin serialization library` () {
37
+ val user = UserSerialization (id = 1 , name = " Alice" , age = 30 )
38
+
39
+ val serializedUser = user.userToJson()
40
+
41
+ val deserializedUser = serializedUser.jsonToUser()
42
+
43
+ assertEquals(user, deserializedUser)
44
+ }
45
+
46
+ @Test
47
+ fun `Serialize and deserialize using Kryo library` () {
48
+ val user = User (id = 1 , name = " Alice" , age = 30 )
49
+
50
+ val serializedUser = user.toByteBufferWithKryo(kryo)
51
+
52
+ val deserializedUser = serializedUser.toUserWithKryo(kryo)
53
+
54
+ assertEquals(user, deserializedUser)
55
+ }
56
+ }
0 commit comments