Skip to content

Commit a49dbef

Browse files
committed
Add simple tests for delegate pattern iluwatar#324
1 parent fb0617e commit a49dbef

File tree

5 files changed

+56
-11
lines changed

5 files changed

+56
-11
lines changed

delegation/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,11 @@
4141
<artifactId>junit</artifactId>
4242
<scope>test</scope>
4343
</dependency>
44+
<dependency>
45+
<groupId>com.github.stefanbirkner</groupId>
46+
<artifactId>system-rules</artifactId>
47+
<version>1.14.0</version>
48+
<scope>test</scope>
49+
</dependency>
4450
</dependencies>
4551
</project>

delegation/src/main/java/com/iluwatar/delegation/simple/Controller.java renamed to delegation/src/main/java/com/iluwatar/delegation/simple/AbstractPrinterController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.iluwatar.delegation.simple;
22

3-
public abstract class Controller<T extends Printer> {
3+
public abstract class AbstractPrinterController<T extends Printer> implements Printer{
44

55
private Printer printer;
66

7-
public Controller(Printer printer) {
7+
public AbstractPrinterController(Printer printer) {
88
this.printer = printer;
99
}
1010

delegation/src/main/java/com/iluwatar/delegation/simple/PrinterController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.iluwatar.delegation.simple;
22

3-
public class PrinterController extends Controller implements Printer {
3+
public class PrinterController extends AbstractPrinterController {
44

55
public PrinterController(Printer printer) {
66
super(printer);

delegation/src/main/java/com/iluwatar/delegation/simple/printers/App.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
11
package com.iluwatar.delegation.simple.printers;
22

3-
import com.iluwatar.delegation.simple.Printer;
3+
import com.iluwatar.delegation.simple.AbstractPrinterController;
44
import com.iluwatar.delegation.simple.PrinterController;
55

66
public class App {
77

88
public static final String MESSAGE_TO_PRINT = "hello world";
99

1010
public static void main(String[] args) {
11-
Printer hpPrinter = new HPPrinter();
12-
Printer canonPrinter = new CanonPrinter();
13-
Printer epsonPrinter = new EpsonPrinter();
14-
15-
PrinterController hpPrinterController = new PrinterController(hpPrinter);
16-
PrinterController canonPrinterController = new PrinterController(canonPrinter);
17-
PrinterController epsonPrinterController = new PrinterController(epsonPrinter);
11+
AbstractPrinterController hpPrinterController = new PrinterController(new HPPrinter());
12+
AbstractPrinterController canonPrinterController = new PrinterController(new CanonPrinter());
13+
AbstractPrinterController epsonPrinterController = new PrinterController(new EpsonPrinter());
1814

1915
hpPrinterController.print(MESSAGE_TO_PRINT);
2016
canonPrinterController.print(MESSAGE_TO_PRINT);
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.iluwatar.delegation.simple;
2+
3+
import com.iluwatar.delegation.simple.printers.CanonPrinter;
4+
import com.iluwatar.delegation.simple.printers.EpsonPrinter;
5+
import com.iluwatar.delegation.simple.printers.HPPrinter;
6+
import org.junit.Rule;
7+
import org.junit.Test;
8+
import org.junit.contrib.java.lang.system.SystemOutRule;
9+
10+
import static org.junit.Assert.assertEquals;
11+
12+
public class DelegateTest {
13+
14+
private static final String MESSAGE = "Test Message Printed";
15+
16+
@Rule
17+
public final SystemOutRule systemOutRule = new SystemOutRule().enableLog();
18+
19+
@Test
20+
public void testCanonPrinter() throws Exception {
21+
AbstractPrinterController abstractController = new PrinterController(new CanonPrinter());
22+
abstractController.print(MESSAGE);
23+
24+
assertEquals("Canon Printer : Test Message Printed\n", systemOutRule.getLog());
25+
}
26+
27+
@Test
28+
public void testHPPrinter() throws Exception {
29+
AbstractPrinterController abstractController = new PrinterController(new HPPrinter());
30+
abstractController.print(MESSAGE);
31+
32+
assertEquals("HP Printer : Test Message Printed\n", systemOutRule.getLog());
33+
}
34+
35+
@Test
36+
public void testEpsonPrinter() throws Exception {
37+
AbstractPrinterController abstractController = new PrinterController(new EpsonPrinter());
38+
abstractController.print(MESSAGE);
39+
40+
assertEquals("Epson Printer : Test Message Printed\n", systemOutRule.getLog());
41+
}
42+
43+
}

0 commit comments

Comments
 (0)