1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.objecttools;
18
19 import static org.junit.jupiter.api.Assertions.*;
20
21 import org.apache.juneau.*;
22 import org.junit.jupiter.api.*;
23
24
25
26
27 class ObjectMerger_Test extends TestBase {
28
29
30
31
32 @Test void a01_basic() {
33 IA a1, a2, am;
34
35 a1 = new A("1"); a2 = new A("2");
36 am = ObjectMerger.merge(IA.class, a1, a2);
37 assertEquals("1", am.getA());
38 am.setA("x");
39 assertEquals("x", am.getA());
40 assertEquals("x", a1.getA());
41 assertEquals("2", a2.getA());
42
43 a1 = new A("1"); a2 = new A("2");
44 am = ObjectMerger.merge(IA.class, true, a1, a2);
45 assertEquals("1", am.getA());
46 am.setA("x");
47 assertEquals("x", am.getA());
48 assertEquals("x", a1.getA());
49 assertEquals("x", a2.getA());
50
51 a1 = new A(null); a2 = new A("2");
52 am = ObjectMerger.merge(IA.class, a1, a2);
53 assertEquals("2", am.getA());
54 am.setA("x");
55 assertEquals("x", am.getA());
56 assertEquals("x", a1.getA());
57 assertEquals("2", a2.getA());
58
59 a1 = new A(null); a2 = new A(null);
60 am = ObjectMerger.merge(IA.class, a1, a2);
61 assertEquals(null, am.getA());
62
63 a1 = new A(null); a2 = new A("2");
64 am = ObjectMerger.merge(IA.class, null, a1, null, null, a2, null);
65 assertEquals("2", am.getA());
66 }
67
68 public interface IA {
69 String getA();
70 void setA(String a);
71 }
72
73 public static class A implements IA {
74 public A(String a) {
75 this.a = a;
76 }
77
78 private String a;
79 @Override public String getA() { return a; }
80 @Override public void setA(String v) { a = v; }
81 }
82 }