package com.kickstarter.libs.utils;
import com.kickstarter.KSRobolectricTestCase;
import com.kickstarter.factories.CategoryFactory;
import com.kickstarter.factories.UserFactory;
import com.kickstarter.models.Category;
import com.kickstarter.services.DiscoveryParams;
import com.kickstarter.ui.adapters.data.NavigationDrawerData;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
public class DiscoverDrawerUtilsTests extends KSRobolectricTestCase {
static final List<Category> categories = Arrays.asList(
CategoryFactory.artCategory(),
CategoryFactory.ceramicsCategory(),
CategoryFactory.textilesCategory(),
CategoryFactory.photographyCategory(),
CategoryFactory.musicCategory(),
CategoryFactory.bluesCategory(),
CategoryFactory.worldMusicCategory()
);
@Test
public void testDeriveNavigationDrawerData_LoggedOut_DefaultSelected() {
final NavigationDrawerData data = DiscoveryDrawerUtils.deriveNavigationDrawerData(
categories,
DiscoveryParams.builder().build(),
null,
null
);
assertEquals(5, data.sections().size());
assertEquals(1, data.sections().get(0).rows().size());
assertEquals(1, data.sections().get(1).rows().size());
assertEquals(1, data.sections().get(2).rows().size());
assertEquals(1, data.sections().get(3).rows().size());
assertEquals(1, data.sections().get(4).rows().size());
}
@Test
public void testDeriveNavigationDrawerData_LoggedIn_DefaultSelected() {
final NavigationDrawerData data = DiscoveryDrawerUtils.deriveNavigationDrawerData(
categories,
DiscoveryParams.builder().build(),
null,
UserFactory.user()
);
assertEquals(7, data.sections().size());
assertEquals(1, data.sections().get(0).rows().size());
assertEquals(1, data.sections().get(1).rows().size());
assertEquals(1, data.sections().get(2).rows().size());
assertEquals(1, data.sections().get(3).rows().size());
assertEquals(1, data.sections().get(4).rows().size());
assertEquals(1, data.sections().get(5).rows().size());
assertEquals(1, data.sections().get(6).rows().size());
}
@Test
public void testDeriveNavigationDrawerData_LoggedIn_Social_DefaultSelected() {
final NavigationDrawerData data = DiscoveryDrawerUtils.deriveNavigationDrawerData(
categories,
DiscoveryParams.builder().build(),
null,
UserFactory.socialUser()
);
assertEquals(8, data.sections().size());
assertEquals(1, data.sections().get(0).rows().size());
assertEquals(1, data.sections().get(1).rows().size());
assertEquals(1, data.sections().get(2).rows().size());
assertEquals(1, data.sections().get(3).rows().size());
assertEquals(1, data.sections().get(4).rows().size());
assertEquals(1, data.sections().get(5).rows().size());
assertEquals(1, data.sections().get(6).rows().size());
assertEquals(1, data.sections().get(7).rows().size());
}
@Test
public void testDeriveNavigationDrawerData_LoggedOut_ArtExpanded() {
final NavigationDrawerData data = DiscoveryDrawerUtils.deriveNavigationDrawerData(
categories,
DiscoveryParams.builder().build(),
CategoryFactory.artCategory(),
null
);
assertEquals(5, data.sections().size());
assertEquals(1, data.sections().get(0).rows().size());
assertEquals(1, data.sections().get(1).rows().size());
assertEquals(4, data.sections().get(2).rows().size());
assertEquals(1, data.sections().get(3).rows().size());
assertEquals(1, data.sections().get(4).rows().size());
}
}