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 package com.jcabi.github;
31
32 import com.google.common.base.Optional;
33 import javax.json.Json;
34 import org.hamcrest.MatcherAssert;
35 import org.hamcrest.Matchers;
36 import org.junit.Test;
37
38
39
40
41
42
43
44 public final class StatusesTest {
45
46
47
48 private static final String STATE_PROP = "state";
49
50
51
52 private static final String DESCRIPTION_PROP = "description";
53
54
55
56 private static final String TARGET_PROP = "target_url";
57
58
59
60 private static final String CONTEXT_PROP = "context";
61
62
63
64 private static final String URL = "http://status.jcabi-github.invalid/42";
65
66
67
68 private static final String CONTEXT = "jcabi/github/test";
69
70
71
72
73 @Test
74 public void convertsToJsonWhenAllPresent() {
75 final String success = "Everything is not so awesome";
76 MatcherAssert.assertThat(
77 new Statuses.StatusCreate(Status.State.ERROR)
78 .withTargetUrl(Optional.of(StatusesTest.URL))
79 .withDescription(success)
80 .withContext(Optional.of(StatusesTest.CONTEXT))
81 .json().toString(),
82 Matchers.equalTo(
83 Json.createObjectBuilder()
84 .add(StatusesTest.STATE_PROP, "error")
85 .add(StatusesTest.DESCRIPTION_PROP, success)
86 .add(StatusesTest.CONTEXT_PROP, StatusesTest.CONTEXT)
87 .add(StatusesTest.TARGET_PROP, StatusesTest.URL)
88 .build().toString()
89 )
90 );
91 }
92
93
94
95
96 @Test
97 public void convertsToJsonWhenUrlAbsent() {
98 final String success = "Living the dream!";
99 MatcherAssert.assertThat(
100 new Statuses.StatusCreate(Status.State.SUCCESS)
101 .withDescription(success)
102 .withContext(Optional.of(StatusesTest.CONTEXT))
103 .json().toString(),
104 Matchers.equalTo(
105 Json.createObjectBuilder()
106 .add(StatusesTest.STATE_PROP, "success")
107 .add(StatusesTest.DESCRIPTION_PROP, success)
108 .add(StatusesTest.CONTEXT_PROP, StatusesTest.CONTEXT)
109 .build().toString()
110 )
111 );
112 }
113
114
115
116
117 @Test
118 public void convertsToJsonWhenDescriptionAbsent() {
119 MatcherAssert.assertThat(
120 new Statuses.StatusCreate(Status.State.FAILURE)
121 .withTargetUrl(Optional.of(StatusesTest.URL))
122 .withContext(Optional.of(StatusesTest.CONTEXT))
123 .json().toString(),
124 Matchers.equalTo(
125 Json.createObjectBuilder()
126 .add(StatusesTest.STATE_PROP, "failure")
127 .add(StatusesTest.DESCRIPTION_PROP, "")
128 .add(StatusesTest.CONTEXT_PROP, StatusesTest.CONTEXT)
129 .add(StatusesTest.TARGET_PROP, StatusesTest.URL)
130 .build().toString()
131 )
132 );
133 }
134
135
136
137
138 @Test
139 public void convertsToJsonWhenContextAbsent() {
140 final String pending = "Kragle is drying...";
141 MatcherAssert.assertThat(
142 new Statuses.StatusCreate(Status.State.PENDING)
143 .withTargetUrl(Optional.of(StatusesTest.URL))
144 .withDescription(pending)
145 .json().toString(),
146 Matchers.equalTo(
147 Json.createObjectBuilder()
148 .add(StatusesTest.STATE_PROP, "pending")
149 .add(StatusesTest.DESCRIPTION_PROP, pending)
150 .add(StatusesTest.TARGET_PROP, StatusesTest.URL)
151 .build().toString()
152 )
153 );
154 }
155 }