package com.iluwatar.callback;

import org.junit.Test;

import static org.junit.Assert.assertEquals;

/**
 * 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() {
        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);

	}
}

package com.iluwatar.callback;

import org.junit.Test;

import com.iluwatar.callback.App;

/**
 * 
 * Application test
 *
 */
public class AppTest {

	@Test
	public void test() {
		String[] args = {};
		App.main(args);
	}
}

--- 
+++ 
@@ -2,18 +2,38 @@
 
 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);
+
 	}
 }
Add unit test to show that the callback method is called.
