Browse code

pkg/graphdb: tests for Parents and Children

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)

Erik Hollensbe authored on 2014/08/26 14:19:00
Showing 1 changed files
... ...
@@ -34,7 +34,7 @@ func TestNewDatabase(t *testing.T) {
34 34
 	defer destroyTestDb(dbpath)
35 35
 }
36 36
 
37
-func TestCreateRootEnity(t *testing.T) {
37
+func TestCreateRootEntity(t *testing.T) {
38 38
 	db, dbpath := newTestDb(t)
39 39
 	defer destroyTestDb(dbpath)
40 40
 	root := db.RootEntity()
... ...
@@ -94,6 +94,84 @@ func TestCreateChild(t *testing.T) {
94 94
 	}
95 95
 }
96 96
 
97
+func TestParents(t *testing.T) {
98
+	db, dbpath := newTestDb(t)
99
+	defer destroyTestDb(dbpath)
100
+
101
+	for i := 1; i < 6; i++ {
102
+		a := strconv.Itoa(i)
103
+		if _, err := db.Set("/"+a, a); err != nil {
104
+			t.Fatal(err)
105
+		}
106
+	}
107
+
108
+	for i := 6; i < 11; i++ {
109
+		a := strconv.Itoa(i)
110
+		p := strconv.Itoa(i - 5)
111
+
112
+		key := fmt.Sprintf("/%s/%s", p, a)
113
+
114
+		if _, err := db.Set(key, a); err != nil {
115
+			t.Fatal(err)
116
+		}
117
+
118
+		parents, err := db.Parents(key)
119
+		if err != nil {
120
+			t.Fatal(err)
121
+		}
122
+
123
+		if len(parents) != 1 {
124
+			t.Fatalf("Expected 2 entries for %s got %d", key, len(parents))
125
+		}
126
+
127
+		if parents[0] != p {
128
+			t.Fatalf("ID %s received, %s expected", parents[0], p)
129
+		}
130
+	}
131
+}
132
+
133
+func TestChildren(t *testing.T) {
134
+	db, dbpath := newTestDb(t)
135
+	defer destroyTestDb(dbpath)
136
+
137
+	str := "/"
138
+	for i := 1; i < 6; i++ {
139
+		a := strconv.Itoa(i)
140
+		if _, err := db.Set(str+a, a); err != nil {
141
+			t.Fatal(err)
142
+		}
143
+
144
+		str = str + a + "/"
145
+	}
146
+
147
+	str = "/"
148
+	for i := 10; i < 30; i++ { // 20 entities
149
+		a := strconv.Itoa(i)
150
+		if _, err := db.Set(str+a, a); err != nil {
151
+			t.Fatal(err)
152
+		}
153
+
154
+		str = str + a + "/"
155
+	}
156
+	entries, err := db.Children("/", 5)
157
+	if err != nil {
158
+		t.Fatal(err)
159
+	}
160
+
161
+	if len(entries) != 11 {
162
+		t.Fatalf("Expect 11 entries for / got %d", len(entries))
163
+	}
164
+
165
+	entries, err = db.Children("/", 20)
166
+	if err != nil {
167
+		t.Fatal(err)
168
+	}
169
+
170
+	if len(entries) != 25 {
171
+		t.Fatalf("Expect 25 entries for / got %d", len(entries))
172
+	}
173
+}
174
+
97 175
 func TestListAllRootChildren(t *testing.T) {
98 176
 	db, dbpath := newTestDb(t)
99 177
 	defer destroyTestDb(dbpath)