From 0986dd2a1670af7f9a256a5fced1af932c49c10f Mon Sep 17 00:00:00 2001 From: Mark Haines Date: Thu, 9 Mar 2017 14:29:01 +0000 Subject: [PATCH] Add test for stateKeyTupleSorter --- .../storage/state_block_table_test.go | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/github.com/matrix-org/dendrite/roomserver/storage/state_block_table_test.go diff --git a/src/github.com/matrix-org/dendrite/roomserver/storage/state_block_table_test.go b/src/github.com/matrix-org/dendrite/roomserver/storage/state_block_table_test.go new file mode 100644 index 000000000..e0a142296 --- /dev/null +++ b/src/github.com/matrix-org/dendrite/roomserver/storage/state_block_table_test.go @@ -0,0 +1,70 @@ +package storage + +import ( + "github.com/matrix-org/dendrite/roomserver/types" + "sort" + "testing" +) + +func TestStateKeyTupleSorter(t *testing.T) { + input := stateKeyTupleSorter{ + {1, 2}, + {1, 4}, + {2, 2}, + {1, 1}, + } + want := []types.StateKeyTuple{ + {1, 1}, + {1, 2}, + {1, 4}, + {2, 2}, + } + doNotWant := []types.StateKeyTuple{ + {0, 0}, + {1, 3}, + {2, 1}, + {3, 1}, + } + wantTypeNIDs := []int64{1, 2} + wantStateKeyNIDs := []int64{1, 2, 4} + + // Sort the input and check it's in the right order. + sort.Sort(input) + gotTypeNIDs, gotStateKeyNIDs := input.typesAndStateKeysAsArrays() + + for i := range want { + if input[i] != want[i] { + t.Errorf("Wanted %#v at index %d got %#v", want[i], i, input[i]) + } + + if !input.contains(want[i]) { + t.Errorf("Wanted %#v.contains(%#v) to be true but got false", input, want[i]) + } + } + + for i := range doNotWant { + if input.contains(doNotWant[i]) { + t.Errorf("Wanted %#v.contains(%#v) to be false but got true", input, doNotWant[i]) + } + } + + if len(wantTypeNIDs) != len(gotTypeNIDs) { + t.Fatalf("Wanted type NIDs %#v got %#v", wantTypeNIDs, gotTypeNIDs) + } + + for i := range wantTypeNIDs { + if wantTypeNIDs[i] != gotTypeNIDs[i] { + t.Fatalf("Wanted type NIDs %#v got %#v", wantTypeNIDs, gotTypeNIDs) + } + } + + if len(wantStateKeyNIDs) != len(gotStateKeyNIDs) { + t.Fatalf("Wanted state key NIDs %#v got %#v", wantStateKeyNIDs, gotStateKeyNIDs) + } + + for i := range wantStateKeyNIDs { + if wantStateKeyNIDs[i] != gotStateKeyNIDs[i] { + t.Fatalf("Wanted type NIDs %#v got %#v", wantTypeNIDs, gotTypeNIDs) + } + } +}