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

Last change on this file since 8391 was 7937, checked in by bastiK, 9 years ago

add subversion property svn:eol=native

  • Property svn:eol-style set to native
File size: 4.7 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.data.osm.Node;
12import org.openstreetmap.josm.gui.conflict.pair.MergeDecisionType;
13import org.openstreetmap.josm.gui.conflict.pair.tags.TagMergeItem;
14
15public class TagMergeItemTest {
16
17 @BeforeClass
18 public static void init() {
19 JOSMFixture.createUnitTestFixture().init();
20 }
21
22 @Test
23 public void test_TagMergeItem() {
24 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
25 assertEquals("key", item.getKey());
26 assertEquals("myvalue", item.getMyTagValue());
27 assertEquals("theirvalue", item.getTheirTagValue());
28 assertEquals(MergeDecisionType.UNDECIDED, item.getMergeDecision());
29 }
30
31 @Test
32 public void test_TagMergeItem_2() {
33 Node n1 = new Node(1);
34 Node n2 = new Node(1);
35 n1.put("key", "myvalue");
36 n2.put("key", "theirvalue");
37
38 TagMergeItem item = new TagMergeItem("key", n1, n2);
39 assertEquals("key", item.getKey());
40 assertEquals("myvalue", item.getMyTagValue());
41 assertEquals("theirvalue", item.getTheirTagValue());
42 assertEquals(MergeDecisionType.UNDECIDED, item.getMergeDecision());
43 }
44
45 @Test
46 public void test_TagMergeItem_3() {
47 Node n1 = new Node(1);
48 Node n2 = new Node(1);
49 n1.put("key", "myvalue");
50 // n2 does not have this key
51
52 TagMergeItem item = new TagMergeItem("key", n1, n2);
53 assertEquals("key", item.getKey());
54 assertEquals("myvalue", item.getMyTagValue());
55 assertNull(item.getTheirTagValue());
56 assertEquals(MergeDecisionType.UNDECIDED, item.getMergeDecision());
57 }
58
59 @Test
60 public void test_TagMergeItem_4() {
61 Node n1 = new Node(1);
62 Node n2 = new Node(1);
63 // n1 does not have this key
64 // n1.put("key", "myvalue");
65 n2.put("key", "theirvalue");
66
67 TagMergeItem item = new TagMergeItem("key", n1, n2);
68 assertEquals("key", item.getKey());
69 assertNull(item.getMyTagValue());
70 assertEquals("theirvalue",item.getTheirTagValue());
71 assertEquals(MergeDecisionType.UNDECIDED, item.getMergeDecision());
72 }
73
74
75 @Test
76 public void test_decide() {
77 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
78 item.decide(MergeDecisionType.KEEP_MINE);
79 assertEquals(MergeDecisionType.KEEP_MINE, item.getMergeDecision());
80 }
81
82 @Test()
83 public void test_decide_1() {
84 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
85 try {
86 item.decide(null);
87 fail("expected IllegalArgumentException not thrown");
88 } catch(IllegalArgumentException e) {
89 // OK
90 }
91 }
92
93 @Test()
94 public void test_applyToMyPrimitive() {
95 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
96 item.decide(MergeDecisionType.KEEP_MINE);
97
98 Node n1 = new Node(1);
99 n1.put("key", "oldvalue");
100 item.applyToMyPrimitive(n1);
101 assertEquals("myvalue", n1.get("key"));
102
103 n1 = new Node(1);
104 item.applyToMyPrimitive(n1);
105 assertEquals("myvalue", n1.get("key"));
106
107 }
108
109 @Test()
110 public void test_applyToMyPrimitive_2() {
111 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
112 item.decide(MergeDecisionType.KEEP_THEIR);
113
114 Node n1 = new Node(1);
115 n1.put("key", "oldvalue");
116 item.applyToMyPrimitive(n1);
117 assertEquals("theirvalue", n1.get("key"));
118
119 n1 = new Node(1);
120 item.applyToMyPrimitive(n1);
121 assertEquals("theirvalue", n1.get("key"));
122 }
123
124 @Test()
125 public void test_applyToMyPrimitive_3() {
126 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
127 // item is undecided
128 // item.decide(MergeDecisionType.KEEP_THEIR);
129
130 Node n1 = new Node(1);
131 n1.put("key", "oldvalue");
132 try {
133 item.applyToMyPrimitive(n1);
134 fail("expected IllegalStateException");
135 } catch(IllegalStateException e) {
136 // OK
137 }
138 }
139
140 @Test()
141 public void test_applyToMyPrimitive_4() {
142 TagMergeItem item = new TagMergeItem("key", "myvalue", "theirvalue");
143
144 try {
145 item.applyToMyPrimitive(null);
146 fail("expected IllegalArgumentException");
147 } catch(IllegalArgumentException e) {
148 // OK
149 }
150 }
151}
Note: See TracBrowser for help on using the repository browser.