File tree Expand file tree Collapse file tree 5 files changed +56
-11
lines changed
main/java/com/iluwatar/delegation/simple
test/java/com/iluwatar/delegation/simple Expand file tree Collapse file tree 5 files changed +56
-11
lines changed Original file line number Diff line number Diff line change 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 >
Original file line number Diff line number Diff line change 11package 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
Original file line number Diff line number Diff line change 11package 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 );
Original file line number Diff line number Diff line change 11package com .iluwatar .delegation .simple .printers ;
22
3- import com .iluwatar .delegation .simple .Printer ;
3+ import com .iluwatar .delegation .simple .AbstractPrinterController ;
44import com .iluwatar .delegation .simple .PrinterController ;
55
66public 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 );
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments