articles-backend-app

Форк
0
76 строк · 2.8 Кб
1
package by.andd3dfx.helper;
2

3
import static org.hamcrest.CoreMatchers.is;
4
import static org.hamcrest.MatcherAssert.assertThat;
5

6
import by.andd3dfx.dto.MethodCallRecord;
7
import com.fasterxml.jackson.databind.ObjectMapper;
8
import java.time.LocalDateTime;
9
import java.util.HashMap;
10
import java.util.Map;
11
import org.junit.jupiter.api.BeforeEach;
12
import org.junit.jupiter.api.Test;
13

14
class JsonHelperTest {
15

16
    private JsonHelper jsonHelper;
17

18
    @BeforeEach
19
    void setup() {
20
        jsonHelper = new JsonHelper(new ObjectMapper());
21
    }
22

23
    @Test
24
    public void objectToString() {
25
        final MethodCallRecord record = new MethodCallRecord();
26
        record.setName("Name");
27
        record.setArgs(new HashMap<String, Object>() {{
28
            put("param1", 35L);
29
            put("param2", "Some string");
30
        }});
31
        record.setResult("Result");
32
        record.setTimestamp(LocalDateTime.parse("2007-12-03T10:15:30"));
33
        record.setIsSucceed(true);
34

35
        String resultJsonString = jsonHelper.objectToString(record);
36

37
        assertThat(resultJsonString,
38
            is("{\"name\":\"Name\",\"args\":{\"param1\":35,\"param2\":\"Some string\"},\"result\":\"Result\",\"timestamp\":\"2007-12-03T10:15:30Z\",\"isSucceed\":true}"));
39
    }
40

41
    @Test
42
    public void jsonStringToMap() {
43
        Map<String, Object> resultMap = jsonHelper.jsonStringToMap("{\"param1\":35,\"param2\":\"Some string\"}");
44

45
        Map<String, Object> expectedMap = new HashMap<String, Object>() {{
46
            put("param1", 35);
47
            put("param2", "Some string");
48
        }};
49
        checkAreMapsEqual(resultMap, expectedMap);
50
    }
51

52
    @Test
53
    public void jsonStringToDefiniteType() {
54
        String jsonString = "{\"name\":\"Name\",\"args\":{\"param1\":35,\"param2\":\"Some string\"},\"result\":\"Result\",\"timestamp\":\"2007-12-03T10:15:30Z\"}";
55
        String className = MethodCallRecord.class.getName();
56
        Map<String, Object> expectedMap = new HashMap<String, Object>() {{
57
            put("param1", 35);
58
            put("param2", "Some string");
59
        }};
60

61
        Object resultObject = jsonHelper.jsonStringToDefiniteType(jsonString, className);
62

63
        MethodCallRecord methodCallRecord = (MethodCallRecord) resultObject;
64
        assertThat(methodCallRecord.getName(), is("Name"));
65
        checkAreMapsEqual(methodCallRecord.getArgs(), expectedMap);
66
        assertThat(methodCallRecord.getResult(), is("Result"));
67
        assertThat(methodCallRecord.getTimestamp(), is(LocalDateTime.parse("2007-12-03T10:15:30")));
68
    }
69

70
    private void checkAreMapsEqual(Map<String, Object> map1, Map<String, Object> map2) {
71
        assertThat(map1.keySet().equals(map2.keySet()), is(true));
72
        map1.keySet().stream().forEach(key -> {
73
            assertThat(map1.get(key), is(map2.get(key)));
74
        });
75
    }
76
}
77

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.