Skip to content

Commit 44cb963

Browse files
committed
Merge branch 'test_bridge' of https://github.com/fkromer/python-patterns into fkromer-test_bridge
2 parents 85d9fa3 + 642c42b commit 44cb963

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

test_bridge.py

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
class BridgeTest(unittest.TestCase):
1515

16-
def test_bridge_shall_draw_with_concrete_implementation(cls):
16+
def test_bridge_shall_draw_with_concrete_api_implementation(cls):
1717
ci1 = DrawingAPI1()
1818
ci2 = DrawingAPI2()
1919
with patch.object(ci1, 'draw_circle') as mock_ci1_draw_circle,\
@@ -25,15 +25,27 @@ def test_bridge_shall_draw_with_concrete_implementation(cls):
2525
sh2.draw()
2626
cls.assertEqual(mock_ci2_draw_circle.call_count, 1)
2727

28-
def test_bridge_shall_scale_with_own_implementation(cls):
29-
ci = DrawingAPI1()
30-
sh = CircleShape(1, 2, 3, ci)
31-
sh.scale(2)
32-
cls.assertEqual(sh._radius, 6)
33-
with patch.object(sh, 'scale') as mock_sh_scale_circle:
34-
sh.scale(2)
35-
cls.assertEqual(mock_sh_scale_circle.call_count, 1)
28+
def test_bridge_shall_scale_both_api_circles_with_own_implementation(cls):
29+
SCALE_FACTOR = 2
30+
CIRCLE_FACTOR = 3
31+
CIRCLE1_RADIUS = 3
32+
EXPECTED_CIRCLE1_RADIUS = 6
33+
CIRCLE2_RADIUS = CIRCLE1_RADIUS * CIRCLE1_RADIUS
34+
EXPECTED_CIRCLE2_RADIUS = CIRCLE2_RADIUS * SCALE_FACTOR
35+
ci1 = DrawingAPI1()
36+
ci2 = DrawingAPI2()
37+
sh1 = CircleShape(1, 2, CIRCLE1_RADIUS, ci1)
38+
sh2 = CircleShape(1, 2, CIRCLE2_RADIUS, ci2)
39+
sh1.scale(SCALE_FACTOR)
40+
sh2.scale(SCALE_FACTOR)
41+
cls.assertEqual(sh1._radius, EXPECTED_CIRCLE1_RADIUS)
42+
cls.assertEqual(sh2._radius, EXPECTED_CIRCLE2_RADIUS)
43+
with patch.object(sh1, 'scale') as mock_sh1_scale_circle,\
44+
patch.object(sh2, 'scale') as mock_sh2_scale_circle:
45+
sh1.scale(2)
46+
sh2.scale(2)
47+
cls.assertEqual(mock_sh1_scale_circle.call_count, 1)
48+
cls.assertEqual(mock_sh2_scale_circle.call_count, 1)
3649

3750
if __name__ == "__main__":
3851
unittest.main()
39-

0 commit comments

Comments
 (0)