package org.ovirt.engine.core.bll.validator.storage;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.when;
import static org.ovirt.engine.core.bll.validator.ValidationResultMatchers.failsWith;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Spy;
import org.mockito.junit.MockitoJUnitRunner;
import org.ovirt.engine.core.common.businessentities.VDS;
import org.ovirt.engine.core.common.businessentities.storage.StorageServerConnectionExtension;
import org.ovirt.engine.core.common.errors.EngineMessage;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dal.dbbroker.DbFacade;
import org.ovirt.engine.core.dao.StorageServerConnectionExtensionDao;
import org.ovirt.engine.core.dao.VdsDao;
@RunWith(MockitoJUnitRunner.class)
public class StorageServerConnectionExtensionValidatorTest {
@Mock
private DbFacade dbFacade;
@Mock
private VdsDao vdsDao;
@Mock
private StorageServerConnectionExtensionDao storageServerConnectionExtensionDao;
@Spy
private StorageServerConnectionExtensionValidator validator;
private StorageServerConnectionExtension conn;
@Before
public void setup() {
Guid hostId = Guid.newGuid();
doReturn(dbFacade).when(validator).getDbFacade();
doReturn(storageServerConnectionExtensionDao).when(dbFacade).getStorageServerConnectionExtensionDao();
doReturn(vdsDao).when(dbFacade).getVdsDao();
doReturn(new VDS()).when(vdsDao).get(hostId);
conn = new StorageServerConnectionExtension();
conn.setHostId(hostId);
conn.setIqn("iqn1");
conn.setUserName("user1");
conn.setPassword("password1");
}
@Test
public void testIsConnectionDoesNotExistForHostAndTargetSucceeds() {
assertTrue(validator.isConnectionDoesNotExistForHostAndTarget(conn).isValid());
}
@Test
public void testIsConnectionDoesNotExistForHostAndTargetFails() {
when(storageServerConnectionExtensionDao.getByHostIdAndTarget(conn.getHostId(), conn.getIqn())).thenReturn(new StorageServerConnectionExtension());
assertThat(validator.isConnectionDoesNotExistForHostAndTarget(conn), failsWith(EngineMessage.ACTION_TYPE_FAILED_STORAGE_CONNECTION_EXTENSION_ALREADY_EXISTS));
}
}