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

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

findbugs - fix/suppress most of warnings reported in unit tests + enable low confidence warnings for core

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