View Javadoc
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      // TODO Add some more javadoc here!
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       * @see <a href=
53       * "http://stackoverflow.com/questions/14137989/java-division-by-zero-doesnt-throw-an-arithmeticexception-why"
54       * >Why doesn't divide by zero return an error?</a>
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  }