@Test public void testRemoveRemovesItemFromSet() throws Exception { final AppenderControlArraySet set = new AppenderControlArraySet(); set.add(createControl("A")); set.add(createControl("B")); set.add(createControl("C")); set.add(createControl("D")); assertEquals(4, set.get().length); set.remove("B"); assertEquals(3, set.get().length); final AppenderControl[] three = set.get(); assertEquals("A", three[0].getAppenderName()); assertEquals("C", three[1].getAppenderName()); assertEquals("D", three[2].getAppenderName()); set.remove("C"); assertEquals(2, set.get().length); final AppenderControl[] two = set.get(); assertEquals("A", two[0].getAppenderName()); assertEquals("D", two[1].getAppenderName()); set.remove("A"); assertEquals(1, set.get().length); final AppenderControl[] one = set.get(); assertEquals("D", one[0].getAppenderName()); set.remove("D"); assertTrue(set.isEmpty()); }
@Test public void testAddReturnsTrueIfSuccessfullyAdded() throws Exception { final AppenderControlArraySet set = new AppenderControlArraySet(); assertTrue(set.add(createControl("A"))); assertTrue(set.add(createControl("B"))); assertTrue(set.add(createControl("C"))); }
@Test public void testAddReturnsFalseIfAlreadyInSet() throws Exception { final AppenderControlArraySet set = new AppenderControlArraySet(); assertTrue(set.add(createControl("A"))); assertTrue(set.add(createControl("B"))); assertFalse(set.add(createControl("B"))); assertFalse(set.add(createControl("B"))); assertFalse(set.add(createControl("A"))); assertEquals(2, set.get().length); }
@Test public void testClearRemovesAllItems() throws Exception { final AppenderControlArraySet set = new AppenderControlArraySet(); set.add(createControl("A")); set.add(createControl("B")); set.add(createControl("C")); assertFalse(set.isEmpty()); set.clear(); assertTrue(set.isEmpty()); }
@Test public void testAddMakesNonEmpty() throws Exception { final AppenderControlArraySet set = new AppenderControlArraySet(); assertTrue(set.isEmpty()); set.add(createControl("A")); assertFalse(set.isEmpty()); }
@Test public void testGetReturnsAddedItems() throws Exception { final AppenderControlArraySet set = new AppenderControlArraySet(); final AppenderControl[] controls = new AppenderControl[] {createControl("A"), createControl("B"), createControl("C")}; for (final AppenderControl ctl : controls) { set.add(ctl); } assertEquals(3, set.get().length); assertArrayEquals(controls, set.get()); }
@Test public void testClearReturnsAllItems() throws Exception { final AppenderControlArraySet set = new AppenderControlArraySet(); final AppenderControl[] controls = new AppenderControl[] {createControl("A"), createControl("B"), createControl("C")}; for (final AppenderControl ctl : controls) { set.add(ctl); } assertEquals(3, set.get().length); final AppenderControl[] previous = set.clear(); assertArrayEquals(previous, controls); }
@Test public void testAsMap() throws Exception { final AppenderControlArraySet set = new AppenderControlArraySet(); final AppenderControl[] controls = new AppenderControl[] { createControl("A"), createControl("B"), createControl("C"), createControl("D") }; for (final AppenderControl ctl : controls) { set.add(ctl); } final Map<String, Appender> expected = new HashMap<>(); for (final AppenderControl ctl : controls) { expected.put(ctl.getAppenderName(), ctl.getAppender()); } assertEquals(expected, set.asMap()); }
@Test public void testAddDoesNotAppendersWithSameName() throws Exception { final AppenderControlArraySet set = new AppenderControlArraySet(); final AppenderControl[] controls = new AppenderControl[] { createControl("A"), createControl("B"), createControl("B"), createControl("B"), createControl("A") }; for (final AppenderControl ctl : controls) { set.add(ctl); } assertEquals(2, set.get().length); assertSame(controls[0], set.get()[0]); assertSame(controls[1], set.get()[1]); }
@Test public void testRemoveReturnsRemovedItem() throws Exception { final AppenderControlArraySet set = new AppenderControlArraySet(); final AppenderControl[] controls = new AppenderControl[] { createControl("A"), createControl("B"), createControl("C"), createControl("D") }; for (final AppenderControl ctl : controls) { set.add(ctl); } assertEquals(controls.length, set.get().length); final AppenderControl b = set.remove("B"); assertSame(controls[1], b); final AppenderControl c = set.remove("C"); assertSame(controls[2], c); }