package org.ovirt.engine.core.bll.storage.connection; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.ovirt.engine.core.bll.ValidateTestUtils; import org.ovirt.engine.core.bll.ValidationResult; import org.ovirt.engine.core.bll.validator.storage.StorageServerConnectionExtensionValidator; import org.ovirt.engine.core.common.action.StorageServerConnectionExtensionParameters; import org.ovirt.engine.core.common.businessentities.storage.StorageServerConnectionExtension; import org.ovirt.engine.core.common.errors.EngineMessage; import org.ovirt.engine.core.compat.Guid; @RunWith(MockitoJUnitRunner.class) public class UpdateStorageServerConnectionExtensionCommandTest { @Mock private StorageServerConnectionExtensionValidator storageServerConnectionExtensionValidator; @Test public void testUpdateFailsOnExistingHostAndTargetCombination() { Guid hostId = Guid.newGuid(); StorageServerConnectionExtension conn = createConnection(hostId, "iqn1", "user", "pass"); StorageServerConnectionExtensionParameters params = new StorageServerConnectionExtensionParameters(conn); UpdateStorageServerConnectionExtensionCommand realCmd = new UpdateStorageServerConnectionExtensionCommand(params, null); UpdateStorageServerConnectionExtensionCommand cmd = spy(realCmd); when(cmd.getConnectionExtensionValidator()).thenReturn(storageServerConnectionExtensionValidator); when(storageServerConnectionExtensionValidator.isConnectionDoesNotExistForHostAndTarget(conn)).thenReturn(new ValidationResult(EngineMessage.ACTION_TYPE_FAILED_STORAGE_CONNECTION_EXTENSION_ALREADY_EXISTS)); ValidateTestUtils.runAndAssertValidateFailure(cmd, EngineMessage.ACTION_TYPE_FAILED_STORAGE_CONNECTION_EXTENSION_ALREADY_EXISTS); } private StorageServerConnectionExtension createConnection(Guid hostId, String iqn, String userName, String password) { StorageServerConnectionExtension conn = new StorageServerConnectionExtension(); conn.setHostId(hostId); conn.setIqn(iqn); conn.setUserName(userName); conn.setPassword(password); return conn; } }