Skip to content

Commit

Permalink
fixes sockeqwe#182
Browse files Browse the repository at this point in the history
  • Loading branch information
sockeqwe committed Jan 9, 2017
1 parent 6891749 commit 8fe20be
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ private boolean isSubTypeOfMvpView(Class<?> klass) {
}
Class[] superInterfaces = klass.getInterfaces();
for (int i = 0; i < superInterfaces.length; i++) {
if (isSubTypeOfMvpView(superInterfaces[0])) {
if (isSubTypeOfMvpView(superInterfaces[i])) {
return true;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,23 +25,17 @@
import com.hannesdorfmann.mosby3.mvp.test.view.SubMvpView;
import com.hannesdorfmann.mosby3.mvp.test.view.TestMvpView;
import com.hannesdorfmann.mosby3.mvp.test.view.TestMvpViewWithMultipleInterfaces;

import org.junit.Assert;
import org.junit.Test;

import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.*;

/**
* @author Hannes Dorfmann
* <p/>
* In all test we are not expecting any exceptions
*/
public class MvpNullObjectBasePresenterTest {

@Test
@SuppressWarnings("unchecked")
public void uselessGenericsParamsPresenter() {
@Test @SuppressWarnings("unchecked") public void uselessGenericsParamsPresenter() {
TestMvpView view = newTestView();
UselessGenericParamsMvpPresenter presenter = new UselessGenericParamsMvpPresenter<>();

Expand All @@ -54,9 +48,9 @@ public void uselessGenericsParamsPresenter() {
presenter.viewShowThat();
}

@Test
public void constructorGenericParameterless() {
ParameterlessConstructorMvpPresenter<TestData> presenter = new ParameterlessConstructorMvpPresenter<>();
@Test public void constructorGenericParameterless() {
ParameterlessConstructorMvpPresenter<TestData> presenter =
new ParameterlessConstructorMvpPresenter<>();
TestMvpView view = newTestView();

testPickingCorrectViewInterface(presenter);
Expand All @@ -68,19 +62,19 @@ public void constructorGenericParameterless() {
presenter.viewShowThat();
}

@Test
public void constructorDirectlyBaseClass() {
MvpNullObjectBasePresenter<TestMvpView> presenter = new MvpNullObjectBasePresenter<TestMvpView>() {
};
@Test public void constructorDirectlyBaseClass() {
MvpNullObjectBasePresenter<TestMvpView> presenter =
new MvpNullObjectBasePresenter<TestMvpView>() {
};
TestMvpView view = newTestView();

testPickingCorrectViewInterface(presenter);
testAttachDetachView(presenter, view);
}

@Test
public void constructorSubClass() {
SubParameterlessConstructorMvpPresenter presenter = new SubParameterlessConstructorMvpPresenter();
@Test public void constructorSubClass() {
SubParameterlessConstructorMvpPresenter presenter =
new SubParameterlessConstructorMvpPresenter();
TestMvpView view = newTestView();

testPickingCorrectViewInterface(presenter);
Expand All @@ -92,8 +86,7 @@ public void constructorSubClass() {
presenter.viewShowThat();
}

@Test
public void subviewInterface() {
@Test public void subviewInterface() {
SubMvpPresenter presenter = new SubMvpPresenter();
SubMvpView view = newSubTestView();

Expand All @@ -105,8 +98,8 @@ public void subviewInterface() {
presenter.invokeShowThat();
}

private <V extends MvpView> void testAttachDetachView(final MvpNullObjectBasePresenter<V> presenter,
final V view) {
private <V extends MvpView> void testAttachDetachView(
final MvpNullObjectBasePresenter<V> presenter, final V view) {
assertNotNull(presenter.getView());

testAttachView(presenter, view);
Expand All @@ -116,27 +109,28 @@ private <V extends MvpView> void testAttachDetachView(final MvpNullObjectBasePre
}

private <V extends MvpView> void testAttachView(final MvpNullObjectBasePresenter<V> presenter,
final V view) {
final V view) {
presenter.attachView(view);
assertNotNull(presenter.getView());
assertTrue(presenter.getView() == view);
}

private <V extends MvpView> void testDetachNonRetain(final MvpNullObjectBasePresenter<V> presenter,
final V view) {
private <V extends MvpView> void testDetachNonRetain(
final MvpNullObjectBasePresenter<V> presenter, final V view) {
presenter.detachView(false);
assertNotNull(presenter.getView());
assertTrue(presenter.getView() != view); // Null Object view;
}

private <V extends MvpView> void testDetachRetain(final MvpNullObjectBasePresenter<V> presenter,
final V view) {
final V view) {
presenter.detachView(true);
assertNotNull(presenter.getView());
assertTrue(presenter.getView() != view); // Null Object view;
}

private void testPickingCorrectViewInterface(final MvpNullObjectBasePresenter<TestMvpView> presenter) {
private void testPickingCorrectViewInterface(
final MvpNullObjectBasePresenter<TestMvpView> presenter) {
TestMvpViewWithMultipleInterfaces view = new TestMvpViewWithMultipleInterfaces();

presenter.attachView(view);
Expand All @@ -154,24 +148,20 @@ private void testPickingCorrectViewInterface(final MvpNullObjectBasePresenter<Te

private TestMvpView newTestView() {
return new TestMvpView() {
@Override
public void showFoo(TestData data) {
@Override public void showFoo(TestData data) {
}

@Override
public void showThat() {
@Override public void showThat() {
}
};
}

private SubMvpView newSubTestView() {
return new SubMvpView() {
@Override
public void showFoo(TestData data) {
@Override public void showFoo(TestData data) {
}

@Override
public void showThat() {
@Override public void showThat() {

}
};
Expand Down

0 comments on commit 8fe20be

Please sign in to comment.