add tests for basic name matching in pin update
License: MIT Signed-off-by: Ian Preston <ianopolous@protonmail.com>
Ian Preston committed
Oct 28, 2017 at 17:09 UTC
4f11baa0be284d9f5faadc739a96e6d2d546a7f3
2 files changed
+44
-1
merkledag/utils/diffenum.go
+1
-1
@@ -72,7 +72,7 @@ func getLinkDiff(a, b node.Node) []diffpair {
72
inb[l.Cid.KeyString()] = l
73
}
74
for _, l := range a.Links() {
75
- var key = l.Cid.KeyString()
75
+ var key = l.Cid.KeyString()
76
ina[key] = l
77
if inb[key] == nil {
78
aonly = append(aonly, l.Cid)
merkledag/utils/diffenum_test.go
+43
@@ -84,6 +84,49 @@ var tg3 = map[string]ndesc{
84
"d": ndesc{},
85
}
86
87
+var tg4 = map[string]ndesc{
88
+ "a1": ndesc{
89
+ "key1": "b",
90
+ "key2": "c",
91
+ },
92
+ "a2": ndesc{
93
+ "key1": "b",
94
+ "key2": "d",
95
+ },
96
+}
97
+
98
+var tg5 = map[string]ndesc{
99
+ "a1": ndesc{
100
+ "key1": "a",
101
+ "key2": "b",
102
+ },
103
+ "a2": ndesc{
104
+ "key1": "c",
105
+ "key2": "d",
106
+ },
107
+}
108
+
109
+func TestNameMatching(t *testing.T) {
110
+ nds := mkGraph(tg4)
111
+
112
+ diff := getLinkDiff(nds["a1"], nds["a2"])
113
+ if len(diff) != 1 {
114
+ t.Fatal(fmt.Errorf("node diff didn't match by name"))
115
+ }
116
+}
117
+
118
+func TestNameMatching2(t *testing.T) {
119
+ nds := mkGraph(tg5)
120
+
121
+ diff := getLinkDiff(nds["a1"], nds["a2"])
122
+ if len(diff) != 2 {
123
+ t.Fatal(fmt.Errorf("incorrect number of link diff elements"))
124
+ }
125
+ if !(diff[0].bef.Equals(nds["a1"].Links()[0].Cid) && diff[0].aft.Equals(nds["a2"].Links()[0].Cid)) {
126
+ t.Fatal(fmt.Errorf("node diff didn't match by name"))
127
+ }
128
+}
129
+
130
func TestDiffEnumBasic(t *testing.T) {
131
ctx, cancel := context.WithCancel(context.Background())
132
defer cancel()