Ignore:
Timestamp:
2022-03-12T08:18:43+01:00 (2 years ago)
Author:
GerdP
Message:

see #21740: IAE: Attempted to add listener that was already in list: external preset with group name RoadSigns

  • improve unit test (patch by Bjoeni)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/gui/layer/MainLayerManagerTest.java

    r18393 r18394  
    33
    44import static org.junit.jupiter.api.Assertions.assertEquals;
    5 import static org.junit.jupiter.api.Assertions.assertFalse;
    65import static org.junit.jupiter.api.Assertions.assertNull;
    76import static org.junit.jupiter.api.Assertions.assertSame;
    8 
     7import static org.junit.jupiter.api.Assertions.assertTrue;
     8
     9import java.util.ArrayList;
    910import java.util.Arrays;
     11import java.util.List;
     12import java.util.logging.Handler;
     13import java.util.logging.LogRecord;
    1014
    1115import org.junit.jupiter.api.BeforeAll;
     
    5458            return LayerPositionStrategy.afterLast(o -> true);
    5559        }
     60    }
     61
     62    protected static class LoggingHandler extends Handler {
     63
     64        private List<LogRecord> records = new ArrayList<>();
     65
     66        @Override
     67        public void publish(LogRecord record) {
     68            records.add(record);
     69        }
     70
     71        @Override
     72        public void flush() {}
     73
     74        @Override
     75        public void close() throws SecurityException {}
     76
     77        public List<LogRecord> getRecords() {
     78            return records;
     79        }
     80
    5681    }
    5782
     
    146171    void testAddActiveLayerChangeListenerTwice() {
    147172        CapturingActiveLayerChangeListener listener = new CapturingActiveLayerChangeListener();
     173        LoggingHandler handler = new LoggingHandler();
     174        Logging.getLogger().addHandler(handler);
     175
    148176        layerManagerWithActive.addActiveLayerChangeListener(listener);
    149         Logging.clearLastErrorAndWarnings();
     177        assertTrue(handler.getRecords().isEmpty());
     178
    150179        layerManagerWithActive.addActiveLayerChangeListener(listener);
    151         assertFalse(Logging.getLastErrorAndWarnings().isEmpty());
     180        assertTrue(handler.getRecords().get(1).getMessage().startsWith("Attempted to add listener that was already in list"));
     181
     182        Logging.getLogger().removeHandler(handler);
    152183    }
    153184
     
    175206    @Test
    176207    void testRemoveActiveLayerChangeListenerNotInList() {
    177         Logging.clearLastErrorAndWarnings();
     208        LoggingHandler handler = new LoggingHandler();
     209        Logging.getLogger().addHandler(handler);
     210
    178211        layerManagerWithActive.removeActiveLayerChangeListener(new CapturingActiveLayerChangeListener());
    179         assertFalse(Logging.getLastErrorAndWarnings().isEmpty());
     212        assertTrue(handler.getRecords().get(1).getMessage().startsWith("Attempted to remove listener that was not in list"));
     213
     214        Logging.getLogger().removeHandler(handler);
    180215    }
    181216
Note: See TracChangeset for help on using the changeset viewer.