You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by sa...@apache.org on 2018/06/23 10:16:04 UTC

[1/2] incubator-taverna-mobile git commit: Added WorkflowPresenter Test

Repository: incubator-taverna-mobile
Updated Branches:
  refs/heads/master 5d8a40a5a -> 207362ed4


Added WorkflowPresenter Test


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/55b44a74
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/55b44a74
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/55b44a74

Branch: refs/heads/master
Commit: 55b44a7447e35fad9d8e95a3e2839a6a7e47d92f
Parents: 05ec299
Author: Hitesh Gautam <ga...@gmail.com>
Authored: Sun Jun 17 17:17:14 2018 +0530
Committer: Hitesh Gautam <ga...@gmail.com>
Committed: Thu Jun 21 20:46:48 2018 +0530

----------------------------------------------------------------------
 .../mobile/ui/workflow/WorkflowPresenter.java   |  18 ++-
 app/src/main/res/values/strings.xml             |   3 +
 .../ui/workflow/WorkflowPresenterTest.java      | 131 +++++++++++++++++++
 3 files changed, 147 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/55b44a74/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java
index 24d0827..eb2ca90 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java
@@ -63,7 +63,7 @@ public class WorkflowPresenter extends BasePresenter<WorkflowMvpView> {
         compositeDisposable.clear();
     }
 
-    public void loadAllWorkflow(int pageNumber) {
+    public void loadAllWorkflow(final int pageNumber) {
         checkViewAttached();
         getMvpView().showProgressbar(true);
         compositeDisposable.add(mDataManager.getAllWorkflow(getQueryOptions(pageNumber))
@@ -72,9 +72,18 @@ public class WorkflowPresenter extends BasePresenter<WorkflowMvpView> {
                 .subscribeWith(new DisposableObserver<Workflows>() {
                     @Override
                     public void onNext(Workflows workflows) {
-                        getMvpView().showProgressbar(false);
-                        getMvpView().removeLoadMoreProgressbar();
-                        getMvpView().showWorkflows(workflows);
+                        if (workflows.getWorkflowList() != null) {
+                            getMvpView().showProgressbar(false);
+                            getMvpView().removeLoadMoreProgressbar();
+                            getMvpView().showWorkflows(workflows);
+                        } else {
+                            if (pageNumber == 1) {
+                                getMvpView().showSnackBar(R.string.no_workflows_found);
+                            } else {
+                                getMvpView().showSnackBar(R.string.no_more_workflows_avialable);
+                            }
+                            getMvpView().removeLoadMoreProgressbar();
+                        }
                     }
 
                     @Override
@@ -89,7 +98,6 @@ public class WorkflowPresenter extends BasePresenter<WorkflowMvpView> {
 
                     }
                 }));
-
     }
 
     public void attachSearchHandler(final SearchView searchView) {

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/55b44a74/app/src/main/res/values/strings.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 01eb1a2..304a469 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -166,6 +166,8 @@ limitations under the License.
     <string name="err_login_email">Enter valid email</string>
     <string name="err_login_password">Enter valid password</string>
     <string name="error_failed_to_fetch_workflow">Failed to fetch Workflow</string>
+    <string name="no_more_workflows_avialable">No more workflows avialable</string>
+    <string name="no_workflows_found">No Workflows Found</string>
 
     <string name="no_my_workflow">You have not created any workflow yet !</string>
     <string name="error_vaild_credential">Please enter valid credential</string>
@@ -197,6 +199,7 @@ limitations under the License.
     <string name="pref_key_logged_in">pref_logged_in</string>
     <string name="pref_remainLogged_in">Remain Logged-in</string>
     <string name="pref_login_description">Decide whether or not to be automatically logged-in when the app starts</string>
+
     <!-- Player Portal url info -->
     <string name="pref_player_default"> http://heater.cs.man.ac.uk:3000/</string>   <!-- default value -->
     <string name="pref_player_title">Configure Taverna player portal</string>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/55b44a74/app/src/test/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenterTest.java
----------------------------------------------------------------------
diff --git a/app/src/test/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenterTest.java b/app/src/test/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenterTest.java
new file mode 100644
index 0000000..591b040
--- /dev/null
+++ b/app/src/test/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenterTest.java
@@ -0,0 +1,131 @@
+package org.apache.taverna.mobile.ui.workflow;
+
+import org.apache.taverna.mobile.FakeRemoteDataSource;
+import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.data.DataManager;
+import org.apache.taverna.mobile.data.model.Workflows;
+import org.apache.taverna.mobile.utils.RxSchedulersOverrideRule;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import io.reactivex.Observable;
+
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(MockitoJUnitRunner.class)
+public class WorkflowPresenterTest {
+
+    @Rule
+    public final RxSchedulersOverrideRule rxSchedulersOverrideRule = new
+            RxSchedulersOverrideRule();
+
+    @Mock
+    DataManager dataManager;
+
+    @Mock
+    WorkflowMvpView workflowMvpView;
+
+    private Workflows workflows;
+    private WorkflowPresenter workflowPresenter;
+    private Map<String, String> optionPage1;
+    private Map<String, String> optionPage2;
+
+    @Before
+    public void setUp() {
+
+        workflowPresenter = new WorkflowPresenter(dataManager);
+        workflowPresenter.attachView(workflowMvpView);
+
+        workflows = FakeRemoteDataSource.getWorkflowList();
+
+        optionPage1 = new HashMap<>();
+        optionPage1.put("elements", "title,type,uploader,preview,created-at");
+        optionPage1.put("page", String.valueOf(1));
+        optionPage1.put("num", String.valueOf(10));
+        optionPage1.put("order", "reverse");
+
+        optionPage2 = new HashMap<>();
+        optionPage2.put("elements", "title,type,uploader,preview,created-at");
+        optionPage2.put("page", String.valueOf(2));
+        optionPage2.put("num", String.valueOf(10));
+        optionPage2.put("order", "reverse");
+    }
+
+    @After
+    public void tearDown() {
+
+        workflowPresenter.detachView();
+    }
+
+    @Test
+    public void loadAllWorkflow_validWorkflowList_ReturnsResults() {
+
+        when(dataManager.getAllWorkflow(optionPage1)).thenReturn(
+                Observable.just(workflows));
+
+        workflowPresenter.loadAllWorkflow(1);
+
+        verify(workflowMvpView).showProgressbar(true);
+        verify(workflowMvpView).removeLoadMoreProgressbar();
+        verify(workflowMvpView).showWorkflows(workflows);
+        verify(workflowMvpView, never()).showSnackBar(R.string.error_failed_to_fetch_workflow);
+    }
+
+    @Test
+    public void loadAllWorkflow_EmptyWorkflow_ReturnNoWorkflowResults() {
+
+        Workflows workflows = new Workflows();
+        when(dataManager.getAllWorkflow(optionPage1)).thenReturn(
+                Observable.just(workflows));
+
+        workflowPresenter.loadAllWorkflow(1);
+
+        verify(workflowMvpView).showProgressbar(true);
+        verify(workflowMvpView).removeLoadMoreProgressbar();
+        verify(workflowMvpView).showSnackBar(R.string.no_workflows_found);
+        verify(workflowMvpView, never()).showWorkflows(workflows);
+        verify(workflowMvpView, never()).showSnackBar(R.string.error_failed_to_fetch_workflow);
+    }
+
+    @Test
+    public void loadAllWorkflow_page2_EmptyWorkflow_ReturnNoMoreWorkflowResults() {
+
+        Workflows workflows = new Workflows();
+        when(dataManager.getAllWorkflow(optionPage2)).thenReturn(
+                Observable.just(workflows));
+
+        workflowPresenter.loadAllWorkflow(2);
+
+        verify(workflowMvpView).showProgressbar(true);
+        verify(workflowMvpView).removeLoadMoreProgressbar();
+        verify(workflowMvpView).showSnackBar(R.string.no_more_workflows_avialable);
+        verify(workflowMvpView, never()).showWorkflows(workflows);
+        verify(workflowMvpView, never()).showSnackBar(R.string.no_workflows_found);
+        verify(workflowMvpView, never()).showSnackBar(R.string.error_failed_to_fetch_workflow);
+    }
+
+    @Test
+    public void loadAllWorkflow_RuntimeError_showError() {
+
+        when(dataManager.getAllWorkflow(optionPage1)).thenReturn(
+                Observable.<Workflows>error(new RuntimeException()));
+
+        workflowPresenter.loadAllWorkflow(1);
+
+        verify(workflowMvpView).showProgressbar(false);
+        verify(workflowMvpView).removeLoadMoreProgressbar();
+        verify(workflowMvpView, never()).showWorkflows(workflows);
+        verify(workflowMvpView).showSnackBar(R.string.error_failed_to_fetch_workflow);
+    }
+
+}
\ No newline at end of file


[2/2] incubator-taverna-mobile git commit: This close #87

Posted by sa...@apache.org.
This close  #87


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/207362ed
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/207362ed
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/207362ed

Branch: refs/heads/master
Commit: 207362ed4d44ba1a9c2c45f4bf361faf393645d0
Parents: 5d8a40a 55b44a7
Author: Sagar <ku...@gmail.com>
Authored: Fri Jun 22 17:19:32 2018 +0530
Committer: Sagar <ku...@gmail.com>
Committed: Fri Jun 22 17:19:32 2018 +0530

----------------------------------------------------------------------
 .../mobile/ui/workflow/WorkflowPresenter.java   |  18 ++-
 app/src/main/res/values/strings.xml             |   3 +
 .../ui/workflow/WorkflowPresenterTest.java      | 131 +++++++++++++++++++
 3 files changed, 147 insertions(+), 5 deletions(-)
----------------------------------------------------------------------