1 package com.changenode;
2
3 import org.junit.jupiter.api.Test;
4 import org.slf4j.Logger;
5 import org.slf4j.LoggerFactory;
6
7 import static org.assertj.core.api.Assertions.assertThat;
8
9 public class CalculatorTest {
10
11 private Calculator calculator = new Calculator();
12
13 private static final Logger LOG = LoggerFactory.getLogger(CalculatorTest.class);
14
15
16 @Test
17 public void testAdd() {
18 assertThat(calculator.value()).isZero();
19 calculator.add(5);
20 assertThat(calculator.value()).isEqualTo(5);
21 }
22
23 @Test
24 public void testSubtract() {
25 assertThat(calculator.value()).isZero();
26 calculator.subtract(5);
27 assertThat(calculator.value()).isEqualTo(-5);
28
29 }
30
31 @Test
32 public void testMultiply() {
33 assertThat(calculator.value()).isZero();
34
35 calculator.add(5).multiply(2);
36
37 assertThat(calculator.value()).isEqualTo(10);
38
39 }
40
41 @Test
42 public void testDivide() {
43 assertThat(calculator.value()).isZero();
44
45 calculator.add(10).divide(2);
46
47 assertThat(calculator.value()).isEqualTo(5);
48
49 }
50
51
52
53
54
55
56 @Test()
57 public void testDivideByZero() {
58 calculator.divide(2);
59 LOG.info("Divide by zero results in... {}", calculator.value());
60 assertThat(calculator.value()).isEqualTo(0);
61 }
62
63 @Test
64 public void testAbitrary() {
65 assertThat(calculator.arbitrarilyComplexMethod("bar", 0, null, null, null)).isEqualTo(0);
66
67 assertThat(calculator.arbitrarilyComplexMethodPart2("bar", 0, null, null, null)).isEqualTo(0);
68 }
69
70 }