1
2
3
4
5 package com.jcabi.github;
6
7 import com.google.common.base.Optional;
8 import jakarta.json.Json;
9 import org.hamcrest.MatcherAssert;
10 import org.hamcrest.Matchers;
11 import org.junit.jupiter.api.Test;
12
13
14
15
16
17 final class StatusesTest {
18
19
20
21 private static final String STATE_PROP = "state";
22
23
24
25
26 private static final String DESCRIPTION_PROP = "description";
27
28
29
30
31 private static final String TARGET_PROP = "target_url";
32
33
34
35
36 private static final String CONTEXT_PROP = "context";
37
38
39
40
41 private static final String URL = "http://status.jcabi-github.invalid/42";
42
43
44
45
46 private static final String CONTEXT = "jcabi/github/test";
47
48 @Test
49 void convertsToJsonWhenAllPresent() {
50 final String success = "Everything is not so awesome";
51 MatcherAssert.assertThat(
52 "Values are not equal",
53 new Statuses.StatusCreate(Status.State.ERROR)
54 .withTargetUrl(Optional.of(StatusesTest.URL))
55 .withDescription(success)
56 .withContext(Optional.of(StatusesTest.CONTEXT))
57 .json().toString(),
58 Matchers.equalTo(
59 Json.createObjectBuilder()
60 .add(StatusesTest.STATE_PROP, "error")
61 .add(StatusesTest.DESCRIPTION_PROP, success)
62 .add(StatusesTest.CONTEXT_PROP, StatusesTest.CONTEXT)
63 .add(StatusesTest.TARGET_PROP, StatusesTest.URL)
64 .build().toString()
65 )
66 );
67 }
68
69 @Test
70 void convertsToJsonWhenUrlAbsent() {
71 final String success = "Living the dream!";
72 MatcherAssert.assertThat(
73 "Values are not equal",
74 new Statuses.StatusCreate(Status.State.SUCCESS)
75 .withDescription(success)
76 .withContext(Optional.of(StatusesTest.CONTEXT))
77 .json().toString(),
78 Matchers.equalTo(
79 Json.createObjectBuilder()
80 .add(StatusesTest.STATE_PROP, "success")
81 .add(StatusesTest.DESCRIPTION_PROP, success)
82 .add(StatusesTest.CONTEXT_PROP, StatusesTest.CONTEXT)
83 .build().toString()
84 )
85 );
86 }
87
88 @Test
89 void convertsToJsonWhenDescriptionAbsent() {
90 MatcherAssert.assertThat(
91 "Values are not equal",
92 new Statuses.StatusCreate(Status.State.FAILURE)
93 .withTargetUrl(Optional.of(StatusesTest.URL))
94 .withContext(Optional.of(StatusesTest.CONTEXT))
95 .json().toString(),
96 Matchers.equalTo(
97 Json.createObjectBuilder()
98 .add(StatusesTest.STATE_PROP, "failure")
99 .add(StatusesTest.DESCRIPTION_PROP, "")
100 .add(StatusesTest.CONTEXT_PROP, StatusesTest.CONTEXT)
101 .add(StatusesTest.TARGET_PROP, StatusesTest.URL)
102 .build().toString()
103 )
104 );
105 }
106
107 @Test
108 void convertsToJsonWhenContextAbsent() {
109 final String pending = "Kragle is drying...";
110 MatcherAssert.assertThat(
111 "Values are not equal",
112 new Statuses.StatusCreate(Status.State.PENDING)
113 .withTargetUrl(Optional.of(StatusesTest.URL))
114 .withDescription(pending)
115 .json().toString(),
116 Matchers.equalTo(
117 Json.createObjectBuilder()
118 .add(StatusesTest.STATE_PROP, "pending")
119 .add(StatusesTest.DESCRIPTION_PROP, pending)
120 .add(StatusesTest.TARGET_PROP, StatusesTest.URL)
121 .build().toString()
122 )
123 );
124 }
125 }