source: josm/trunk/test/unit/org/openstreetmap/josm/testutils/annotations/MapPaintStyles.java@ 18870

Last change on this file since 18870 was 18870, checked in by taylor.smock, 7 months ago

See #16567: Update to JUnit 5

This converts most tests to use @Annotations. There are also some performance
improvements as it relates to tests.

File size: 1.6 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.testutils.annotations;
3
4import java.lang.annotation.Documented;
5import java.lang.annotation.ElementType;
6import java.lang.annotation.Retention;
7import java.lang.annotation.RetentionPolicy;
8import java.lang.annotation.Target;
9
10import org.junit.jupiter.api.extension.BeforeEachCallback;
11import org.junit.jupiter.api.extension.ExtendWith;
12import org.junit.jupiter.api.extension.ExtensionContext;
13import org.openstreetmap.josm.gui.mappaint.ElemStyles;
14import org.openstreetmap.josm.testutils.JOSMTestRules;
15
16/**
17 * Use map styles in tests.
18 *
19 * @author Taylor Smock
20 * @see JOSMTestRules#mapStyles()
21 */
22@Documented
23@Retention(RetentionPolicy.RUNTIME)
24@Target({ ElementType.METHOD, ElementType.TYPE })
25@BasicPreferences
26@ExtendWith(MapPaintStyles.MapPaintStylesExtension.class)
27public @interface MapPaintStyles {
28 class MapPaintStylesExtension implements BeforeEachCallback {
29 private static int lastHashcode;
30
31 @Override
32 public void beforeEach(ExtensionContext extensionContext) throws Exception {
33 setup();
34 }
35
36 public static void setup() {
37 final ElemStyles styles = org.openstreetmap.josm.gui.mappaint.MapPaintStyles.getStyles();
38 if (styles.getStyleSources().hashCode() != lastHashcode || styles.getStyleSources().isEmpty()) {
39 org.openstreetmap.josm.gui.mappaint.MapPaintStyles.readFromPreferences();
40 lastHashcode = org.openstreetmap.josm.gui.mappaint.MapPaintStyles.getStyles().getStyleSources().hashCode();
41 }
42 }
43 }
44}
Note: See TracBrowser for help on using the repository browser.