package com.jakewharton.rxbinding2.support.design.widget;
import android.content.Context;
import android.support.design.widget.TextInputLayout;
import android.support.test.InstrumentationRegistry;
import android.support.test.annotation.UiThreadTest;
import android.support.test.rule.UiThreadTestRule;
import android.support.test.runner.AndroidJUnit4;
import android.view.ContextThemeWrapper;
import android.widget.EditText;
import com.jakewharton.rxbinding2.support.design.test.R;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;
@RunWith(AndroidJUnit4.class)
public class RxTextInputLayoutTest {
@Rule public final UiThreadTestRule uiThread = new UiThreadTestRule();
private final Context rawContext = InstrumentationRegistry.getContext();
private final Context context = new ContextThemeWrapper(rawContext, R.style.Theme_AppCompat);
private final TextInputLayout view = new TextInputLayout(context);
@Before public void setUp() {
view.addView(new EditText(context));
}
@Test @UiThreadTest public void counterEnabled() throws Exception {
RxTextInputLayout.counterEnabled(view).accept(true);
assertEquals(true, view.isCounterEnabled());
}
@Test @UiThreadTest public void counterMaxLength() throws Exception {
RxTextInputLayout.counterMaxLength(view).accept(100);
assertEquals(100, view.getCounterMaxLength());
}
@Test @UiThreadTest public void error() throws Exception {
RxTextInputLayout.error(view).accept("Your error here");
assertEquals("Your error here", view.getError().toString());
}
@Test @UiThreadTest public void errorRes() throws Exception {
final String error = context.getString(R.string.error);
RxTextInputLayout.errorRes(view).accept(R.string.error);
assertEquals(error, view.getError().toString());
}
@Test @UiThreadTest public void hint() throws Exception {
RxTextInputLayout.hint(view).accept("Your name here");
assertEquals("Your name here", view.getHint().toString());
}
@Test @UiThreadTest public void hintRes() throws Exception {
RxTextInputLayout.hintRes(view).accept(R.string.hint);
assertEquals("Your name here", view.getHint().toString());
}
}