### Question:
DetailViewModel implements ViewModel { public Command getRemoveCommand() { return removeCommand; }  void initialize(); Command getEditCommand(); Command getRemoveCommand(); Command getEmailLinkCommand(); ReadOnlyStringProperty nameLabelTextProperty(); ReadOnlyStringProperty birthdayLabelTextProperty(); ReadOnlyStringProperty roleDepartmentLabelTextProperty(); ReadOnlyStringProperty emailLabelTextProperty(); ReadOnlyStringProperty phoneLabelTextProperty(); ReadOnlyStringProperty mobileLabelTextProperty(); ReadOnlyStringProperty cityPostalcodeLabelTextProperty(); ReadOnlyStringProperty streetLabelTextProperty(); ReadOnlyStringProperty countrySubdivisionLabelTextProperty(); static final String OPEN_EDIT_CONTACT_DIALOG; }### Answer:
@Test public void testRemoveAction() { selectedContact.set(null); assertThat(viewModel.getRemoveCommand().notExecutableProperty()).isTrue(); selectedContact.set(luke); assertThat(viewModel.getRemoveCommand().notExecutableProperty()).isFalse(); viewModel.getRemoveCommand().execute(); verify(repository).delete(luke); }