Skip to content

Commit ca89def

Browse files
committed
PrefServiceTest: test 2 classes in same package
This is a regression test which failed prior to the last two commits.
1 parent 609bd35 commit ca89def

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

src/test/java/org/scijava/prefs/PrefServiceTest.java

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,4 +195,70 @@ public void testLongKeys() {
195195
assertEquals(lyrics, recovered);
196196
}
197197

198+
@Test
199+
public void testClassesInSamePackage() {
200+
final String blueDog = "lazy", blueFox = "quick";
201+
final String redDog = "friendly", redCat = "snuggly";
202+
203+
assertNull(prefService.get(BlueNode.class, "cat"));
204+
assertNull(prefService.get(BlueNode.class, "dog"));
205+
assertNull(prefService.get(BlueNode.class, "fox"));
206+
assertNull(prefService.get(RedNode.class, "cat"));
207+
assertNull(prefService.get(RedNode.class, "dog"));
208+
assertNull(prefService.get(RedNode.class, "fox"));
209+
210+
prefService.put(BlueNode.class, "dog", "lazy");
211+
prefService.put(BlueNode.class, "fox", "quick");
212+
213+
assertNull(prefService.get(BlueNode.class, "cat"));
214+
assertEquals(blueDog, prefService.get(BlueNode.class, "dog"));
215+
assertEquals(blueFox, prefService.get(BlueNode.class, "fox"));
216+
assertNull(prefService.get(RedNode.class, "cat"));
217+
assertNull(prefService.get(RedNode.class, "dog"));
218+
assertNull(prefService.get(RedNode.class, "fox"));
219+
220+
prefService.put(RedNode.class, "dog", redDog);
221+
prefService.put(RedNode.class, "cat", redCat);
222+
223+
assertNull(prefService.get(BlueNode.class, "cat"));
224+
assertEquals(blueDog, prefService.get(BlueNode.class, "dog"));
225+
assertEquals(blueFox, prefService.get(BlueNode.class, "fox"));
226+
assertEquals(redCat, prefService.get(RedNode.class, "cat"));
227+
assertEquals(redDog, prefService.get(RedNode.class, "dog"));
228+
assertNull(prefService.get(RedNode.class, "fox"));
229+
230+
prefService.clear(BlueNode.class);
231+
232+
assertNull(prefService.get(BlueNode.class, "cat"));
233+
assertNull(prefService.get(BlueNode.class, "dog"));
234+
assertNull(prefService.get(BlueNode.class, "fox"));
235+
assertEquals(redCat, prefService.get(RedNode.class, "cat"));
236+
assertEquals(redDog, prefService.get(RedNode.class, "dog"));
237+
assertNull(prefService.get(RedNode.class, "fox"));
238+
239+
prefService.clear(RedNode.class);
240+
241+
assertNull(prefService.get(BlueNode.class, "cat"));
242+
assertNull(prefService.get(BlueNode.class, "dog"));
243+
assertNull(prefService.get(BlueNode.class, "fox"));
244+
assertNull(prefService.get(RedNode.class, "cat"));
245+
assertNull(prefService.get(RedNode.class, "dog"));
246+
assertNull(prefService.get(RedNode.class, "fox"));
247+
}
248+
249+
// -- Helper classes --
250+
251+
/**
252+
* A class to use for anchoring preferences. Needed to test that preferences
253+
* are stored with each class specifically, rather than the package as a
254+
* whole. (Because the Java Preferences API uses packages for nodes, a
255+
* potential pitfall here is that clear(Class) might delete too much.)
256+
*/
257+
private interface BlueNode {}
258+
259+
/**
260+
* Another class for anchoring preferences, in the same package as
261+
* {@link BlueNode}.
262+
*/
263+
private interface RedNode {}
198264
}

0 commit comments

Comments
 (0)