Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / unittest / simple_mock_unittest.py
1 # Copyright 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4 import unittest
5
6 from telemetry.unittest import simple_mock
7
8 _ = simple_mock.DONT_CARE
9
10 class SimpleMockUnitTest(unittest.TestCase):
11   def testBasic(self):
12     mock = simple_mock.MockObject()
13     mock.ExpectCall('foo')
14
15     mock.foo()
16
17   def testReturn(self):
18     mock = simple_mock.MockObject()
19     mock.ExpectCall('foo').WillReturn(7)
20
21     ret = mock.foo()
22     self.assertEquals(ret, 7)
23
24   def testArgs(self):
25     mock = simple_mock.MockObject()
26     mock.ExpectCall('foo').WithArgs(3, 4)
27
28     mock.foo(3, 4)
29
30   def testArgs2(self):
31     mock = simple_mock.MockObject()
32     mock.ExpectCall('foo', 3, 4)
33
34     mock.foo(3, 4)
35
36   def testArgsMismatch(self):
37     mock = simple_mock.MockObject()
38     mock.ExpectCall('foo').WithArgs(3, 4)
39
40     self.assertRaises(Exception,
41                       lambda: mock.foo(4, 4))
42
43
44   def testArgsDontCare(self):
45     mock = simple_mock.MockObject()
46     mock.ExpectCall('foo').WithArgs(_, 4)
47
48     mock.foo(4, 4)
49
50   def testOnCall(self):
51     mock = simple_mock.MockObject()
52
53     handler_called = []
54     def Handler(arg0):
55       assert arg0 == 7
56       handler_called.append(True)
57     mock.ExpectCall('baz', 7).WhenCalled(Handler)
58
59     mock.baz(7)
60     self.assertTrue(len(handler_called) > 0)
61
62
63   def testSubObject(self):
64     mock = simple_mock.MockObject()
65     mock.bar = simple_mock.MockObject(mock)
66
67     mock.ExpectCall('foo').WithArgs(_, 4)
68     mock.bar.ExpectCall('baz')
69
70     mock.foo(0, 4)
71     mock.bar.baz()
72
73   def testSubObjectMismatch(self):
74     mock = simple_mock.MockObject()
75     mock.bar = simple_mock.MockObject(mock)
76
77     mock.ExpectCall('foo').WithArgs(_, 4)
78     mock.bar.ExpectCall('baz')
79
80     self.assertRaises(
81       Exception,
82       lambda: mock.bar.baz()) # pylint: disable=W0108