Update sdk/platform-tools to version 26.0.0.
[android_tools.git] / sdk / platform-tools / systrace / catapult / telemetry / telemetry / testing / simple_mock_unittest.py
blob67cee584ac6f02d63280e456690b1a7dc3a628e3
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
6 from telemetry.testing import simple_mock
8 _ = simple_mock.DONT_CARE
10 # pylint: disable=no-member
11 class SimpleMockUnitTest(unittest.TestCase):
12 def testBasic(self):
13 mock = simple_mock.MockObject()
14 mock.ExpectCall('foo')
16 mock.foo()
18 def testReturn(self):
19 mock = simple_mock.MockObject()
20 mock.ExpectCall('foo').WillReturn(7)
22 ret = mock.foo()
23 self.assertEquals(ret, 7)
25 def testArgs(self):
26 mock = simple_mock.MockObject()
27 mock.ExpectCall('foo').WithArgs(3, 4)
29 mock.foo(3, 4)
31 def testArgs2(self):
32 mock = simple_mock.MockObject()
33 mock.ExpectCall('foo', 3, 4)
35 mock.foo(3, 4)
37 def testArgsMismatch(self):
38 mock = simple_mock.MockObject()
39 mock.ExpectCall('foo').WithArgs(3, 4)
41 self.assertRaises(Exception,
42 lambda: mock.foo(4, 4))
45 def testArgsDontCare(self):
46 mock = simple_mock.MockObject()
47 mock.ExpectCall('foo').WithArgs(_, 4)
49 mock.foo(4, 4)
51 def testOnCall(self):
52 mock = simple_mock.MockObject()
54 handler_called = []
55 def Handler(arg0):
56 assert arg0 == 7
57 handler_called.append(True)
58 mock.ExpectCall('baz', 7).WhenCalled(Handler)
60 mock.baz(7)
61 self.assertTrue(len(handler_called) > 0)
64 def testSubObject(self):
65 mock = simple_mock.MockObject()
66 mock.bar = simple_mock.MockObject(mock)
68 mock.ExpectCall('foo').WithArgs(_, 4)
69 mock.bar.ExpectCall('baz')
71 mock.foo(0, 4)
72 mock.bar.baz()
74 def testSubObjectMismatch(self):
75 mock = simple_mock.MockObject()
76 mock.bar = simple_mock.MockObject(mock)
78 mock.ExpectCall('foo').WithArgs(_, 4)
79 mock.bar.ExpectCall('baz')
81 self.assertRaises(
82 Exception,
83 lambda: mock.bar.baz()) # pylint: disable=unnecessary-lambda