1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#!/usr/bin/env python
2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved.
3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)# found in the LICENSE file.
5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)from test_object_store import TestObjectStore
7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)import unittest
8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class TestObjectStoreTest(unittest.TestCase):
10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  def testEmpty(self):
11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store = TestObjectStore('namespace')
12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    self.assertEqual(None, store.Get('hi').Get())
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    self.assertEqual({}, store.GetMulti(['hi', 'lo']).Get())
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  def testNonEmpty(self):
16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store = TestObjectStore('namespace')
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store.Set('hi', 'bye')
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    self.assertEqual('bye', store.Get('hi').Get())
19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    self.assertEqual({'hi': 'bye'}, store.GetMulti(['hi', 'lo']).Get())
20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store.Set('hi', 'blah')
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    self.assertEqual('blah', store.Get('hi').Get())
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    self.assertEqual({'hi': 'blah'}, store.GetMulti(['hi', 'lo']).Get())
23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store.Del('hi')
24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    self.assertEqual(None, store.Get('hi').Get())
25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    self.assertEqual({}, store.GetMulti(['hi', 'lo']).Get())
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  def testCheckAndReset(self):
28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store = TestObjectStore('namespace')
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store.Set('x', 'y')
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    self.assertTrue(*store.CheckAndReset(set_count=1))
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store.Set('x', 'y')
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store.Set('x', 'y')
33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    self.assertTrue(*store.CheckAndReset(set_count=2))
34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store.Set('x', 'y')
35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store.Set('x', 'y')
36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store.Get('x').Get()
37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store.Get('x').Get()
38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store.Get('x').Get()
39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    store.Del('x')
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    self.assertTrue(*store.CheckAndReset(get_count=3, set_count=2, del_count=1))
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)if __name__ == '__main__':
43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  unittest.main()
44