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, 7 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
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.io;
3
4import static org.junit.Assert.*
5
6import org.junit.Test
7import org.openstreetmap.josm.io.ChangesetQuery.ChangesetQueryUrlException
8import org.openstreetmap.josm.io.ChangesetQuery.ChangesetQueryUrlParser
9
10class ChangesetQueryUrlParserTest {
11    final shouldFail = new GroovyTestCase().&shouldFail
12
13    @Test
14    public void testConstructor() {
15        ChangesetQueryUrlParser parser = new ChangesetQueryUrlParser();
16    }
17
18    @Test
19    public void testParseBasic() {
20        ChangesetQueryUrlParser parser = new ChangesetQueryUrlParser();
21
22        // OK
23        parser.parse ""
24
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
34    @Test
35    public void testUid() {
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
57    public void testDisplayName() {
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
68    public void testOpen() {
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
89    public void testClosed() {
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
110    public void testUidAndDisplayName() {
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
121    public void testTime() {
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
151    public void testBbox() {
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
185    public void testChangesetIds() {
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.