@SuppressWarnings("unchecked")
@Test
public void testOnSave() {

	pres.startPresenting();
	assertNull(pres.getContractApplication().getCustomerCity());
	assertNull(pres.getContractApplication().getCustomerFirstName());
	assertNull(pres.getContractApplication().getCustomerLastName());
	assertNull(pres.getContractApplication().getCustomerPostalCode());
	assertNull(pres.getContractApplication().getCustomerStreet());
	assertTrue(pres.getContractApplication().isLazinessProtection());
	assertFalse(pres.getContractApplication().isRetirementProtection());
	when(view.getCustomerCity()).thenReturn("Springfield");
	when(view.getCustomerFirstName()).thenReturn("Marge");
	when(view.getCustomerLastName()).thenReturn("Simpson");
	when(view.getCustomerPostalCode()).thenReturn("12345");
	when(view.getCustomerStreet()).thenReturn("Evergreen Terrace");
	when(view.isLazinessProtection()).thenReturn(false);
	when(view.isRetirementProtection()).thenReturn(true);
	when(view.checkAllFieldsValid()).thenReturn(true);
	UnsupportedOperationException exc = null;
	try {
		pres.onSave();
	} catch (UnsupportedOperationException e) {
		exc = e;
	}
	assertNotNull(exc);
	assertNull(pres.getContractApplication().getCustomerCity());
	assertNull(pres.getContractApplication().getCustomerFirstName());
	assertNull(pres.getContractApplication().getCustomerLastName());
	assertNull(pres.getContractApplication().getCustomerPostalCode());
	assertNull(pres.getContractApplication().getCustomerStreet());
	assertTrue(pres.getContractApplication().isLazinessProtection());
	assertFalse(pres.getContractApplication().isRetirementProtection());
	verify(service, never()).addNewContractApplication(eq(pres.getContractApplication()), anyMap());
	verify(returnPres, never()).returnToThisPresener((Presenter) any());
}