GithubTicketResponseTest.java 2.09 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package de.hftstuttgart.unifiedticketing.systems.github;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import de.hftstuttgart.unifiedticketing.core.Logging;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

import java.io.IOException;
import java.util.logging.Level;
import java.util.stream.Collectors;

import static org.junit.jupiter.api.Assertions.*;

public class GithubTicketResponseTest
{
    @BeforeAll
    public static void initBeforeAll()
    {
        Logging.setLevel(Level.ALL);
    }

    @Test
    public void testDeserialization() throws IOException
    {
        ObjectMapper mapper = new ObjectMapper()
            .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        String[] values = new String[]
            // title                descr       iid     label   label           userid  username
            {"title of ticket", "description", "5", "bug", "unifiedticketing", "234", "username"};
        String responseJson = String.format(
            "{\"title\":\"%s\",\"body\":\"%s\",\"number\":%s," +
                "\"labels\":[{\"name\":\"%s\"},{\"name\":\"%s\"}],\"assignees\":[{\"id\":%s,\"login\":\"%s\"}]}",
            (Object[]) values);

        GithubTicketResponse response = mapper.readValue(responseJson.getBytes(), GithubTicketResponse.class);
        assertAll(
            () -> assertEquals(values[0], response.title),
            () -> assertEquals(values[1], response.body),
            () -> assertEquals(values[2], String.valueOf(response.number)),
            () -> assertTrue(response.labels.stream().map(l -> l.name).collect(Collectors.toSet()).contains(values[3])),
            () -> assertTrue(response.labels.stream().map(l -> l.name).collect(Collectors.toSet()).contains(values[4])),
            () -> assertEquals(1, response.assignees.size()),
            () -> assertEquals(values[5], String.valueOf(response.assignees.stream().findFirst().get().id)),
            () -> assertEquals(values[6], response.assignees.stream().findFirst().get().login)
        );
    }
}