| 47 | } |
| 48 | |
| 49 | func (s *CacheOnStorageSuite) TestGetMulti(c *C) { |
| 50 | s.cache.Set(&testKeyVal{"zzz", 1}) |
| 51 | s.storage.Set(&testKeyVal{"foo", 10}) |
| 52 | s.storage.Set(&testKeyVal{"zzz", 123}) |
| 53 | |
| 54 | results, err := s.combined.GetMulti("foo", "bar", "zzz") |
| 55 | c.Assert(err, IsNil) |
| 56 | c.Assert(len(results), Equals, 3) |
| 57 | |
| 58 | // Cache missed |
| 59 | c.Assert(results[0].(*testKeyVal).key, Equals, "foo") |
| 60 | c.Assert(results[0].(*testKeyVal).val, Equals, 10) |
| 61 | |
| 62 | // Not in either storage |
| 63 | c.Assert(results[1], IsNil) |
| 64 | |
| 65 | // Cache hit |
| 66 | c.Assert(results[2].(*testKeyVal).key, Equals, "zzz") |
| 67 | c.Assert(results[2].(*testKeyVal).val, Equals, 1) |
| 68 | |
| 69 | // foo inserted into cache |
| 70 | result, err := s.cache.Get("foo") |
| 71 | c.Assert(err, IsNil) |
| 72 | c.Assert(result, NotNil) |
| 73 | c.Assert(result.(*testKeyVal).key, Equals, "foo") |
| 74 | c.Assert(result.(*testKeyVal).val, Equals, 10) |
| 75 | } |
| 76 | |
| 77 | func (s *CacheOnStorageSuite) TestSet(c *C) { |
| 78 | s.combined.Set(&testKeyVal{"foo", 123}) |