1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.atlassian.jira.rest.client.internal.json;
18
19 import com.atlassian.jira.rest.client.DateTimeMatcher;
20 import com.atlassian.jira.rest.client.domain.Version;
21 import org.codehaus.jettison.json.JSONException;
22 import org.joda.time.DateTime;
23 import org.joda.time.DateTimeZone;
24 import org.junit.Assert;
25 import org.junit.Test;
26
27 import java.net.URI;
28 import java.net.URISyntaxException;
29
30 import static org.junit.Assert.assertEquals;
31 import static org.junit.Assert.assertNull;
32
33 public class VersionJsonParserTest {
34
35 @Test
36 public void testParse() throws JSONException, URISyntaxException {
37 VersionJsonParser parser = new VersionJsonParser();
38 final Version version = parser.parse(ResourceUtil.getJsonObjectFromResource("/json/version/valid.json"));
39
40 assertEquals(new URI("http://localhost:8090/jira/rest/api/latest/version/10000"), version.getSelf());
41 assertEquals(Long.valueOf(10000), version.getId());
42 assertEquals("1.1", version.getName());
43 assertEquals("Some version", version.getDescription());
44 Assert.assertFalse(version.isReleased());
45 Assert.assertTrue(version.isArchived());
46 Assert.assertThat(version.getReleaseDate(), DateTimeMatcher.isEqual(
47 new DateTime(2010, 8, 25, 0, 0, 0, 0, DateTimeZone.forOffsetHours(2))));
48 }
49
50 @Test
51 public void testParseNoReleaseDate() throws JSONException, URISyntaxException {
52 VersionJsonParser parser = new VersionJsonParser();
53 final Version version = parser.parse(ResourceUtil.getJsonObjectFromResource("/json/version/valid2-no-releaseDate.json"));
54
55 assertEquals(new URI("http://localhost:8090/jira/rest/api/latest/version/10000"), version.getSelf());
56 assertEquals(Long.valueOf(10000), version.getId());
57 assertEquals("1.1abc", version.getName());
58 Assert.assertNull(version.getDescription());
59 Assert.assertTrue(version.isReleased());
60 Assert.assertFalse(version.isArchived());
61 Assert.assertNull(version.getReleaseDate());
62 }
63
64 @Test
65 public void testParseNoId() throws JSONException, URISyntaxException {
66 VersionJsonParser parser = new VersionJsonParser();
67 final Version version = parser.parse(ResourceUtil.getJsonObjectFromResource("/json/version/valid-no-id.json"));
68
69 assertEquals(new URI("http://localhost:8090/jira/rest/api/latest/version/10000"), version.getSelf());
70 assertNull(version.getId());
71 assertEquals("1.1", version.getName());
72 assertEquals("Some version", version.getDescription());
73 Assert.assertFalse(version.isReleased());
74 Assert.assertTrue(version.isArchived());
75 Assert.assertThat(version.getReleaseDate(), DateTimeMatcher.isEqual(
76 new DateTime(2010, 8, 25, 0, 0, 0, 0, DateTimeZone.forOffsetHours(2))));
77 }
78
79 @Test
80 public void testParseNoDescription() throws JSONException, URISyntaxException {
81 VersionJsonParser parser = new VersionJsonParser();
82 final Version version = parser.parse(ResourceUtil.getJsonObjectFromResource("/json/version/valid-no-description.json"));
83
84 assertEquals(new URI("http://localhost:8090/jira/rest/api/latest/version/10000"), version.getSelf());
85 assertEquals(Long.valueOf(10000), version.getId());
86 assertEquals("1.1", version.getName());
87 Assert.assertNull(version.getDescription());
88 Assert.assertFalse(version.isReleased());
89 Assert.assertTrue(version.isArchived());
90 Assert.assertThat(version.getReleaseDate(), DateTimeMatcher.isEqual(
91 new DateTime(2010, 8, 25, 0, 0, 0, 0, DateTimeZone.forOffsetHours(2))));
92 }
93
94 }