From a49dbefb56fbb16ef3f181c6e2e09cbe314bc529 Mon Sep 17 00:00:00 2001 From: Joseph McCarthy Date: Sun, 27 Dec 2015 14:10:49 +0000 Subject: [PATCH] Add simple tests for delegate pattern #324 --- delegation/pom.xml | 6 +++ ...er.java => AbstractPrinterController.java} | 4 +- .../delegation/simple/PrinterController.java | 2 +- .../delegation/simple/printers/App.java | 12 ++---- .../delegation/simple/DelegateTest.java | 43 +++++++++++++++++++ 5 files changed, 56 insertions(+), 11 deletions(-) rename delegation/src/main/java/com/iluwatar/delegation/simple/{Controller.java => AbstractPrinterController.java} (55%) create mode 100644 delegation/src/test/java/com/iluwatar/delegation/simple/DelegateTest.java diff --git a/delegation/pom.xml b/delegation/pom.xml index 47dbc3844..08b7df748 100644 --- a/delegation/pom.xml +++ b/delegation/pom.xml @@ -41,5 +41,11 @@ junit test + + com.github.stefanbirkner + system-rules + 1.14.0 + test + \ No newline at end of file diff --git a/delegation/src/main/java/com/iluwatar/delegation/simple/Controller.java b/delegation/src/main/java/com/iluwatar/delegation/simple/AbstractPrinterController.java similarity index 55% rename from delegation/src/main/java/com/iluwatar/delegation/simple/Controller.java rename to delegation/src/main/java/com/iluwatar/delegation/simple/AbstractPrinterController.java index 487b827eb..e58acd0c3 100644 --- a/delegation/src/main/java/com/iluwatar/delegation/simple/Controller.java +++ b/delegation/src/main/java/com/iluwatar/delegation/simple/AbstractPrinterController.java @@ -1,10 +1,10 @@ package com.iluwatar.delegation.simple; -public abstract class Controller { +public abstract class AbstractPrinterController implements Printer{ private Printer printer; - public Controller(Printer printer) { + public AbstractPrinterController(Printer printer) { this.printer = printer; } diff --git a/delegation/src/main/java/com/iluwatar/delegation/simple/PrinterController.java b/delegation/src/main/java/com/iluwatar/delegation/simple/PrinterController.java index 5fb8742a3..f282be128 100644 --- a/delegation/src/main/java/com/iluwatar/delegation/simple/PrinterController.java +++ b/delegation/src/main/java/com/iluwatar/delegation/simple/PrinterController.java @@ -1,6 +1,6 @@ package com.iluwatar.delegation.simple; -public class PrinterController extends Controller implements Printer { +public class PrinterController extends AbstractPrinterController { public PrinterController(Printer printer) { super(printer); diff --git a/delegation/src/main/java/com/iluwatar/delegation/simple/printers/App.java b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/App.java index 7668637f7..6dc2e4878 100644 --- a/delegation/src/main/java/com/iluwatar/delegation/simple/printers/App.java +++ b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/App.java @@ -1,6 +1,6 @@ package com.iluwatar.delegation.simple.printers; -import com.iluwatar.delegation.simple.Printer; +import com.iluwatar.delegation.simple.AbstractPrinterController; import com.iluwatar.delegation.simple.PrinterController; public class App { @@ -8,13 +8,9 @@ public class App { public static final String MESSAGE_TO_PRINT = "hello world"; public static void main(String[] args) { - Printer hpPrinter = new HPPrinter(); - Printer canonPrinter = new CanonPrinter(); - Printer epsonPrinter = new EpsonPrinter(); - - PrinterController hpPrinterController = new PrinterController(hpPrinter); - PrinterController canonPrinterController = new PrinterController(canonPrinter); - PrinterController epsonPrinterController = new PrinterController(epsonPrinter); + AbstractPrinterController hpPrinterController = new PrinterController(new HPPrinter()); + AbstractPrinterController canonPrinterController = new PrinterController(new CanonPrinter()); + AbstractPrinterController epsonPrinterController = new PrinterController(new EpsonPrinter()); hpPrinterController.print(MESSAGE_TO_PRINT); canonPrinterController.print(MESSAGE_TO_PRINT); diff --git a/delegation/src/test/java/com/iluwatar/delegation/simple/DelegateTest.java b/delegation/src/test/java/com/iluwatar/delegation/simple/DelegateTest.java new file mode 100644 index 000000000..db8cb4262 --- /dev/null +++ b/delegation/src/test/java/com/iluwatar/delegation/simple/DelegateTest.java @@ -0,0 +1,43 @@ +package com.iluwatar.delegation.simple; + +import com.iluwatar.delegation.simple.printers.CanonPrinter; +import com.iluwatar.delegation.simple.printers.EpsonPrinter; +import com.iluwatar.delegation.simple.printers.HPPrinter; +import org.junit.Rule; +import org.junit.Test; +import org.junit.contrib.java.lang.system.SystemOutRule; + +import static org.junit.Assert.assertEquals; + +public class DelegateTest { + + private static final String MESSAGE = "Test Message Printed"; + + @Rule + public final SystemOutRule systemOutRule = new SystemOutRule().enableLog(); + + @Test + public void testCanonPrinter() throws Exception { + AbstractPrinterController abstractController = new PrinterController(new CanonPrinter()); + abstractController.print(MESSAGE); + + assertEquals("Canon Printer : Test Message Printed\n", systemOutRule.getLog()); + } + + @Test + public void testHPPrinter() throws Exception { + AbstractPrinterController abstractController = new PrinterController(new HPPrinter()); + abstractController.print(MESSAGE); + + assertEquals("HP Printer : Test Message Printed\n", systemOutRule.getLog()); + } + + @Test + public void testEpsonPrinter() throws Exception { + AbstractPrinterController abstractController = new PrinterController(new EpsonPrinter()); + abstractController.print(MESSAGE); + + assertEquals("Epson Printer : Test Message Printed\n", systemOutRule.getLog()); + } + +}