OSDN Git Service

Add test for network error
authoreagletmt <eagletmt@gmail.com>
Sun, 23 Sep 2012 12:35:12 +0000 (21:35 +0900)
committereagletmt <eagletmt@gmail.com>
Sun, 23 Sep 2012 12:35:12 +0000 (21:35 +0900)
CUTEnTest/src/jp/ac/titech/sharp4k/cuten/test/AbnormalDownloadActivityTest.java [new file with mode: 0644]

diff --git a/CUTEnTest/src/jp/ac/titech/sharp4k/cuten/test/AbnormalDownloadActivityTest.java b/CUTEnTest/src/jp/ac/titech/sharp4k/cuten/test/AbnormalDownloadActivityTest.java
new file mode 100644 (file)
index 0000000..029bbcc
--- /dev/null
@@ -0,0 +1,100 @@
+package jp.ac.titech.sharp4k.cuten.test;
+
+import java.net.ConnectException;
+import java.util.List;
+
+import jp.ac.titech.sharp4k.cuten.Achievement;
+import jp.ac.titech.sharp4k.cuten.DownloadActivity;
+import jp.ac.titech.sharp4k.cuten.HttpAPIClient;
+import jp.ac.titech.sharp4k.cuten.HttpResponseListener;
+import jp.ac.titech.sharp4k.cuten.Lecture;
+import jp.ac.titech.sharp4k.cuten.Token;
+import roboguice.RoboGuice;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Module;
+import com.google.inject.util.Modules;
+
+import android.app.Application;
+import android.content.Context;
+import android.test.ActivityInstrumentationTestCase2;
+import android.widget.ListAdapter;
+import android.widget.ListView;
+
+public class AbnormalDownloadActivityTest extends
+               ActivityInstrumentationTestCase2<DownloadActivity> {
+       static class AbnormalModule extends AbstractModule {
+               @Override
+               protected void configure() {
+                       bind(HttpAPIClient.class).to(AbnormalHttpAPIClient.class);
+               }
+       }
+
+       static class AbnormalHttpAPIClient implements HttpAPIClient {
+               @Override
+               public void getLectures(HttpResponseListener listener) {
+                       listener.preExec();
+                       listener.onFailure(new ConnectException());
+                       listener.postExec();
+               }
+
+               @Override
+               public void getLectures(List<Lecture> lectures,
+                               HttpResponseListener listener) {
+               }
+
+               @Override
+               public void resetToken(String token, HttpResponseListener listener) {
+               }
+
+               @Override
+               public void getUsersProfile(String token, HttpResponseListener listener) {
+               }
+
+               @Override
+               public void putAchievement(String token, Achievement achievement,
+                               HttpResponseListener listener) {
+               }
+       }
+
+       private DownloadActivity activity;
+       private String savedToken;
+
+       public AbnormalDownloadActivityTest() {
+               super(DownloadActivity.class);
+       }
+
+       @Override
+       protected void setUp() throws Exception {
+               super.setUp();
+               Context ctx = getInstrumentation().getTargetContext();
+               Application app = (Application) ctx.getApplicationContext();
+               Module m = Modules.override(RoboGuice.newDefaultRoboModule(app)).with(
+                               new AbnormalModule(), new DummyDBModule());
+               RoboGuice.setBaseApplicationInjector(app, RoboGuice.DEFAULT_STAGE, m);
+               savedToken = Token.load(ctx);
+               Token.save("dummytoken", ctx);
+               activity = getActivity();
+       }
+
+       @Override
+       protected void tearDown() throws Exception {
+               Token.delete(activity);
+               if (savedToken != null) {
+                       Token.save(savedToken, activity);
+               }
+               activity.deleteDatabase(DummyDBModule.DB_NAME);
+               RoboGuice.util.reset();
+               super.tearDown();
+       }
+
+       public void testShowLocalLecturesEvenIfNetworkFailed() throws Exception {
+               getInstrumentation().waitForIdleSync();
+               ListView lectureList = (ListView) activity
+                               .findViewById(jp.ac.titech.sharp4k.cuten.R.id.lectureList);
+               assertNotNull(lectureList);
+               ListAdapter adapter = lectureList.getAdapter();
+               assertNotNull(adapter);
+               assertEquals(0, adapter.getCount());
+       }
+}