summaryrefslogtreecommitdiffstats
path: root/src/cache_test.go
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2015-01-11 02:20:54 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2015-01-11 02:20:54 +0900
commite293cd4d088ec1fc4b6a7b14a19825138a20c597 (patch)
tree5f3ed86a4c8cec2cc9ffe43bd6e65812e7e48a2a /src/cache_test.go
parentca4bdfb4bd61e1cb9991146ac5b6bafbf5391072 (diff)
Add test cases for ChunkCache
Diffstat (limited to 'src/cache_test.go')
-rw-r--r--src/cache_test.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/cache_test.go b/src/cache_test.go
new file mode 100644
index 00000000..2a8b0480
--- /dev/null
+++ b/src/cache_test.go
@@ -0,0 +1,40 @@
+package fzf
+
+import "testing"
+
+func TestChunkCache(t *testing.T) {
+ cache := NewChunkCache()
+ chunk2 := make(Chunk, CHUNK_SIZE)
+ chunk1p := &Chunk{}
+ chunk2p := &chunk2
+ items1 := []*Item{&Item{}}
+ items2 := []*Item{&Item{}, &Item{}}
+ cache.Add(chunk1p, "foo", items1)
+ cache.Add(chunk2p, "foo", items1)
+ cache.Add(chunk2p, "bar", items2)
+
+ { // chunk1 is not full
+ cached, found := cache.Find(chunk1p, "foo")
+ if found {
+ t.Error("Cached disabled for non-empty chunks", found, cached)
+ }
+ }
+ {
+ cached, found := cache.Find(chunk2p, "foo")
+ if !found || len(cached) != 1 {
+ t.Error("Expected 1 item cached", found, cached)
+ }
+ }
+ {
+ cached, found := cache.Find(chunk2p, "bar")
+ if !found || len(cached) != 2 {
+ t.Error("Expected 2 items cached", found, cached)
+ }
+ }
+ {
+ cached, found := cache.Find(chunk1p, "foobar")
+ if found {
+ t.Error("Expected 0 item cached", found, cached)
+ }
+ }
+}