source: josm/trunk/test/unit/org/openstreetmap/josm/io/ChangesetQueryUrlParserTest.groovy@ 14019

Last change on this file since 14019 was 14019, checked in by Don-vip, 6 years ago

update to Groovy 2.5.0 and Eclipse Photon (4.8.0)

  • Property svn:eol-style set to native
File size: 5.4 KB
RevLine 
[7938]1// License: GPL. For details, see LICENSE file.
[11035]2package org.openstreetmap.josm.io
[7938]3
[14019]4import static groovy.test.GroovyAssert.shouldFail
5
6import java.time.OffsetDateTime
7import java.time.ZoneOffset
8
[8510]9import org.junit.Test
10import org.openstreetmap.josm.io.ChangesetQuery.ChangesetQueryUrlException
11import org.openstreetmap.josm.io.ChangesetQuery.ChangesetQueryUrlParser
[7938]12
[8510]13class ChangesetQueryUrlParserTest {
[7938]14
[8510]15 @Test
[10222]16 public void testConstructor() {
[8510]17 ChangesetQueryUrlParser parser = new ChangesetQueryUrlParser();
18 }
[7938]19
[8510]20 @Test
[10222]21 public void testParseBasic() {
[8510]22 ChangesetQueryUrlParser parser = new ChangesetQueryUrlParser();
[7938]23
[8510]24 // OK
25 parser.parse ""
[7938]26
[8510]27 // should be OK
28 ChangesetQuery q = parser.parse(null)
29 assert q != null
30
31 // should be OK
32 q = parser.parse("")
33 assert q != null
34 }
35
[7938]36 @Test
[10222]37 public void testUid() {
[8510]38 ChangesetQueryUrlParser parser = new ChangesetQueryUrlParser();
39 def ChangesetQuery q
40
41 // OK
42 q = parser.parse("uid=1234")
43 assert q != null
44
45 shouldFail(ChangesetQueryUrlException) {
46 q = parser.parse("uid=0")
47 }
48
49 shouldFail(ChangesetQueryUrlException) {
50 q = parser.parse("uid=-1")
51 }
52
53 shouldFail(ChangesetQueryUrlException) {
54 q = parser.parse("uid=abc")
55 }
56 }
57
58 @Test
[10222]59 public void testDisplayName() {
[8510]60 ChangesetQueryUrlParser parser = new ChangesetQueryUrlParser();
61 def ChangesetQuery q
62
63 // OK
64 q = parser.parse("display_name=abcd")
65 assert q != null
66 assert q.@userName == "abcd"
67 }
68
69 @Test
[10222]70 public void testOpen() {
[8510]71 ChangesetQueryUrlParser parser = new ChangesetQueryUrlParser();
72 def ChangesetQuery q
73
74 // OK
75 q = parser.parse("open=true")
76 assert q != null
77 assert q.@open == true
78
79 // OK
80 q = parser.parse("open=false")
81 assert q != null
82 assert q.@open == false
83
84 // illegal value for open
85 shouldFail(ChangesetQueryUrlException) {
86 q = parser.parse("open=abcd")
87 }
88 }
89
90 @Test
[10222]91 public void testClosed() {
[8510]92 ChangesetQueryUrlParser parser = new ChangesetQueryUrlParser();
93 def ChangesetQuery q
94
95 // OK
96 q = parser.parse("closed=true")
97 assert q != null
98 assert q.@closed == true
99
100 // OK
101 q = parser.parse("closed=false")
102 assert q != null
103 assert q.@closed == false
104
105 // illegal value for open
106 shouldFail(ChangesetQueryUrlException) {
107 q = parser.parse("closed=abcd")
108 }
109 }
110
111 @Test
[10222]112 public void testUidAndDisplayName() {
[8510]113 ChangesetQueryUrlParser parser = new ChangesetQueryUrlParser();
114 def ChangesetQuery q
115
116 // we can't have both an uid and a display name
117 shouldFail(ChangesetQueryUrlException) {
118 q = parser.parse("uid=1&display_name=abcd")
119 }
120 }
121
122 @Test
[10222]123 public void testTime() {
[8510]124 ChangesetQueryUrlParser parser = new ChangesetQueryUrlParser();
125 def ChangesetQuery q
126
127 // OK
128 q = parser.parse("time=2009-12-25T10:00:00Z")
129 assert q != null
130 assert q.@closedAfter != null
[11035]131 def cal = q.@closedAfter.toInstant().atOffset(ZoneOffset.UTC)
132 assert cal == OffsetDateTime.of(2009, 12, 25, 10, 0, 0, 0, ZoneOffset.UTC)
[8510]133
134 // OK
135 q = parser.parse("time=2009-12-25T10:00:00Z,2009-11-25T10:00:00Z")
136 assert q!= null
137 assert q.@closedAfter != null
138 assert q.@createdBefore != null
139
140 // should fail
141 shouldFail(ChangesetQueryUrlException) {
142 q = parser.parse("time=asdf")
143 }
144 }
145
146 @Test
[10222]147 public void testBbox() {
[8510]148 ChangesetQueryUrlParser parser = new ChangesetQueryUrlParser();
149 def ChangesetQuery q
150
151 // OK
152 q = parser.parse("bbox=-1,-1,1,1")
153 assert q != null
154 assert q.@bounds != null
155
156 // should fail
157 shouldFail(ChangesetQueryUrlException) {
158 q = parser.parse("bbox=-91,-1,1,1")
159 }
160
161 // should fail
162 shouldFail(ChangesetQueryUrlException) {
163 q = parser.parse("bbox=-1,-181,1,1")
164 }
165
166 // should fail
167 shouldFail(ChangesetQueryUrlException) {
168 q = parser.parse("bbox=-1,-1,91,1")
169 }
170 // should fail
171 shouldFail(ChangesetQueryUrlException) {
172 q = parser.parse("bbox=-1,-1,1,181")
173 }
174 // should fail
175 shouldFail(ChangesetQueryUrlException) {
176 q = parser.parse("bbox=-1,-1,1")
177 }
178 }
179
180 @Test
[10222]181 public void testChangesetIds() {
[7938]182 ChangesetQueryUrlParser parser = new ChangesetQueryUrlParser();
183 def ChangesetQuery q
184
185 // OK
186 q = parser.parse("changesets=1,2,3")
187 assert q != null
188 assert q.@changesetIds.containsAll(Arrays.asList(1L, 2L, 3L))
189 assert q.@changesetIds.size() == 3
190
191 // OK
192 q = parser.parse("changesets=1,2,3,4,1")
193 assert q != null
194 assert q.@changesetIds.containsAll(Arrays.asList(1L, 2L, 3L, 4L))
195 assert q.@changesetIds.size() == 4
196
197 // OK
198 q = parser.parse("changesets=")
199 assert q != null
200 assert q.@changesetIds.size() == 0
201
202 // should fail
203 shouldFail(ChangesetQueryUrlException) {
204 q = parser.parse("changesets=foo")
205 }
206 }
207}
Note: See TracBrowser for help on using the repository browser.