11809: Skip lookups in forceReload case. Add forceReload tests.
[arvados.git] / services / keep-web / cache_test.go
index 95385431c4bacc981de7c418418d8b06644abe75..f8aa2b1c60e095198719a7028de3a9cbde7fe12a 100644 (file)
@@ -66,3 +66,39 @@ func (s *UnitSuite) TestCache(c *check.C) {
        c.Check(cache.Stats().PDHHits, check.Equals, uint64(4+0+18))
        c.Check(cache.Stats().APICalls, check.Equals, uint64(1+1+2))
 }
+
+func (s *UnitSuite) TestCacheForceReloadByPDH(c *check.C) {
+       arv, err := arvadosclient.MakeArvadosClient()
+       c.Assert(err, check.Equals, nil)
+
+       cache := DefaultConfig().Cache
+
+       for _, forceReload := range []bool{false, true, false, true} {
+               _, err := cache.Get(arv, arvadostest.FooPdh, forceReload)
+               c.Check(err, check.Equals, nil)
+       }
+
+       c.Check(cache.Stats().Requests, check.Equals, uint64(4))
+       c.Check(cache.Stats().CollectionHits, check.Equals, uint64(3))
+       c.Check(cache.Stats().PermissionHits, check.Equals, uint64(1))
+       c.Check(cache.Stats().PDHHits, check.Equals, uint64(0))
+       c.Check(cache.Stats().APICalls, check.Equals, uint64(3))
+}
+
+func (s *UnitSuite) TestCacheForceReloadByUUID(c *check.C) {
+       arv, err := arvadosclient.MakeArvadosClient()
+       c.Assert(err, check.Equals, nil)
+
+       cache := DefaultConfig().Cache
+
+       for _, forceReload := range []bool{false, true, false, true} {
+               _, err := cache.Get(arv, arvadostest.FooCollection, forceReload)
+               c.Check(err, check.Equals, nil)
+       }
+
+       c.Check(cache.Stats().Requests, check.Equals, uint64(4))
+       c.Check(cache.Stats().CollectionHits, check.Equals, uint64(1))
+       c.Check(cache.Stats().PermissionHits, check.Equals, uint64(1))
+       c.Check(cache.Stats().PDHHits, check.Equals, uint64(1))
+       c.Check(cache.Stats().APICalls, check.Equals, uint64(3))
+}