package com.kickstarter.ui.adapters; import com.kickstarter.KSRobolectricTestCase; import com.kickstarter.factories.ActivityFactory; import com.kickstarter.factories.SurveyResponseFactory; import com.kickstarter.models.Activity; import com.kickstarter.models.SurveyResponse; import org.junit.Assert; import org.junit.Test; import java.util.Arrays; import java.util.Collections; import java.util.List; public class ActivityFeedAdapterTest extends KSRobolectricTestCase { private ActivityFeedAdapter adapter = new ActivityFeedAdapter(null); @Test public void justActivities() throws Exception { final Activity activity0 = ActivityFactory.projectStateChangedPositiveActivity(); final Activity activity1 = ActivityFactory.friendBackingActivity(); final Activity activity2 = ActivityFactory.projectStateChangedActivity(); adapter.takeActivities(Arrays.asList(activity0, activity1, activity2)); final List<List<Activity>> data = Arrays.asList( Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), Arrays.asList( activity0, activity1, activity2 ) ); Assert.assertEquals(data, adapter.sections()); } @Test public void loggedInWithActivities() throws Exception { final Activity activity0 = ActivityFactory.projectStateChangedPositiveActivity(); final Activity activity1 = ActivityFactory.friendBackingActivity(); final Activity activity2 = ActivityFactory.projectStateChangedActivity(); adapter.takeActivities(Arrays.asList(activity0, activity1, activity2)); adapter.showLoggedInEmptyState(true); final List<List<Object>> data = Arrays.asList( Collections.singletonList(true), Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), Arrays.asList( activity0, activity1, activity2 ) ); Assert.assertEquals(data, adapter.sections()); } @Test public void loggedOutWithActivities() throws Exception { final Activity activity0 = ActivityFactory.projectStateChangedPositiveActivity(); final Activity activity1 = ActivityFactory.friendBackingActivity(); final Activity activity2 = ActivityFactory.projectStateChangedActivity(); adapter.takeActivities(Arrays.asList(activity0, activity1, activity2)); adapter.showLoggedOutEmptyState(true); final List<List<Object>> data = Arrays.asList( Collections.emptyList(), Collections.singletonList(false), Collections.emptyList(), Collections.emptyList(), Arrays.asList( activity0, activity1, activity2 ) ); Assert.assertEquals(data, adapter.sections()); } @Test public void loggedInWithActivitiesAndSurveys() throws Exception { final Activity activity0 = ActivityFactory.projectStateChangedPositiveActivity(); final Activity activity1 = ActivityFactory.friendBackingActivity(); final Activity activity2 = ActivityFactory.projectStateChangedActivity(); final SurveyResponse surveyResponse0 = SurveyResponseFactory.surveyResponse(); final SurveyResponse surveyResponse1 = SurveyResponseFactory.surveyResponse(); adapter.takeActivities(Arrays.asList(activity0, activity1, activity2)); adapter.takeSurveys(Arrays.asList(surveyResponse0, surveyResponse1)); adapter.showLoggedInEmptyState(true); final List<List<Object>> data = Arrays.asList( Collections.singletonList(true), Collections.emptyList(), Collections.singletonList(2), Arrays.asList( surveyResponse0, surveyResponse1 ), Arrays.asList( activity0, activity1, activity2 ) ); Assert.assertEquals(data, adapter.sections()); } }