package org.robobinding.widget.adapterview; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.LinearLayout; import android.widget.ListView; /** * * @since 1.0 * @version $Revision: 1.0 $ * @author Robert Taylor */ @Config(manifest = Config.NONE) @RunWith(RobolectricTestRunner.class) public class EmptyViewAttributesTest { private EmptyViewAttributes emptyViewAttributes = new EmptyViewAttributes(); private Context context = RuntimeEnvironment.application; private AdapterView<?> adapterView = new ListView(context); private View emptyView = new View(context); @Test public void testLayoutAttribute() { assertThat(emptyViewAttributes.layoutAttribute(), is("emptyViewLayout")); } @Test public void testSubViewPresentationModelAttribute() { assertThat(emptyViewAttributes.subViewPresentationModelAttribute(), is("emptyViewPresentationModel")); } @Test public void testVisibilityAttribute() { assertThat(emptyViewAttributes.visibilityAttribute(), is("emptyViewVisibility")); } @Test public void givenAddSubViewHasBeenCalled_thenReturnEmptyViewVisibility() { ViewGroup parentViewGroup = new LinearLayout(context); parentViewGroup.addView(adapterView); emptyViewAttributes.addSubView(adapterView, emptyView, context); assertNotNull(emptyViewAttributes.createVisibility(adapterView, emptyView)); } @Test(expected = IllegalStateException.class) public void givenSubViewHasNotBeenAdded_thenThrowIllegalStateException() { emptyViewAttributes.createVisibility(adapterView, emptyView); } }