source: josm/trunk/test/unit/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeItemTest.java@ 12620

Last change on this file since 12620 was 12620, checked in by Don-vip, 7 years ago

see #15182 - deprecate all Main logging methods and introduce suitable replacements in Logging for most of them

  • Property svn:eol-style set to native
File size: 4.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.conflict.pair.tags;
3
4import static org.junit.Assert.assertEquals;
5import static org.junit.Assert.assertNull;
6import static org.junit.Assert.fail;
7
8import org.junit.Rule;
9import org.junit.Test;
10import org.openstreetmap.josm.data.osm.Node;
11import org.openstreetmap.josm.gui.conflict.pair.MergeDecisionType;
12import org.openstreetmap.josm.testutils.JOSMTestRules;
13import org.openstreetmap.josm.tools.Logging;
14
15import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
16
17/**
18 * Unit tests of {@link TagMergeItem} class.
19 */
20public class TagMergeItemTest {
21
22 /**
23 * Setup test.
24 */
25 @Rule
26 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
27 public JOSMTestRules test = new JOSMTestRules();
28
29 @Test
30 public void testTagMergeItem() {
31 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
32 assertEquals("key", item.getKey());
33 assertEquals("myvalue", item.getMyTagValue());
34 assertEquals("theirvalue", item.getTheirTagValue());
35 assertEquals(MergeDecisionType.UNDECIDED, item.getMergeDecision());
36 }
37
38 @Test
39 public void testTagMergeItem2() {
40 Node n1 = new Node(1);
41 Node n2 = new Node(1);
42 n1.put("key", "myvalue");
43 n2.put("key", "theirvalue");
44
45 TagMergeItem item = new TagMergeItem("key", n1, n2);
46 assertEquals("key", item.getKey());
47 assertEquals("myvalue", item.getMyTagValue());
48 assertEquals("theirvalue", item.getTheirTagValue());
49 assertEquals(MergeDecisionType.UNDECIDED, item.getMergeDecision());
50 }
51
52 @Test
53 public void testTagMergeItem3() {
54 Node n1 = new Node(1);
55 Node n2 = new Node(1);
56 n1.put("key", "myvalue");
57 // n2 does not have this key
58
59 TagMergeItem item = new TagMergeItem("key", n1, n2);
60 assertEquals("key", item.getKey());
61 assertEquals("myvalue", item.getMyTagValue());
62 assertNull(item.getTheirTagValue());
63 assertEquals(MergeDecisionType.UNDECIDED, item.getMergeDecision());
64 }
65
66 @Test
67 public void testTagMergeItem4() {
68 Node n1 = new Node(1);
69 Node n2 = new Node(1);
70 // n1 does not have this key
71 // n1.put("key", "myvalue");
72 n2.put("key", "theirvalue");
73
74 TagMergeItem item = new TagMergeItem("key", n1, n2);
75 assertEquals("key", item.getKey());
76 assertNull(item.getMyTagValue());
77 assertEquals("theirvalue", item.getTheirTagValue());
78 assertEquals(MergeDecisionType.UNDECIDED, item.getMergeDecision());
79 }
80
81 @Test
82 public void testDecide() {
83 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
84 item.decide(MergeDecisionType.KEEP_MINE);
85 assertEquals(MergeDecisionType.KEEP_MINE, item.getMergeDecision());
86 }
87
88 @Test
89 public void testDecide1() {
90 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
91 try {
92 item.decide(null);
93 fail("expected IllegalArgumentException not thrown");
94 } catch (IllegalArgumentException e) {
95 // OK
96 Logging.trace(e);
97 }
98 }
99
100 @Test
101 public void testApplyToMyPrimitive() {
102 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
103 item.decide(MergeDecisionType.KEEP_MINE);
104
105 Node n1 = new Node(1);
106 n1.put("key", "oldvalue");
107 item.applyToMyPrimitive(n1);
108 assertEquals("myvalue", n1.get("key"));
109
110 n1 = new Node(1);
111 item.applyToMyPrimitive(n1);
112 assertEquals("myvalue", n1.get("key"));
113 }
114
115 @Test
116 public void testApplyToMyPrimitive2() {
117 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
118 item.decide(MergeDecisionType.KEEP_THEIR);
119
120 Node n1 = new Node(1);
121 n1.put("key", "oldvalue");
122 item.applyToMyPrimitive(n1);
123 assertEquals("theirvalue", n1.get("key"));
124
125 n1 = new Node(1);
126 item.applyToMyPrimitive(n1);
127 assertEquals("theirvalue", n1.get("key"));
128 }
129
130 @Test
131 public void testApplyToMyPrimitive3() {
132 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
133 // item is undecided
134 // item.decide(MergeDecisionType.KEEP_THEIR);
135
136 Node n1 = new Node(1);
137 n1.put("key", "oldvalue");
138 try {
139 item.applyToMyPrimitive(n1);
140 fail("expected IllegalStateException");
141 } catch (IllegalStateException e) {
142 // OK
143 Logging.trace(e);
144 }
145 }
146
147 @Test
148 public void testApplyToMyPrimitive4() {
149 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
150
151 try {
152 item.applyToMyPrimitive(null);
153 fail("expected IllegalArgumentException");
154 } catch (IllegalArgumentException e) {
155 // OK
156 Logging.trace(e);
157 }
158 }
159}
Note: See TracBrowser for help on using the repository browser.