diff --git a/ecs/crm-datafetch/tests/util/test_counter_object.py b/ecs/crm-datafetch/tests/util/test_counter_object.py new file mode 100644 index 00000000..47b9928a --- /dev/null +++ b/ecs/crm-datafetch/tests/util/test_counter_object.py @@ -0,0 +1,114 @@ +import pytest +from src.util.counter_object import CounterObject + + +class TestCounterObject: + + def test_describe(self) -> int: + """ + Cases: + カウンターオブジェクトにて保持した値を返すこと + Arranges: + なし + Expects: + 問い合わせた値が期待値と一致する + """ + + # Act + sut = CounterObject(5) + actual = sut.describe() + + # Expects + assert actual == 5 + + def test_raise_describe(self) -> int: + """ + Cases: + カウンターオブジェクトにて保持した値を返すこと + Arranges: + なし + Expects: + 問い合わせた値が期待値と一致する + """ + + # Act + with pytest.raises(Exception) as e: + sut = CounterObject("aaa") + sut.describe() + + # Expects + assert str(e.value) == '例外' + + def test_increment(self, num=1) -> int: + """ + Cases: + カウンターオブジェクトにて保持した値がインクリメントされていること + Arranges: + なし + Expects: + 戻り値が期待値と一致する + """ + + # Act + sut = CounterObject(5) + sut.increment() + actual = sut.increment() + + # Expects + assert actual == 7 + + def test_raise_increment(self, num=1) -> int: + """ + Cases: + 文字列を引数で渡すことで、例外が発生すること + Arranges: + なし + Expects: + 発生した例外が期待値と一致する + """ + + # Act + with pytest.raises(Exception) as e: + sut = CounterObject(5) + sut.increment('aaa') + sut.increment('aaa') + + # Expects + assert str(e.value) == "unsupported operand type(s) for +=: 'int' and 'str'" + + def test_decrement(self, num=1) -> int: + """ + Cases: + カウンターオブジェクトにて保持した値がデクリメントされていること + Arranges: + なし + Expects: + 戻り値が期待値と一致する + """ + + # Act + sut = CounterObject(5) + sut.decrement(2) + actual = sut.decrement(2) + + # Expects + assert actual == 1 + + def test_raise_decrement(self, num=1) -> int: + """ + Cases: + 文字列を引数で渡すことで、例外が発生すること + Arranges: + なし + Expects: + 発生した例外が期待値と一致する + """ + + # Act + with pytest.raises(Exception) as e: + sut = CounterObject(5) + sut.decrement('aaa') + sut.decrement('aaa') + + # Expects + assert str(e.value) == "unsupported operand type(s) for -=: 'int' and 'str'"