|
|
@@ -1,717 +0,0 @@
|
|
|
-package kr.co.zumo.app.lifeplus.view.custom.auth;
|
|
|
-
|
|
|
-import android.support.v4.app.FragmentManager;
|
|
|
-
|
|
|
-import org.junit.Before;
|
|
|
-import org.junit.Test;
|
|
|
-import org.powermock.core.classloader.annotations.PrepareForTest;
|
|
|
-
|
|
|
-import kr.co.zumo.app.R;
|
|
|
-import kr.co.zumo.app.lifeplus.bean.MobileAuthBean;
|
|
|
-import kr.co.zumo.app.lifeplus.model.LifeplusPreferences;
|
|
|
-import kr.co.zumo.app.lifeplus.model.SuperModel;
|
|
|
-import kr.co.zumo.app.lifeplus.util.ResourceUtil;
|
|
|
-
|
|
|
-import static org.junit.Assert.assertEquals;
|
|
|
-import static org.mockito.ArgumentMatchers.any;
|
|
|
-import static org.mockito.ArgumentMatchers.anyInt;
|
|
|
-import static org.mockito.ArgumentMatchers.eq;
|
|
|
-import static org.mockito.Mockito.never;
|
|
|
-import static org.mockito.Mockito.times;
|
|
|
-import static org.mockito.Mockito.verify;
|
|
|
-import static org.powermock.api.mockito.PowerMockito.mock;
|
|
|
-import static org.powermock.api.mockito.PowerMockito.spy;
|
|
|
-import static org.powermock.api.mockito.PowerMockito.when;
|
|
|
-
|
|
|
-//@RunWith(PowerMockRunner.class)
|
|
|
-@PrepareForTest({MobileAuthPresenter.class, ResourceUtil.class})
|
|
|
-public class MobileAuthPresenterTest {
|
|
|
-
|
|
|
- IMobileAuthContract.View view;
|
|
|
- IMobileAuthContract.Listener listener;
|
|
|
- IMobileAuthContract.Presenter presenter;
|
|
|
- MobileAuthBean mobileAuthBean;
|
|
|
- LifeplusPreferences lifeplusPreferences;
|
|
|
-
|
|
|
- @Before
|
|
|
- public void setup() {
|
|
|
-// PowerMockito.mockStatic(ResourceUtil.class);
|
|
|
-
|
|
|
-// when(ResourceUtil.getStringArray(eq("mobile_companies"))).thenReturn(
|
|
|
-// new String[]{"SKT", "KT", "LG U+", "SKT(알뜰폰)", "KT(알뜰폰)", "LG U+(알뜰폰)"}
|
|
|
-// );
|
|
|
-// when(ResourceUtil.getStringArray(eq("phone_numbers"))).thenReturn(
|
|
|
-// new String[]{"010", "011", "016", "017", "018", "019"}
|
|
|
-// );
|
|
|
-
|
|
|
- lifeplusPreferences = mock(LifeplusPreferences.class);
|
|
|
- when(lifeplusPreferences.getDeviceUuid()).thenReturn("device_id");
|
|
|
-
|
|
|
- SuperModel.getInstance().init();
|
|
|
- SuperModel.getInstance().setPreferences(lifeplusPreferences);
|
|
|
-
|
|
|
- view = mock(IMobileAuthContract.View.class);
|
|
|
- listener = mock(IMobileAuthContract.Listener.class);
|
|
|
- mobileAuthBean = spy(new MobileAuthBean());
|
|
|
-// mobileAuthBean.setMobileCompany(ResourceUtil.getStringArray("mobile_companies")[0]);
|
|
|
-// mobileAuthBean.setFirstPhoneNumber(ResourceUtil.getStringArray("phone_numbers")[0]);
|
|
|
- mobileAuthBean.setMobileCompany("SKT");
|
|
|
- mobileAuthBean.setFirstPhoneNumber("010");
|
|
|
- mobileAuthBean.setGender(MobileAuthBean.GENDER_MALE);
|
|
|
- mobileAuthBean.setNationality(MobileAuthBean.NATIONALITY_DOMESTIC);
|
|
|
- presenter = spy(new MobileAuthPresenter(view, mobileAuthBean, false, mock(FragmentManager.class), listener));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * todo 모델을 통해서 검증 할 것
|
|
|
- * - bean 초기값
|
|
|
- */
|
|
|
-
|
|
|
- /**
|
|
|
- * 인증번호 요청 버튼 활성 조건
|
|
|
- * - 이름 2자 이상
|
|
|
- * - 생일 입력 8자리 yyyymmdd
|
|
|
- * - 폰 번호 7~8자리 숫자
|
|
|
- * - 필수 동의 4개
|
|
|
- */
|
|
|
-
|
|
|
- @Test
|
|
|
- public void dispose() {
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void construction() {
|
|
|
-
|
|
|
- // presenter 생성 초기화 검증
|
|
|
-
|
|
|
- verify(view).setPresenter(any(MobileAuthPresenter.class));
|
|
|
- verify(view).setEnabledRequestConfirmTextView(eq(false));
|
|
|
- verify(view).setEnabledRequestConfirmButton(eq(false));
|
|
|
- verify(view).clearRequestConfirmTextView();
|
|
|
- verify(view).doClearAuthorizedNumberValidationTextView();
|
|
|
- verify(view).showRemainTime(eq(false));
|
|
|
- verify(view).renderRemainTime(eq(""));
|
|
|
- verify(view, times(1)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- //todo 인증번호 확인 시도 수 초기화 (= 0)
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onClickLayout() {
|
|
|
- // 키보드 숨김
|
|
|
- presenter.onClickLayout();
|
|
|
-
|
|
|
- verify(view).doHideKeyBoard();
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void doAccordionAgreeList() {
|
|
|
- // 동의 하기 아코디언
|
|
|
- presenter.doAccordionAgreeList(true);
|
|
|
-
|
|
|
- verify(view).doAccordionAgreeList(eq(true));
|
|
|
-
|
|
|
- presenter.doAccordionAgreeList(false);
|
|
|
-
|
|
|
- verify(view).doAccordionAgreeList(eq(false));
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onNameTextChanged() {
|
|
|
- // 이름 입력
|
|
|
-
|
|
|
- /**
|
|
|
- * 생성 시 setEnabledRequestNumberButton 1회 실행됨을 주의
|
|
|
- */
|
|
|
-
|
|
|
- // 0글자
|
|
|
- presenter.onNameTextChanged("");
|
|
|
- verify(mobileAuthBean).setName(eq(""));
|
|
|
- verify(view).doNameValidationMessage(eq(R.string.phone_identify_name_input_validation));
|
|
|
- verify(view, never()).doClearNameValidationTextView();
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 1글자
|
|
|
- presenter.onNameTextChanged("ㅁ");
|
|
|
- verify(mobileAuthBean).setName(eq("ㅁ"));
|
|
|
- verify(view).doNameValidationMessage(eq(R.string.phone_identify_name_length_validation));
|
|
|
- verify(view, never()).doClearNameValidationTextView();
|
|
|
- verify(view, times(3)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 2글자
|
|
|
- presenter.onNameTextChanged("ab");
|
|
|
- verify(mobileAuthBean).setName(eq("ab"));
|
|
|
- assertEquals("ab", mobileAuthBean.getName());
|
|
|
- verify(view, times(2)).doNameValidationMessage(anyInt()); // 위에서 2번 실행됨. 이번엔 실행 안됨
|
|
|
- verify(view).doClearNameValidationTextView();
|
|
|
- verify(view, times(4)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 3글자
|
|
|
- presenter.onNameTextChanged("abㅊ");
|
|
|
- verify(mobileAuthBean).setName(eq("abㅊ"));
|
|
|
- assertEquals("abㅊ", mobileAuthBean.getName());
|
|
|
- verify(view, times(2)).doNameValidationMessage(anyInt()); // 위에서 2번 실행됨. 이번엔 실행 안됨
|
|
|
- verify(view, times(2)).doClearNameValidationTextView();
|
|
|
- verify(view, times(5)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onFocusNameText() {
|
|
|
-
|
|
|
- // 처음 포커스 시에는 유효성 글자 표시되면 안됨
|
|
|
- // 2번째 포커스부터는 내용에 따라서 표시
|
|
|
- // focus 발생 시 번호 요청 버튼 사용 가능한지 확인
|
|
|
-
|
|
|
- // focus in / 버튼 비활성
|
|
|
- presenter.onFocusNameText(true);
|
|
|
- verify(view, never()).doNameValidationMessage(anyInt());
|
|
|
- verify(view, never()).doClearNameValidationTextView();
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // focus out / 이름 없을 때
|
|
|
- // 입력하면서 유효성 검사를 했기 때문에 떠날 때는 하지 않음;
|
|
|
- mobileAuthBean.setName("");
|
|
|
- presenter.onFocusNameText(false);
|
|
|
- verify(view).doNameValidationMessage(eq(R.string.phone_identify_name_input_validation));
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // focus out / 이름 있을 때 - 유효성 실패
|
|
|
- mobileAuthBean.setName("c");
|
|
|
- presenter.onFocusNameText(false);
|
|
|
- verify(view).doNameValidationMessage(eq(R.string.phone_identify_name_length_validation));
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // focus out / 이름 있을 때 - 유효성 성공
|
|
|
- mobileAuthBean.setName("cc");
|
|
|
- presenter.onFocusNameText(false);
|
|
|
- verify(view).doClearNameValidationTextView();
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onBirthDateTextChanged() {
|
|
|
- // 생일 입력
|
|
|
- // 14세 미만 검사
|
|
|
- // yyyymmdd 검사
|
|
|
-
|
|
|
- // 0글자
|
|
|
- presenter.onBirthDateTextChanged("");
|
|
|
- verify(mobileAuthBean).setBirthDate(eq(""));
|
|
|
- verify(view).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_input_validation_message));
|
|
|
- verify(view, never()).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 1글자
|
|
|
- presenter.onBirthDateTextChanged("1");
|
|
|
- verify(mobileAuthBean).setBirthDate(eq("1"));
|
|
|
- verify(view).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_length_validation_message));
|
|
|
- verify(view, never()).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(3)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 2글자
|
|
|
- presenter.onBirthDateTextChanged("19");
|
|
|
- verify(mobileAuthBean).setBirthDate(eq("19"));
|
|
|
- verify(view, times(2)).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_length_validation_message));
|
|
|
- verify(view, never()).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(4)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 3글자
|
|
|
- presenter.onBirthDateTextChanged("199");
|
|
|
- verify(mobileAuthBean).setBirthDate(eq("199"));
|
|
|
- verify(view, times(3)).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_length_validation_message));
|
|
|
- verify(view, never()).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(5)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 4글자
|
|
|
- presenter.onBirthDateTextChanged("1990");
|
|
|
- verify(mobileAuthBean).setBirthDate(eq("1990"));
|
|
|
- verify(view, times(4)).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_length_validation_message));
|
|
|
- verify(view, never()).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(6)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 5글자
|
|
|
- presenter.onBirthDateTextChanged("19901");
|
|
|
- verify(mobileAuthBean).setBirthDate(eq("19901"));
|
|
|
- verify(view, times(5)).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_length_validation_message));
|
|
|
- verify(view, never()).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(7)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 6글자
|
|
|
- presenter.onBirthDateTextChanged("199012");
|
|
|
- verify(mobileAuthBean).setBirthDate(eq("199012"));
|
|
|
- verify(view, times(6)).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_length_validation_message));
|
|
|
- verify(view, never()).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(8)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 7글자
|
|
|
- presenter.onBirthDateTextChanged("1990120");
|
|
|
- verify(mobileAuthBean).setBirthDate(eq("1990120"));
|
|
|
- verify(view, times(7)).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_length_validation_message));
|
|
|
- verify(view, never()).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(9)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 8글자
|
|
|
- presenter.onBirthDateTextChanged("19901207");
|
|
|
- verify(mobileAuthBean).setBirthDate(eq("19901207"));
|
|
|
- verify(view, times(7)).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_length_validation_message));
|
|
|
- verify(view, times(1)).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(10)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 9글자 - 실제론 입력 불가
|
|
|
- presenter.onBirthDateTextChanged("199012079");
|
|
|
- verify(mobileAuthBean).setBirthDate(eq("199012079"));
|
|
|
- verify(view, times(8)).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_length_validation_message));
|
|
|
- verify(view, times(1)).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(11)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 8글자 - 14세 미만
|
|
|
- presenter.onBirthDateTextChanged("20171207");
|
|
|
- verify(mobileAuthBean).setBirthDate(eq("20171207"));
|
|
|
- verify(view, times(1)).doBirthDateValidationMessage(eq(R.string.phone_identify_age_limit_validation_message));
|
|
|
- verify(view, times(1)).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(12)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 8글자 - yyyymmdd 검사
|
|
|
- presenter.onBirthDateTextChanged("20171233");
|
|
|
- verify(mobileAuthBean).setBirthDate(eq("20171233"));
|
|
|
- verify(view, times(9)).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_length_validation_message));
|
|
|
- verify(view, times(1)).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(13)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onFocusBirthDateText() {
|
|
|
- // 처음 포커스 시에는 유효성 글자 표시되면 안됨
|
|
|
- // 2번째 포커스부터는 내용에 따라서 표시
|
|
|
- // focus 발생 시 번호 요청 버튼 사용 가능한지 확인
|
|
|
-
|
|
|
- // focus in / 버튼 비활성
|
|
|
- presenter.onFocusBirthDateText(true);
|
|
|
- verify(view, never()).doBirthDateValidationMessage(anyInt());
|
|
|
- verify(view, never()).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // focus out / 내용 없을 때
|
|
|
- // 입력하면서 유효성 검사를 했기 때문에 떠날 때는 하지 않음;
|
|
|
- mobileAuthBean.setBirthDate("");
|
|
|
- presenter.onFocusBirthDateText(false);
|
|
|
- verify(view).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_input_validation_message));
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // focus out / 내용 있을 때 - 유효성 실패
|
|
|
- mobileAuthBean.setBirthDate("1999");
|
|
|
- presenter.onFocusBirthDateText(false);
|
|
|
- verify(view).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_length_validation_message));
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // focus out / 내용 있을 때 - 유효성 성공
|
|
|
- mobileAuthBean.setBirthDate("19990101");
|
|
|
- presenter.onFocusBirthDateText(false);
|
|
|
- verify(view).doClearBirthDateValidationTextView();
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onPhoneNumberTextChanged() {
|
|
|
- // 폰 번호 입력
|
|
|
- // todo 번호 요청 3회 시 1분 발송 제한 표시 - 모델 필요
|
|
|
-
|
|
|
- // 0글자
|
|
|
- presenter.onPhoneNumberTextChanged("");
|
|
|
- verify(mobileAuthBean).setPhoneNumber(eq(""));
|
|
|
- verify(view).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, never()).doClearPhoneNumberValidationTextView();
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 1글자
|
|
|
- presenter.onPhoneNumberTextChanged("1");
|
|
|
- verify(mobileAuthBean).setPhoneNumber(eq("1"));
|
|
|
- verify(view, times(2)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, never()).doClearPhoneNumberValidationTextView();
|
|
|
- verify(view, times(3)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 2글자
|
|
|
- presenter.onPhoneNumberTextChanged("12");
|
|
|
- verify(mobileAuthBean).setPhoneNumber(eq("12"));
|
|
|
- verify(view, times(3)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, never()).doClearPhoneNumberValidationTextView();
|
|
|
- verify(view, times(4)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 3글자
|
|
|
- presenter.onPhoneNumberTextChanged("123");
|
|
|
- verify(mobileAuthBean).setPhoneNumber(eq("123"));
|
|
|
- verify(view, times(4)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, never()).doClearPhoneNumberValidationTextView();
|
|
|
- verify(view, times(5)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 4글자
|
|
|
- presenter.onPhoneNumberTextChanged("1234");
|
|
|
- verify(mobileAuthBean).setPhoneNumber(eq("1234"));
|
|
|
- verify(view, times(5)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, never()).doClearPhoneNumberValidationTextView();
|
|
|
- verify(view, times(6)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 5글자
|
|
|
- presenter.onPhoneNumberTextChanged("12345");
|
|
|
- verify(mobileAuthBean).setPhoneNumber(eq("12345"));
|
|
|
- verify(view, times(6)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, never()).doClearPhoneNumberValidationTextView();
|
|
|
- verify(view, times(7)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 6글자
|
|
|
- presenter.onPhoneNumberTextChanged("123456");
|
|
|
- verify(mobileAuthBean).setPhoneNumber(eq("123456"));
|
|
|
- verify(view, times(7)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, never()).doClearPhoneNumberValidationTextView();
|
|
|
- verify(view, times(8)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 7글자
|
|
|
- presenter.onPhoneNumberTextChanged("1234567");
|
|
|
- verify(mobileAuthBean).setPhoneNumber(eq("1234567"));
|
|
|
- verify(view, times(7)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, times(1)).doClearPhoneNumberValidationTextView();
|
|
|
- verify(view, times(9)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 8글자
|
|
|
- presenter.onPhoneNumberTextChanged("12345678");
|
|
|
- verify(mobileAuthBean).setPhoneNumber(eq("12345678"));
|
|
|
- verify(view, times(7)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, times(2)).doClearPhoneNumberValidationTextView();
|
|
|
- verify(view, times(10)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 9글자 - 실제론 입력 불가
|
|
|
- presenter.onPhoneNumberTextChanged("123456789");
|
|
|
- verify(mobileAuthBean).setPhoneNumber(eq("123456789"));
|
|
|
- verify(view, times(8)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, times(2)).doClearPhoneNumberValidationTextView();
|
|
|
- verify(view, times(11)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // 7자 유효성 완료
|
|
|
- mobileAuthBean.setPhoneNumber("1234567");
|
|
|
- mobileAuthBean.setName("aaa");
|
|
|
- mobileAuthBean.setBirthDate("19990101");
|
|
|
- mobileAuthBean.setAgree(0, true);
|
|
|
- mobileAuthBean.setAgree(1, true);
|
|
|
- mobileAuthBean.setAgree(2, true);
|
|
|
- mobileAuthBean.setAgree(3, true);
|
|
|
-
|
|
|
- presenter.onFocusPhoneNumberText(true);
|
|
|
- verify(view, times(8)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, times(3)).doClearPhoneNumberValidationTextView();
|
|
|
-
|
|
|
- // 이름 체크
|
|
|
- verify(view, times(1)).doClearNameValidationTextView();
|
|
|
-
|
|
|
- // 생일 체크
|
|
|
- verify(view, times(1)).doClearBirthDateValidationTextView();
|
|
|
-
|
|
|
- verify(view, times(1)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onFocusPhoneNumberText() {
|
|
|
- // 처음 포커스 시에는 유효성 글자 표시되면 안됨
|
|
|
- // 2번째 포커스부터는 전체 유효성 체크
|
|
|
- // focus 발생 시 번호 요청 버튼 사용 가능한지 확인
|
|
|
-
|
|
|
- // focus in / 버튼 비활성
|
|
|
- mobileAuthBean.setPhoneNumber("");
|
|
|
- presenter.onFocusPhoneNumberText(true);
|
|
|
- verify(view, never()).doPhoneNumberCheckedValidationMessage(anyInt());
|
|
|
- verify(view, never()).doClearPhoneNumberValidationTextView();
|
|
|
-
|
|
|
- // 이름 체크
|
|
|
- verify(view, never()).doNameValidationMessage(anyInt());
|
|
|
- verify(view, never()).doClearNameValidationTextView();
|
|
|
-
|
|
|
- // 생일 체크
|
|
|
- verify(view, never()).doBirthDateValidationMessage(anyInt());
|
|
|
- verify(view, never()).doClearBirthDateValidationTextView();
|
|
|
-
|
|
|
- // 동의 체크
|
|
|
- // false
|
|
|
-
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
-
|
|
|
- // focus out / 내용 없을 때
|
|
|
- mobileAuthBean.setPhoneNumber("");
|
|
|
- presenter.onFocusPhoneNumberText(false);
|
|
|
- verify(view, times(1)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, never()).doClearPhoneNumberValidationTextView();
|
|
|
-
|
|
|
- // focus in / 내용 있을 때
|
|
|
- mobileAuthBean.setPhoneNumber("1");
|
|
|
- presenter.onFocusPhoneNumberText(true);
|
|
|
- verify(view, times(2)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, never()).doClearPhoneNumberValidationTextView();
|
|
|
-
|
|
|
- // 이름 체크
|
|
|
- verify(view, times(1)).doNameValidationMessage(eq(R.string.phone_identify_name_input_validation));
|
|
|
- verify(view, never()).doClearNameValidationTextView();
|
|
|
-
|
|
|
- // 생일 체크
|
|
|
- verify(view, times(1)).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_input_validation_message));
|
|
|
- verify(view, never()).doClearBirthDateValidationTextView();
|
|
|
-
|
|
|
- verify(view, times(3)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // focus in / 내용 있을 때
|
|
|
- mobileAuthBean.setPhoneNumber("12345678");
|
|
|
- presenter.onFocusPhoneNumberText(true);
|
|
|
- verify(view, times(2)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, times(1)).doClearPhoneNumberValidationTextView();
|
|
|
-
|
|
|
- // 이름 체크
|
|
|
- verify(view, times(2)).doNameValidationMessage(eq(R.string.phone_identify_name_input_validation));
|
|
|
- verify(view, never()).doClearNameValidationTextView();
|
|
|
-
|
|
|
- // 생일 체크
|
|
|
- verify(view, times(2)).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_input_validation_message));
|
|
|
- verify(view, never()).doClearBirthDateValidationTextView();
|
|
|
-
|
|
|
- verify(view, times(4)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // focus in / 유효성 체크 완료
|
|
|
- mobileAuthBean.setPhoneNumber("12345678");
|
|
|
- mobileAuthBean.setName("aaa");
|
|
|
- mobileAuthBean.setBirthDate("19990101");
|
|
|
- mobileAuthBean.setAgree(0, true);
|
|
|
- mobileAuthBean.setAgree(1, true);
|
|
|
- mobileAuthBean.setAgree(2, true);
|
|
|
- mobileAuthBean.setAgree(3, true);
|
|
|
-
|
|
|
- presenter.onFocusPhoneNumberText(true);
|
|
|
- verify(view, times(2)).doPhoneNumberCheckedValidationMessage(eq(R.string.phone_identify_phone_validation));
|
|
|
- verify(view, times(2)).doClearPhoneNumberValidationTextView();
|
|
|
-
|
|
|
- // 이름 체크
|
|
|
- verify(view, times(2)).doNameValidationMessage(eq(R.string.phone_identify_name_input_validation));
|
|
|
- verify(view, times(1)).doClearNameValidationTextView();
|
|
|
-
|
|
|
- // 생일 체크
|
|
|
- verify(view, times(2)).doBirthDateValidationMessage(eq(R.string.phone_identify_birth_date_input_validation_message));
|
|
|
- verify(view, times(1)).doClearBirthDateValidationTextView();
|
|
|
-
|
|
|
- verify(view, times(1)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_ENABLED));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void setOnGenderCheckedChanged() {
|
|
|
- // 성별
|
|
|
-
|
|
|
- // male 로 초기화 하기때문에 2회로 시작
|
|
|
- presenter.setOnGenderCheckedChanged(true);
|
|
|
- verify(mobileAuthBean, times(2)).setGender(eq(MobileAuthBean.GENDER_MALE));
|
|
|
- presenter.setOnGenderCheckedChanged(false);
|
|
|
- verify(mobileAuthBean, times(1)).setGender(eq(MobileAuthBean.GENDER_FEMALE));
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onNationalCheckedChanged() {
|
|
|
- // 내/외국인
|
|
|
- presenter.onNationalCheckedChanged(true);
|
|
|
- verify(mobileAuthBean, times(2)).setNationality(MobileAuthBean.NATIONALITY_DOMESTIC);
|
|
|
- presenter.onNationalCheckedChanged(false);
|
|
|
- verify(mobileAuthBean, times(1)).setNationality(MobileAuthBean.NATIONALITY_FOREIGNER);
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onFirstPhoneNumberSelectChanged() {
|
|
|
- // 국번
|
|
|
- presenter.onFirstPhoneNumberSelectChanged("010");
|
|
|
- verify(mobileAuthBean, times(2)).setFirstPhoneNumber("010");
|
|
|
- presenter.onFirstPhoneNumberSelectChanged("011");
|
|
|
- verify(mobileAuthBean, times(1)).setFirstPhoneNumber("011");
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onFirstPhoneNumberOpenChanged() {
|
|
|
- // 핸드폰 번호 앞자리 spinner 열림/닫힘
|
|
|
- presenter.onFirstPhoneNumberOpenChanged(false);
|
|
|
- verify(view, never()).clearFocusAll();
|
|
|
- presenter.onFirstPhoneNumberOpenChanged(true);
|
|
|
- verify(view, times(1)).clearFocusAll();
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onFirstMobileCompanySelectChanged() {
|
|
|
- // 통신사
|
|
|
- presenter.onFirstMobileCompanySelectChanged("SKT");
|
|
|
- verify(mobileAuthBean, times(2)).setMobileCompany("SKT");
|
|
|
- presenter.onFirstMobileCompanySelectChanged("LGT");
|
|
|
- verify(mobileAuthBean, times(1)).setMobileCompany("LGT");
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onFirstMobileCompanyOpenChanged() {
|
|
|
- // 통신사 spinner 열림/닫힘
|
|
|
- presenter.onFirstMobileCompanyOpenChanged(false);
|
|
|
- verify(view, never()).clearFocusAll();
|
|
|
- presenter.onFirstMobileCompanyOpenChanged(true);
|
|
|
- verify(view, times(1)).clearFocusAll();
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onAllAgreeCheckedChanged() {
|
|
|
- // all agree
|
|
|
- presenter.onAllAgreeCheckedChanged(true);
|
|
|
- verify(view, times(1)).doHideKeyBoard();
|
|
|
- verify(view, times(1)).clearFocusAll();
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- presenter.onAllAgreeCheckedChanged(false);
|
|
|
- verify(view, times(2)).doHideKeyBoard();
|
|
|
- verify(view, times(2)).clearFocusAll();
|
|
|
- verify(view, times(3)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onAgreeCheckedChanged() {
|
|
|
- // agree
|
|
|
-
|
|
|
- presenter.onAgreeCheckedChanged(0, true);
|
|
|
- verify(mobileAuthBean).setAgree(eq(0), eq(true));
|
|
|
- verify(view, times(1)).clearFocusAll();
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- presenter.onAgreeCheckedChanged(1, true);
|
|
|
- verify(mobileAuthBean).setAgree(eq(1), eq(true));
|
|
|
- verify(view, times(2)).clearFocusAll();
|
|
|
- verify(view, times(3)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- presenter.onAgreeCheckedChanged(2, true);
|
|
|
- verify(mobileAuthBean).setAgree(eq(2), eq(true));
|
|
|
- verify(view, times(3)).clearFocusAll();
|
|
|
- verify(view, times(4)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- presenter.onAgreeCheckedChanged(3, true);
|
|
|
- verify(mobileAuthBean).setAgree(eq(3), eq(true));
|
|
|
- verify(view, times(4)).clearFocusAll();
|
|
|
- verify(view, times(5)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onFocusValidationNumberText() {
|
|
|
- // 인증번호 입력 칸 포커스
|
|
|
-
|
|
|
- presenter.onFocusValidationNumberText(true);
|
|
|
- // nothing.
|
|
|
- verify(view, never()).doAuthorizedNumberValidationMessage(R.string.phone_identify_number_validation_message);
|
|
|
- verify(view, times(1)).doClearAuthorizedNumberValidationTextView();
|
|
|
- verify(view, times(1)).setEnabledRequestConfirmButton(false);
|
|
|
-
|
|
|
- // 임시로 인증번호를 넣어준다.
|
|
|
- // todo model 로 변경시 필요 없음. times -1 필요
|
|
|
- presenter.onAuthorizedNumberChanged("0");
|
|
|
- presenter.onFocusValidationNumberText(false);
|
|
|
- verify(view, times(1 + 1)).doAuthorizedNumberValidationMessage(R.string.phone_identify_number_validation_message);
|
|
|
- verify(view, times(1)).doClearAuthorizedNumberValidationTextView();
|
|
|
- verify(view, times(2 + 1)).setEnabledRequestConfirmButton(false);
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onAuthorizedNumberChanged() {
|
|
|
- presenter.onAuthorizedNumberChanged("");
|
|
|
- verify(view, times(1)).doAuthorizedNumberValidationMessage(R.string.phone_identify_number_validation_message);
|
|
|
- verify(view, times(1)).doClearAuthorizedNumberValidationTextView();
|
|
|
- verify(view, times(2)).setEnabledRequestConfirmButton(false);
|
|
|
-
|
|
|
- presenter.onAuthorizedNumberChanged("12345");
|
|
|
- verify(view, times(2)).doAuthorizedNumberValidationMessage(R.string.phone_identify_number_validation_message);
|
|
|
- verify(view, times(1)).doClearAuthorizedNumberValidationTextView();
|
|
|
- verify(view, times(3)).setEnabledRequestConfirmButton(false);
|
|
|
-
|
|
|
-
|
|
|
- presenter.onAuthorizedNumberChanged("123456");
|
|
|
- verify(view, times(2)).doAuthorizedNumberValidationMessage(R.string.phone_identify_number_validation_message);
|
|
|
- verify(view, times(2)).doClearAuthorizedNumberValidationTextView();
|
|
|
- verify(view, times(1)).setEnabledRequestConfirmButton(true);
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onAuthorizationConfirmButtonClick() {
|
|
|
- // 인증 확인 버튼
|
|
|
-
|
|
|
- // todo 모델, 모듈 테스트
|
|
|
-
|
|
|
- // 임시로 인증번호를 넣어준다.
|
|
|
- // todo model 로 변경시 필요 없음. times -1 필요
|
|
|
- presenter.onAuthorizedNumberChanged("000000");
|
|
|
- verify(view, never()).doAuthorizedNumberValidationMessage(R.string.phone_identify_number_validation_message);
|
|
|
- verify(view, times(2)).doClearAuthorizedNumberValidationTextView();
|
|
|
- verify(view, times(1)).setEnabledRequestConfirmButton(false);
|
|
|
-
|
|
|
-
|
|
|
- // todo !! 예외 발생 - model 로 succeedUserBean 저장 필요
|
|
|
- // api 호출
|
|
|
- presenter.onAuthorizationConfirmButtonClick();
|
|
|
- verify(view, times(2 + 1)).doClearAuthorizedNumberValidationTextView();
|
|
|
- verify(view, times(1)).setEnabledRequestConfirmButton(eq(true));
|
|
|
- verify(view, times(2 + 1)).setEnabledRequestConfirmButton(eq(false));
|
|
|
- verify(view, times(1)).doHideKeyBoard();
|
|
|
-
|
|
|
- // 유효성 체크 실패
|
|
|
-
|
|
|
- // todo 현재 실패, 수정 필요
|
|
|
- // todo 확인 성공/실패 케이스
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onAuthorizationNumberSendButtonClick() {
|
|
|
- // 번호 요청 버튼
|
|
|
-
|
|
|
- mobileAuthBean.setPhoneNumber("12345678");
|
|
|
- mobileAuthBean.setName("aaa");
|
|
|
- mobileAuthBean.setBirthDate("19990101");
|
|
|
- mobileAuthBean.setAgree(0, true);
|
|
|
- mobileAuthBean.setAgree(1, true);
|
|
|
- mobileAuthBean.setAgree(2, true);
|
|
|
- mobileAuthBean.setAgree(3, true);
|
|
|
-
|
|
|
- presenter.onAuthorizationNumberSendButtonClick();
|
|
|
-
|
|
|
- verify(view, times(2)).setEnabledRequestNumberButton(eq(IMobileAuthContract.View.BUTTON_FLAG_DISABLED));
|
|
|
-
|
|
|
- // todo api 요청 모델 테스트 필요
|
|
|
- // todo 요청 성공/ 실패 케이스
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onAuthorizationTimeExpansionButtonClick() {
|
|
|
- // 시간 연장 버튼
|
|
|
-
|
|
|
- // 180 초 카운트 시작 -> todo model test
|
|
|
- try {
|
|
|
- presenter.onAuthorizationTimeExpansionButtonClick();
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- verify(view).setEnabledExpansionTimeButton(eq(false));
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void onClickAgreeDetail() {
|
|
|
- // todo 팝업 표시 뷰로 옮기고 테스트
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * todo 추가 시나리오
|
|
|
- *
|
|
|
- *
|
|
|
- */
|
|
|
-}
|