package org.robobinding.widget.adapterview;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Test;
import org.robobinding.widget.AbstractGroupedViewAttributeTest;
import org.robolectric.annotation.Config;
import android.widget.ListView;
/**
*
* @since 1.0
* @version $Revision: 1.0 $
* @author Cheng Wei
*/
@Config(manifest = Config.NONE)
public class SubViewAttributesTest extends AbstractGroupedViewAttributeTest<ListView, SubViewAttributes<ListView>> {
private final String presentationModelAttribute = "source";
private final Attribute presentationModel = attribute("source={presentationModel_property}");
private final String layoutAttribute = "layout";
private final Attribute staticLayout = attribute("layout=@layout/staticLayout");
private final String visibilityAttribute = "visibility";
private final Attribute visibility = attribute("visibility={visibility_property}");
@Test
public void whenCreateAttributeWithoutPresentationModel_thenSuccessful() {
givenAttributes(staticLayout);
performInitialization();
assertThatAttributesWereCreated(layoutAttribute, presentationModelAttribute);
}
@Test
public void whenCreateAttributeWithPresentationModel_thenSuccessful() {
givenAttributes(staticLayout, presentationModel);
performInitialization();
assertThatAttributesWereCreated(layoutAttribute, presentationModelAttribute);
}
@Test
public void whenCreateAttributeWithVisibility_thenSuccessful() {
givenAttributes(staticLayout, visibility);
performInitialization();
assertThatAttributesWereCreated(layoutAttribute, presentationModelAttribute, visibilityAttribute);
}
@Override
protected SubViewAttributesForTest createAttributeUnderTest() {
@SuppressWarnings("unchecked")
SubViewAttributesStrategy<ListView> subViewAttributesStrategy = mock(SubViewAttributesStrategy.class);
when(subViewAttributesStrategy.layoutAttribute()).thenReturn(layoutAttribute);
when(subViewAttributesStrategy.subViewPresentationModelAttribute()).thenReturn(presentationModelAttribute);
when(subViewAttributesStrategy.visibilityAttribute()).thenReturn(visibilityAttribute);
return new SubViewAttributesForTest(subViewAttributesStrategy);
}
}