source: josm/trunk/test/unit/org/openstreetmap/josm/data/osm/ChangesetCacheTest.groovy@ 10222

Last change on this file since 10222 was 10222, checked in by Don-vip, 9 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: 4.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.osm;
3
4import static org.junit.Assert.*
5
6import org.junit.Test
7
8class ChangesetCacheTest {
9
10 @Test
11 public void testConstructor() {
12 ChangesetCache cache = ChangesetCache.getInstance()
13 assert cache != null
14 }
15
16 @Test
17 public void testAddAndRemoveListeners() {
18 ChangesetCache cache = ChangesetCache.getInstance()
19 cache.clear()
20
21 // should work
22 cache.addChangesetCacheListener null
23
24 // should work
25 def listener = new ChangesetCacheListener() {
26 public void changesetCacheUpdated(ChangesetCacheEvent event) {}
27 }
28 cache.addChangesetCacheListener listener
29 // adding a second time - should work too
30 cache.addChangesetCacheListener listener
31 assert cache.@listeners.size() == 1 // ... but only added once
32
33 cache.removeChangesetCacheListener null
34
35 cache.removeChangesetCacheListener listener
36 assert cache.@listeners.size() == 0
37 }
38
39 @Test
40 public void updateGetRemoveCycle() {
41 ChangesetCache cache = ChangesetCache.getInstance()
42 cache.clear()
43
44 cache.update new Changeset(1)
45 assert cache.size() == 1
46 assert cache.get(1) != null
47 assert cache.get(1).id == 1
48 cache.remove(1)
49 assert cache.size() == 0
50 }
51
52 @Test
53 public void updateTwice() {
54 ChangesetCache cache = ChangesetCache.getInstance()
55 cache.clear()
56
57 Changeset cs = new Changeset(1)
58 cs.incomplete = false
59 cs.put "key1", "value1"
60 cs.open = true
61 cache.update cs
62
63 Changeset cs2 = new Changeset(cs)
64 assert cs2 != null
65 cs2.put "key2", "value2"
66 cs2.open = false
67 cache.update(cs2)
68
69 assert cache.size() == 1
70 assert cache.get(1) != null
71
72 cs = cache.get(1)
73 assert cs.get("key1") == "value1"
74 assert cs.get("key2") == "value2"
75 assert !cs.open
76 }
77
78
79 @Test
80 public void contains() {
81 ChangesetCache cache = ChangesetCache.getInstance()
82 cache.@listeners.clear()
83 cache.clear()
84
85
86 Changeset cs = new Changeset(1)
87 cache.update cs
88
89 assert cache.contains(1)
90 assert cache.contains(cs)
91 assert cache.contains(new Changeset(cs))
92
93 assert ! cache.contains(2)
94 assert ! cache.contains(new Changeset(2))
95 assert ! cache.contains(null)
96 }
97
98 @Test
99 public void fireingEventsAddAChangeset() {
100 ChangesetCache cache = ChangesetCache.getInstance()
101 cache.clear()
102 cache.@listeners.clear()
103
104 // should work
105 def listener = new ChangesetCacheListener() {
106 public void changesetCacheUpdated(ChangesetCacheEvent event) {
107 assert event != null
108 assert event.getAddedChangesets().size() == 1
109 assert event.getRemovedChangesets().empty
110 assert event.getUpdatedChangesets().empty
111 assert event.getSource() == cache
112 }
113 }
114 cache.addChangesetCacheListener listener
115 cache.update(new Changeset(1))
116 cache.removeChangesetCacheListener listener
117 }
118
119 @Test
120 public void fireingEventsUpdateChangeset() {
121 ChangesetCache cache = ChangesetCache.getInstance()
122 cache.clear()
123 cache.@listeners.clear()
124
125 // should work
126 def listener = new ChangesetCacheListener() {
127 public void changesetCacheUpdated(ChangesetCacheEvent event) {
128 assert event != null
129 assert event.getAddedChangesets().empty
130 assert event.getRemovedChangesets().empty
131 assert event.getUpdatedChangesets().size() == 1
132 assert event.getSource() == cache
133 }
134 }
135 cache.update(new Changeset(1))
136
137 cache.addChangesetCacheListener listener
138 cache.update(new Changeset(1))
139 cache.removeChangesetCacheListener listener
140 }
141
142 @Test
143 public void fireingEventsRemoveChangeset() {
144 ChangesetCache cache = ChangesetCache.getInstance()
145 cache.clear()
146 cache.@listeners.clear()
147
148 // should work
149 def listener = new ChangesetCacheListener() {
150 public void changesetCacheUpdated(ChangesetCacheEvent event) {
151 assert event != null
152 assert event.getAddedChangesets().empty
153 assert event.getRemovedChangesets().size() == 1
154 assert event.getUpdatedChangesets().empty
155 assert event.getSource() == cache
156 }
157 }
158 cache.update(new Changeset(1))
159
160 cache.addChangesetCacheListener listener
161 cache.remove 1
162 cache.removeChangesetCacheListener listener
163 }
164}
Note: See TracBrowser for help on using the repository browser.