Я хочу проверить, что, когда я нажимаю на EditText
, диалоговое окно DatePicker
, которое я создал из DialogFragment
Откройте и заполните EditText
с выбранной датой
Яиспользуя Robolectric, но Robolectric видит мой диалог как AlertDialog
вместо DatePicker Dialog
Вот сообщение об ошибке:
java.lang.ClassCastException: android.app.AlertDialog cannot be cast to android.app.DatePickerDialog
Test
@Test
public void endDateBeforeStartDateAlert() throws Exception {
EditText endDate = activity.findViewById(R.id.end_date);
endDate.performClick();
DatePickerDialog dialog = (DatePickerDialog) ShadowDatePickerDialog.getLatestDialog();
dialog.updateDate(2013, 10, 23);
assertEquals("10/23/2013", endDate.getText().toString());
}
DatePickerDialog
public class PickDateDialog extends DialogFragment implements DialogInterface.OnClickListener{
public static final String TAG = "PickDateDialog";
//views
private DatePicker datePicker;
public PickDateDialog() {}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.createCallbackToParent();
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
final DatePickerDialog.Builder datePickerDialog = new DatePickerDialog.Builder(getActivity());
datePicker = new DatePicker(getActivity());
datePickerDialog.setView(datePicker);
datePickerDialog.setPositiveButton(getString(R.string.ok_button), this);
datePickerDialog.setNegativeButton(getString(R.string.cancel_button), this);
return datePickerDialog.create();
}
@Override
public void onClick(DialogInterface dialogInterface, int button) {
if(button == BUTTON_POSITIVE){
this.setDate();
mCallback.onOkButtonListener(calendar, viewId);
}
if(button == BUTTON_NEGATIVE){
dialogInterface.cancel();
}
}
}
Любая идея о том, как я могу проверить мой DatePicker
?Спасибо за ваше время