source: josm/trunk/test/unit/org/openstreetmap/josm/data/preferences/StrokePropertyTest.java@ 12849

Last change on this file since 12849 was 12849, checked in by bastiK, 7 years ago

see #15229 - use Config in tests

  • Property svn:eol-style set to native
File size: 3.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.preferences;
3
4import static org.junit.Assert.assertArrayEquals;
5import static org.junit.Assert.assertEquals;
6
7import java.awt.BasicStroke;
8
9import org.junit.Rule;
10import org.junit.Test;
11import org.openstreetmap.josm.spi.preferences.Config;
12import org.openstreetmap.josm.testutils.JOSMTestRules;
13
14import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
15
16/**
17 * Test {@link StrokeProperty}
18 * @author Michael Zangl
19 */
20public class StrokePropertyTest {
21 /**
22 * This is a preference test
23 */
24 @Rule
25 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
26 public JOSMTestRules test = new JOSMTestRules().preferences();
27
28 /**
29 * Test {@link StrokeProperty#get()}
30 */
31 @Test
32 public void testGetValue() {
33 StrokeProperty property = new StrokeProperty("x", "1");
34
35 Config.getPref().put("x", "11");
36 BasicStroke bs = property.get();
37 assertWide(bs);
38 assertEquals(11, bs.getLineWidth(), 1e-10);
39 assertEquals(null, bs.getDashArray());
40
41 Config.getPref().put("x", ".5");
42 bs = property.get();
43 assertThin(bs);
44 assertEquals(.5, bs.getLineWidth(), 1e-10);
45 assertEquals(null, bs.getDashArray());
46
47 Config.getPref().put("x", "2 1");
48 bs = property.get();
49 assertWide(bs);
50 assertEquals(2, bs.getLineWidth(), 1e-10);
51 assertArrayEquals(new float[] {1}, bs.getDashArray(), 1e-10f);
52
53 Config.getPref().put("x", "2 0.1 1 10");
54 bs = property.get();
55 assertWide(bs);
56 assertEquals(2, bs.getLineWidth(), 1e-10);
57 assertArrayEquals(new float[] {0.1f, 1, 10}, bs.getDashArray(), 1e-10f);
58
59 Config.getPref().put("x", "x");
60 bs = property.get();
61 assertThin(bs);
62 assertEquals(1, bs.getLineWidth(), 1e-10);
63 assertEquals(null, bs.getDashArray());
64
65 // ignore dashes
66 Config.getPref().put("x", "11 0 0 0.0001");
67 bs = property.get();
68 assertWide(bs);
69 assertEquals(11, bs.getLineWidth(), 1e-10);
70 assertEquals(null, bs.getDashArray());
71 }
72
73 /**
74 * Test {@link StrokeProperty#put(BasicStroke)}
75 */
76 @Test
77 public void testPutValue() {
78 StrokeProperty property = new StrokeProperty("x", new BasicStroke(12));
79 BasicStroke bs = property.get();
80
81 assertWide(bs);
82 assertEquals(12, bs.getLineWidth(), 1e-10);
83 assertEquals(null, bs.getDashArray());
84
85 property.put(new BasicStroke(2, 0, 0, 1, new float[] {0.1f, 1, 10}, 0));
86 bs = property.get();
87 assertWide(bs);
88 assertEquals(2, bs.getLineWidth(), 1e-10);
89 assertArrayEquals(new float[] {0.1f, 1, 10}, bs.getDashArray(), 1e-10f);
90 }
91
92 private static void assertThin(BasicStroke bs) {
93 assertBase(bs);
94 assertEquals(BasicStroke.CAP_BUTT, bs.getEndCap());
95 assertEquals(BasicStroke.JOIN_MITER, bs.getLineJoin());
96 }
97
98 private static void assertWide(BasicStroke bs) {
99 assertBase(bs);
100 assertEquals(BasicStroke.CAP_ROUND, bs.getEndCap());
101 assertEquals(BasicStroke.JOIN_ROUND, bs.getLineJoin());
102 }
103
104 private static void assertBase(BasicStroke bs) {
105 assertEquals(10, bs.getMiterLimit(), 1e-10);
106 assertEquals(0, bs.getDashPhase(), 1e-10);
107 }
108}
Note: See TracBrowser for help on using the repository browser.