Behavioral.Mediator.MediatorTest.testNotify()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 20
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 17
c 2
b 0
f 0
dl 0
loc 20
rs 9.55
cc 1
1
/*
2
 * @author  : Jagepard <[email protected]>
3
 * @license https://mit-license.org/ MIT
4
 */
5
6
package Behavioral.Mediator;
7
8
 import org.junit.jupiter.api.BeforeEach;
9
 import org.junit.jupiter.api.Test;
10
11
 import java.lang.reflect.InvocationTargetException;
12
 import java.util.ArrayList;
13
14
 import static org.junit.jupiter.api.Assertions.assertEquals;
15
16
class MediatorTest {
17
    private HandlerInterface handler;
18
    private MediatorInterface mediator;
19
20
    @BeforeEach
21
    void setUp() {
22
        this.handler  = new Handler();
23
        this.mediator = new Mediator();
24
    }
25
26
    @Test
27
    void testNotify() throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
28
        AbstractListener listener1 = new Colleague1();
29
        AbstractListener listener2 = new Colleague2();
30
        AbstractListener listener3 = new Colleague3();
31
32
        this.mediator.addListener(listener1, "onEvent");
33
        this.mediator.addListener(listener2, "onEvent");
34
        this.mediator.addListener(listener3, "onEvent");
35
36
        ArrayList<String> result1 = handShake(handler, mediator, listener1, listener2);
37
        ArrayList<String> result2 = handShake(handler, mediator, listener2, listener3);
38
        ArrayList<String> result3 = handShake(handler, mediator, listener3, listener1);
39
40
        assertEquals("Behavioral.Mediator.Colleague1: How are you Behavioral.Mediator.Colleague2?", result1.get(0));
41
        assertEquals("Behavioral.Mediator.Colleague2: Fine, thanks!", result1.get(1));
42
        assertEquals("Behavioral.Mediator.Colleague2: How are you Behavioral.Mediator.Colleague3?", result2.get(0));
43
        assertEquals("Behavioral.Mediator.Colleague3: Fine, thanks!", result2.get(1));
44
        assertEquals("Behavioral.Mediator.Colleague3: How are you Behavioral.Mediator.Colleague1?", result3.get(0));
45
        assertEquals("Behavioral.Mediator.Colleague1: Fine, thanks!", result3.get(1));
46
    }
47
48
    private static ArrayList<String> handShake(HandlerInterface handler, MediatorInterface mediator, AbstractListener listener1, AbstractListener listener2) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
49
        return listener1.toGreet(listener2.getClass().getName(), mediator, handler);
50
    }
51
}