Пример #1
0
func TestInto(t *testing.T) {
	cache, err := cachei.Open("redis", cachei.DataSource{})
	if err != nil {
		t.Fatal(err)

	}

	for i, tt := range cacheTests {
		cacheMiss := false
		missFunc := func() (interface{}, error) {
			cacheMiss = true
			return tt.value, nil
		}

		verr, cerr := cache.OutSetFn(fmt.Sprintf("__kdarcacheinto_redis_test_%d", i), 1, tt.into, missFunc)
		if verr != nil {
			t.Fatal(verr)
		}

		if cerr != nil {
			t.Fatal(cerr)
		}

		if !cacheMiss {
			t.Fatalf("%d-1. Expected a cache miss, but instead found cache", i)
		}

		if !reflect.DeepEqual(tt.value, reflect.ValueOf(tt.into).Elem().Interface()) {
			t.Fatalf("%d-1. Expected:\n%s,\ngot:\n%s", i, spew.Sprintf("%#v", &tt.value), spew.Sprintf("%#v", tt.into))
		}

		cacheMiss = false

		verr, cerr = cache.OutSetFn(fmt.Sprintf("__kdarcacheinto_redis_test_%d", i), 1, tt.into, missFunc)
		if verr != nil {
			t.Fatal(verr)
		}

		if cerr != nil {
			t.Fatal(cerr)
		}

		if cacheMiss {
			t.Fatalf("%d-2. Expected cache, but instead got a cache miss.", i)
		}

		if !reflect.DeepEqual(tt.value, reflect.ValueOf(tt.into).Elem().Interface()) {
			t.Fatalf("%d-2. Expected: %s, got: %s", i, spew.Sprintf("%#v", tt.value), spew.Sprintf("%#v", tt.into))
		}
	}
}
Пример #2
0
func TestGet(t *testing.T) {
	cache, err := cachei.Open("redis", cachei.DataSource{})
	if err != nil {
		t.Fatal(err)
	}

	for i, tt := range cacheTests {
		cacheMiss := false
		missFunc := func() (interface{}, error) {
			cacheMiss = true
			return tt.value, nil
		}

		v1, verr, cerr := cache.GetSetFn(fmt.Sprintf("__kdarcacheget_redis_test_%d", i), 1, missFunc)
		if verr != nil {
			t.Fatal(verr)
		}

		if cerr != nil {
			t.Fatal(cerr)
		}

		if !cacheMiss {
			t.Fatalf("%d-1. Expected a cache miss, but instead found cache", i)
		}

		if !reflect.DeepEqual(tt.value, v1) {
			t.Fatalf("%d-1. Expected: %s, got: %s", i, spew.Sprintf("%#v", tt.value), spew.Sprintf("%#v", v1))
		}

		cacheMiss = false

		v2, verr, cerr := cache.GetSetFn(fmt.Sprintf("__kdarcacheget_redis_test_%d", i), 1, missFunc)
		if verr != nil {
			t.Fatal(verr)
		}

		if cerr != nil {
			t.Fatal(cerr)
		}

		if cacheMiss {
			t.Fatalf("%d-2. Expected cache, but instead got a cache miss.", i)
		}

		if !reflect.DeepEqual(v1, v2) {
			t.Fatalf("%d-2. Expected: %s, got: %s", i, spew.Sprintf("%#v", v1), spew.Sprintf("%#v", v2))
		}
	}
}