001package ch.qos.logback.core.util;
002
003import static org.junit.Assert.*;
004
005import java.util.List;
006
007import org.junit.After;
008import org.junit.Before;
009import org.junit.Test;
010
011import ch.qos.logback.core.Context;
012import ch.qos.logback.core.ContextBase;
013import ch.qos.logback.core.status.OnConsoleStatusListener;
014import ch.qos.logback.core.status.StatusListener;
015import ch.qos.logback.core.status.StatusManager;
016
017public class StatusListenerConfigHelperTest {
018
019    Context context = new ContextBase();
020    StatusManager sm = context.getStatusManager();
021
022    @Before
023    public void setUp() throws Exception {
024    }
025
026    @After
027    public void tearDown() throws Exception {
028    }
029
030    @Test
031    public void addOnConsoleListenerInstanceShouldNotStartSecondListener() {
032        OnConsoleStatusListener ocl0 = new OnConsoleStatusListener();
033        OnConsoleStatusListener ocl1 = new OnConsoleStatusListener();
034
035        StatusListenerConfigHelper.addOnConsoleListenerInstance(context, ocl0);
036        {
037            List<StatusListener> listeners = sm.getCopyOfStatusListenerList();
038            assertEquals(1, listeners.size());
039            assertTrue(ocl0.isStarted());
040        }
041
042        // second listener should not have been started
043        StatusListenerConfigHelper.addOnConsoleListenerInstance(context, ocl1);
044        {
045            List<StatusListener> listeners = sm.getCopyOfStatusListenerList();
046            assertEquals(1, listeners.size());
047            assertFalse(ocl1.isStarted());
048        }
049    }
050
051}