public void testSearchByPlatform_List() {
    final ArrayList<Platform> platformArrayList = new ArrayList<>();
    platformArrayList.add(PlatformBuilder.aPlatform().build());
    doAnswer(
            new Answer() {
              @Override
              public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
                doAnswer(
                        new Answer() {
                          @Override
                          public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
                            apiResultListenerArgumentCaptor.getValue().onResult(platformArrayList);
                            return null;
                          }
                        })
                    .when(platformApi)
                    .searchByName(anyString());
                return null;
              }
            })
        .when(platformApi)
        .setServiceResultListener(apiResultListenerArgumentCaptor.capture());

    presenter.searchByName(PlatformBuilder.DEFAULT_NAME);

    verify(view, times(1)).showPlatforms(platformArrayList);
    verify(view, never()).warnAnyPlatformFound();
    verify(view, never()).warnFailuredToListPlatforms();
    verify(view, times(1)).showLoading();
    verify(view, times(1)).dismissLoading();
  }
  public void testSearchByPlatform_Exception() {
    doAnswer(
            new Answer() {
              @Override
              public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
                doAnswer(
                        new Answer() {
                          @Override
                          public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
                            apiResultListenerArgumentCaptor.getValue().onException(new Exception());
                            return null;
                          }
                        })
                    .when(platformApi)
                    .searchByName(anyString());
                return null;
              }
            })
        .when(platformApi)
        .setServiceResultListener(apiResultListenerArgumentCaptor.capture());

    presenter.searchByName(PlatformBuilder.DEFAULT_NAME);

    verify(view, never()).showPlatforms(anyListOf(Platform.class));
    verify(view, never()).warnAnyPlatformFound();
    verify(view, times(1)).warnFailuredToListPlatforms();
    verify(view, times(1)).showLoading();
    verify(view, times(1)).dismissLoading();
  }