@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); }
@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()); }
/** * Removes the Appender with the specific name. * * @param name The name of the Appender. */ public void removeAppender(final String name) { AppenderControl removed = null; while ((removed = appenders.remove(name)) != null) { cleanupFilter(removed); } }