package com.pivotallabs; import android.view.View; import android.widget.EditText; import org.robolectric.RobolectricTestRunner; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertThat; @RunWith(RobolectricTestRunner.class) public class ViewEnablingTextWatcherTest { private View toEnable; private EditText editText1; private EditText editText2; @Before public void setUp() throws Exception { toEnable = new View(null); editText1 = new EditText(null); editText2 = new EditText(null); toEnable.setEnabled(false); new ViewEnablingTextWatcher(toEnable, editText1, editText2); } @Test public void shouldEnableTheViewWhenAllEditTextsHaveText() throws Exception { assertThat(toEnable.isEnabled(), equalTo(false)); editText1.setText("foo"); assertThat(toEnable.isEnabled(), equalTo(false)); editText2.setText("bar"); assertThat(toEnable.isEnabled(), equalTo(true)); } @Test public void shouldNotEnableTheViewIfTheAnyOfTheEditTextsContainWhitespace() throws Exception { assertThat(toEnable.isEnabled(), equalTo(false)); editText1.setText("foo"); assertThat(toEnable.isEnabled(), equalTo(false)); editText2.setText(" \t \n "); assertThat(toEnable.isEnabled(), equalTo(false)); } @Test public void shouldDisableTheViewWhenOneOfTheEditTextsHaveEmptyText() throws Exception { editText1.setText("foo"); editText2.setText("bar"); assertThat(toEnable.isEnabled(), equalTo(true)); editText2.setText(""); assertThat(toEnable.isEnabled(), equalTo(false)); } }