From ca4a4ec07b49912c8b6741074354da17fed65643 Mon Sep 17 00:00:00 2001 From: Joseph McCarthy Date: Fri, 1 Jan 2016 23:41:56 +0000 Subject: [PATCH 1/2] Created a Lambdas example for the callback pattern, using the same output of the traditional version. Have also added another unit test for issue #334 --- .../com/iluwatar/callback/LambdasApp.java | 19 +++++++++++++++++++ .../java/com/iluwatar/callback/AppTest.java | 18 ++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 callback/src/main/java/com/iluwatar/callback/LambdasApp.java diff --git a/callback/src/main/java/com/iluwatar/callback/LambdasApp.java b/callback/src/main/java/com/iluwatar/callback/LambdasApp.java new file mode 100644 index 000000000..aa57a0f7c --- /dev/null +++ b/callback/src/main/java/com/iluwatar/callback/LambdasApp.java @@ -0,0 +1,19 @@ +package com.iluwatar.callback; + +/** + * + * This example generates the exact same output as {@link App} however the callback has been + * defined as a Lambdas expression. + * + */ +public class LambdasApp { + + /** + * Program entry point + */ + public static void main(String[] args){ + Task task = new SimpleTask(); + Callback c = () -> System.out.println("I'm done now."); + task.executeWith(c); + } +} diff --git a/callback/src/test/java/com/iluwatar/callback/AppTest.java b/callback/src/test/java/com/iluwatar/callback/AppTest.java index 67046a175..28d6eaa1c 100644 --- a/callback/src/test/java/com/iluwatar/callback/AppTest.java +++ b/callback/src/test/java/com/iluwatar/callback/AppTest.java @@ -36,4 +36,22 @@ public class AppTest { assertEquals("Callback called twice", new Integer(2), callingCount); } + + @Test + public void testWithLambdasExample() { + Callback callback = () -> callingCount++; + + Task task = new SimpleTask(); + + assertEquals("Initial calling count of 0", new Integer(0), callingCount); + + task.executeWith(callback); + + assertEquals("Callback called once", new Integer(1), callingCount); + + task.executeWith(callback); + + assertEquals("Callback called twice", new Integer(2), callingCount); + + } } From e25ef1b0f89bb137e90351c10dabb5d374e8428e Mon Sep 17 00:00:00 2001 From: Joseph McCarthy Date: Sat, 2 Jan 2016 00:54:26 +0000 Subject: [PATCH 2/2] Check Style fixes #334 --- callback/src/main/java/com/iluwatar/callback/LambdasApp.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/callback/src/main/java/com/iluwatar/callback/LambdasApp.java b/callback/src/main/java/com/iluwatar/callback/LambdasApp.java index aa57a0f7c..19dd17eae 100644 --- a/callback/src/main/java/com/iluwatar/callback/LambdasApp.java +++ b/callback/src/main/java/com/iluwatar/callback/LambdasApp.java @@ -11,7 +11,7 @@ public class LambdasApp { /** * Program entry point */ - public static void main(String[] args){ + public static void main(String[] args) { Task task = new SimpleTask(); Callback c = () -> System.out.println("I'm done now."); task.executeWith(c);