diff --git a/callback/src/test/java/com/iluwatar/callback/AppTest.java b/callback/src/test/java/com/iluwatar/callback/AppTest.java index aceac1c62..0f7a6f45e 100644 --- a/callback/src/test/java/com/iluwatar/callback/AppTest.java +++ b/callback/src/test/java/com/iluwatar/callback/AppTest.java @@ -2,18 +2,38 @@ package com.iluwatar.callback; import org.junit.Test; -import com.iluwatar.callback.App; +import static org.junit.Assert.assertEquals; /** - * - * Application test + * Add a field as a counter. Every time the callback method is called increment this + * field. Unit test checks that the field is being incremented. * + * Could be done with mock objects as well where the call method call is verified. */ public class AppTest { + private Integer callingCount = 0; + @Test public void test() { - String[] args = {}; - App.main(args); + Callback callback = new Callback() { + @Override + public void call() { + 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); + } }