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

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

checkstyle: enable relevant whitespace checks and fix them

  • 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 test_Constructor() {
12        ChangesetCache cache = ChangesetCache.getInstance()
13        assert cache != null
14    }
15
16    @Test
17    public void test_addAndRemoveListeners() {
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 update_get_remove_cycle() {
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 fireingEvents_AddAChangeset() {
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 fireingEvents_UpdateChangeset() {
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 fireingEvents_RemoveChangeset() {
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.