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