1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.provisioning.api.serialization;
20
21 import static org.mockito.Mockito.verify;
22
23 import com.fasterxml.jackson.core.JsonGenerator;
24 import com.fasterxml.jackson.databind.SerializerProvider;
25 import java.io.IOException;
26 import java.util.Base64;
27 import java.util.UUID;
28 import org.apache.syncope.core.provisioning.api.AbstractTest;
29 import org.identityconnectors.framework.common.objects.SyncToken;
30 import org.junit.jupiter.api.Test;
31 import org.mockito.Mock;
32
33 public class SyncTokenSerializerTest extends AbstractTest {
34
35 @Test
36 public void syncTokenSerializer(
37 final @Mock JsonGenerator jgen,
38 final @Mock SerializerProvider sp) throws IOException {
39
40 SyncTokenSerializer serializer = new SyncTokenSerializer();
41 SyncToken source = new SyncToken(UUID.randomUUID().toString());
42 serializer.serialize(source, jgen, sp);
43 verify(jgen).writeStartObject();
44 verify(jgen).writeStringField("type", "String");
45 verify(jgen).writeStringField("value", source.getValue().toString());
46 verify(jgen).writeEndObject();
47
48 boolean bool = false;
49 source = new SyncToken(bool);
50 serializer.serialize(source, jgen, sp);
51 verify(jgen).writeStringField("type", "Boolean");
52 verify(jgen).writeBooleanField("value", false);
53
54 double doubleNum = 9000.1;
55 source = new SyncToken(doubleNum);
56 serializer.serialize(source, jgen, sp);
57 verify(jgen).writeStringField("type", "Double");
58 verify(jgen).writeNumberField("value", doubleNum);
59
60 long longNum = 9001;
61 source = new SyncToken(longNum);
62 serializer.serialize(source, jgen, sp);
63 verify(jgen).writeStringField("type", "Long");
64 verify(jgen).writeNumberField("value", longNum);
65
66 int intNum = 9000;
67 source = new SyncToken(intNum);
68 serializer.serialize(source, jgen, sp);
69 verify(jgen).writeStringField("type", "Integer");
70 verify(jgen).writeNumberField("value", intNum);
71
72 byte[] bytes = new byte[] { 9, 0, 0, 1 };
73 source = new SyncToken(bytes);
74 serializer.serialize(source, jgen, sp);
75 verify(jgen).writeStringField("value", Base64.getEncoder().encodeToString(bytes));
76 }
77 }