@Test public void createItemComparatorForType_should_returnNonNullComparator() { //GIVEN AdapterViewTypeDelegate<?, String> stubAdapterViewTypeDelegate = new StubAdapterViewTypeDelegate(); //WHEN final DiffUtilComparator diffUtilComparator = stubAdapterViewTypeDelegate.createDiffUtilComparator(); //THEN assertThat(diffUtilComparator, not(nullValue())); } }
private ViewItem<ChildModel> createViewItem(ChildModel model, int viewType) { AdapterViewTypeDelegate tempDelegate = new StubAdapterViewTypeDelegate(); tempDelegate.setViewType(viewType); return new ViewItem<>(model, tempDelegate); }
@Test public void addFeatureEventListener_should_relayTheEventsFromTheAdapterViewTypeDelegates() { //GIVEN AdapterViewTypeDelegate stubAdapterViewTypeDelegate = new StubAdapterViewTypeDelegate(); FeatureController<String> featureController = new StubFeatureController<>(asList(stubAdapterViewTypeDelegate)); FeatureEventListener mockListener = createMock(FeatureEventListener.class); final FeatureEvent featureEvent = new FeatureEvent() {}; mockListener.onFeatureEvent(featureEvent); replay(mockListener); //WHEN featureController.addFeatureEventListener(mockListener); stubAdapterViewTypeDelegate.fireEvent(featureEvent); //THEN verify(mockListener); }
@Test public void removeFeatureEventListener_should_stopRelayingTheEventsFromTheAdapterViewTypeDelegates() { //GIVEN AdapterViewTypeDelegate stubAdapterViewTypeDelegate = new StubAdapterViewTypeDelegate(); FeatureController<String> featureController = new StubFeatureController<>(asList(stubAdapterViewTypeDelegate)); FeatureEventListener mockListener = createMock(FeatureEventListener.class); final FeatureEvent featureEvent = new FeatureEvent() {}; replay(mockListener); //WHEN featureController.addFeatureEventListener(mockListener); featureController.removeFeatureEventListener(mockListener); stubAdapterViewTypeDelegate.fireEvent(featureEvent); //THEN verify(mockListener); } }
@Test public void registerFeatures_should_assignValidViewTypesToAdapterViewTypeDelegates() throws Exception { //GIVEN StubAdapterViewTypeDelegate stubAdapterViewTypeDelegate = new StubAdapterViewTypeDelegate(); List<FeatureController<String>> featureControllers = asList(new StubFeatureController<>(asList(stubAdapterViewTypeDelegate))); //WHEN FeaturesAdapter<String> featuresAdapter = new FeaturesAdapter<>(featureControllers); fixAdapterForTesting(featuresAdapter); //THEN assertThat(stubAdapterViewTypeDelegate.getViewType(), not(INVALID_TYPE)); }
@Test public void getItemCount_should_returnAllItems() throws Exception { //GIVEN StubAdapterViewTypeDelegate stubAdapterViewTypeDelegate = new StubAdapterViewTypeDelegate(); List<ViewItem> items = new ArrayList<>(); List<FeatureController<String>> featureControllers = asList(new StubFeatureController<>(asList(stubAdapterViewTypeDelegate), items)); FeaturesAdapter<String> featuresAdapter = new FeaturesAdapter<>(featureControllers); fixAdapterForTesting(featuresAdapter); items.add(new ViewItem<>("a0", stubAdapterViewTypeDelegate)); items.add(new ViewItem<>("a1", stubAdapterViewTypeDelegate)); featuresAdapter.updateFeatureItems("a"); //WHEN final int itemCount = featuresAdapter.getItemCount(); //THEN assertThat(itemCount, is(2)); }
@Test public void updateFeatureItems_should_updateOldItems() throws Exception { //GIVEN StubAdapterViewTypeDelegate stubAdapterViewTypeDelegate0 = new StubAdapterViewTypeDelegate(); StubAdapterViewTypeDelegate stubAdapterViewTypeDelegate1 = new StubAdapterViewTypeDelegate(); List<ViewItem> items = new ArrayList<>(); List<FeatureController<String>> featureControllers = asList( new StubFeatureController<>( asList(stubAdapterViewTypeDelegate0, stubAdapterViewTypeDelegate1), items)); FeaturesAdapter<String> featuresAdapter = new FeaturesAdapter<>(featureControllers); fixAdapterForTesting(featuresAdapter); items.add(new ViewItem<>("a0", stubAdapterViewTypeDelegate0)); items.add(new ViewItem<>("a1", stubAdapterViewTypeDelegate1)); featuresAdapter.updateFeatureItems("a"); items.clear(); items.add(new ViewItem<>("a0", stubAdapterViewTypeDelegate0)); items.add(new ViewItem<>("a1", stubAdapterViewTypeDelegate0)); featuresAdapter.updateFeatureItems("a"); //WHEN final int viewType0 = featuresAdapter.getItemViewType(0); final int viewType1 = featuresAdapter.getItemViewType(1); //THEN assertThat(viewType0, is(stubAdapterViewTypeDelegate0.getViewType())); assertThat(viewType1, is(stubAdapterViewTypeDelegate0.getViewType())); }
@Test public void getItemViewType_should_returnCorrectViewTypeOfAdapterViewTypeDelegateForAGivenPosition() throws Exception { //GIVEN StubAdapterViewTypeDelegate stubAdapterViewTypeDelegate0 = new StubAdapterViewTypeDelegate(); StubAdapterViewTypeDelegate stubAdapterViewTypeDelegate1 = new StubAdapterViewTypeDelegate(); List<ViewItem> items = new ArrayList<>(); List<FeatureController<String>> featureControllers = asList( new StubFeatureController<>( asList(stubAdapterViewTypeDelegate0, stubAdapterViewTypeDelegate1), items)); FeaturesAdapter<String> featuresAdapter = new FeaturesAdapter<>(featureControllers); fixAdapterForTesting(featuresAdapter); items.add(new ViewItem<>("a0", stubAdapterViewTypeDelegate0)); items.add(new ViewItem<>("a1", stubAdapterViewTypeDelegate1)); featuresAdapter.updateFeatureItems("a"); //WHEN final int viewType0 = featuresAdapter.getItemViewType(0); final int viewType1 = featuresAdapter.getItemViewType(1); //THEN assertThat(viewType0, is(stubAdapterViewTypeDelegate0.getViewType())); assertThat(viewType1, is(stubAdapterViewTypeDelegate1.getViewType())); }