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

Last change on this file since 8871 was 8857, checked in by Don-vip, 9 years ago

improve/cleanup unit tests

  • Property svn:eol-style set to native
File size: 5.1 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.conflict.tags;
3
4import static org.junit.Assert.assertEquals;
5import static org.junit.Assert.assertNull;
6import static org.junit.Assert.fail;
7
8import org.junit.BeforeClass;
9import org.junit.Test;
10import org.openstreetmap.josm.JOSMFixture;
11import org.openstreetmap.josm.Main;
12import org.openstreetmap.josm.data.osm.Node;
13import org.openstreetmap.josm.gui.conflict.pair.MergeDecisionType;
14import org.openstreetmap.josm.gui.conflict.pair.tags.TagMergeItem;
15
16/**
17 * Unit tests of {@link TagMergeItem} class.
18 */
19public class TagMergeItemTest {
20
21 /**
22 * Setup test.
23 */
24 @BeforeClass
25 public static void init() {
26 JOSMFixture.createUnitTestFixture().init();
27 }
28
29 @Test
30 public void test_TagMergeItem() {
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 test_TagMergeItem_2() {
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 test_TagMergeItem_3() {
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 test_TagMergeItem_4() {
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 test_decide() {
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 test_decide_1() {
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 if (Main.isTraceEnabled()) {
97 Main.trace(e.getMessage());
98 }
99 }
100 }
101
102 @Test
103 public void test_applyToMyPrimitive() {
104 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
105 item.decide(MergeDecisionType.KEEP_MINE);
106
107 Node n1 = new Node(1);
108 n1.put("key", "oldvalue");
109 item.applyToMyPrimitive(n1);
110 assertEquals("myvalue", n1.get("key"));
111
112 n1 = new Node(1);
113 item.applyToMyPrimitive(n1);
114 assertEquals("myvalue", n1.get("key"));
115 }
116
117 @Test
118 public void test_applyToMyPrimitive_2() {
119 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
120 item.decide(MergeDecisionType.KEEP_THEIR);
121
122 Node n1 = new Node(1);
123 n1.put("key", "oldvalue");
124 item.applyToMyPrimitive(n1);
125 assertEquals("theirvalue", n1.get("key"));
126
127 n1 = new Node(1);
128 item.applyToMyPrimitive(n1);
129 assertEquals("theirvalue", n1.get("key"));
130 }
131
132 @Test
133 public void test_applyToMyPrimitive_3() {
134 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
135 // item is undecided
136 // item.decide(MergeDecisionType.KEEP_THEIR);
137
138 Node n1 = new Node(1);
139 n1.put("key", "oldvalue");
140 try {
141 item.applyToMyPrimitive(n1);
142 fail("expected IllegalStateException");
143 } catch (IllegalStateException e) {
144 // OK
145 if (Main.isTraceEnabled()) {
146 Main.trace(e.getMessage());
147 }
148 }
149 }
150
151 @Test
152 public void test_applyToMyPrimitive_4() {
153 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
154
155 try {
156 item.applyToMyPrimitive(null);
157 fail("expected IllegalArgumentException");
158 } catch (IllegalArgumentException e) {
159 // OK
160 if (Main.isTraceEnabled()) {
161 Main.trace(e.getMessage());
162 }
163 }
164 }
165}
Note: See TracBrowser for help on using the repository browser.