From d03291918b2c16ea4a830a67f7b6f2e75ebb06b6 Mon Sep 17 00:00:00 2001 From: danijoo Date: Thu, 5 Nov 2015 23:02:53 +0100 Subject: [PATCH] testcase for jokeloadertask --- .../builditbigger/JokeLoaderTaskTest.java | 32 +++++++++++++++++ .../builditbigger/SyncronizeTalker.java | 35 +++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 app/src/androidTest/java/com/udacity/gradle/builditbigger/JokeLoaderTaskTest.java create mode 100644 app/src/androidTest/java/com/udacity/gradle/builditbigger/SyncronizeTalker.java diff --git a/app/src/androidTest/java/com/udacity/gradle/builditbigger/JokeLoaderTaskTest.java b/app/src/androidTest/java/com/udacity/gradle/builditbigger/JokeLoaderTaskTest.java new file mode 100644 index 0000000..97e6fca --- /dev/null +++ b/app/src/androidTest/java/com/udacity/gradle/builditbigger/JokeLoaderTaskTest.java @@ -0,0 +1,32 @@ +package com.udacity.gradle.builditbigger; + +import android.test.AndroidTestCase; + +import net.headlezz.jokesbackend.myApi.model.Joke; + +public class JokeLoaderTaskTest extends AndroidTestCase implements JokeLoaderTask.JokeLoaderCallback { + + SyncronizeTalker talker; + + public void testJokeLoader() { + JokeLoaderTask task = new JokeLoaderTask(this); + talker = new SyncronizeTalker(); + + task.execute(); + talker.doWait(); + + } + + @Override + public void onJokeLoaded(Joke joke) { + assertNotNull(joke); + assertTrue(joke.getJoke() != null && !joke.getJoke().isEmpty()); + talker.doNotify(); + } + + @Override + public void onError() { + assertTrue(false); + talker.doNotify(); + } +} diff --git a/app/src/androidTest/java/com/udacity/gradle/builditbigger/SyncronizeTalker.java b/app/src/androidTest/java/com/udacity/gradle/builditbigger/SyncronizeTalker.java new file mode 100644 index 0000000..08ceef8 --- /dev/null +++ b/app/src/androidTest/java/com/udacity/gradle/builditbigger/SyncronizeTalker.java @@ -0,0 +1,35 @@ +package com.udacity.gradle.builditbigger; + +/** + * Helper class to wait and release in a testcase + * Source by Maxim Shoustin + * http://stackoverflow.com/questions/2321829/android-asynctask-testing-with-android-test-framework + */ +public class SyncronizeTalker { + public void doWait(long l){ + synchronized(this){ + try { + this.wait(l); + } catch(InterruptedException e) { + } + } + } + + + + public void doNotify() { + synchronized(this) { + this.notify(); + } + } + + + public void doWait() { + synchronized(this){ + try { + this.wait(); + } catch(InterruptedException e) { + } + } + } +} \ No newline at end of file