package org.ovirt.engine.core.bll.hostdeploy; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.ovirt.engine.core.bll.validator.UpdateHostValidator; import org.ovirt.engine.core.common.action.VdsOperationActionParameters.AuthenticationMethod; import org.ovirt.engine.core.common.action.hostdeploy.UpdateVdsActionParameters; import org.ovirt.engine.core.common.businessentities.HostedEngineDeployConfiguration; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.core.dao.VdsDao; public class UpdateVdsCommandTest { private static final Guid HOST_ID = Guid.newGuid(); private static final Guid CLUSTER_ID = Guid.newGuid(); private static final Version CLUSTER_VERSION = new Version("1.2.3"); private static final String PASSWORD = "password"; private static final HostedEngineDeployConfiguration HOSTED_ENGINE_DEPLOY_CONFIGURATION = new HostedEngineDeployConfiguration(); @Mock private VdsDao vdsDaoMock; @Mock private UpdateHostValidator updateHostValidator; @InjectMocks private UpdateVdsCommand<UpdateVdsActionParameters> underTestCommand; private VDS newHost; private VDS oldHost; private UpdateVdsActionParameters parameters; @Before public void setUp() { newHost = createTestHost(HOST_ID); parameters = createParameters(newHost); underTestCommand = new UpdateVdsCommand<>(parameters, null); MockitoAnnotations.initMocks(this); underTestCommand = spy(underTestCommand); oldHost = createOldHost(newHost); doReturn(updateHostValidator) .when(underTestCommand) .getUpdateHostValidator(oldHost, parameters.getvds(), parameters.isInstallHost()); } @Test public void testValidate() { when(vdsDaoMock.get(HOST_ID)).thenReturn(oldHost); assertTrue(underTestCommand.validate()); } private VDS createOldHost(VDS host) { VDS oldHost = host.clone(); oldHost.setVdsName("FOO"); return oldHost; } private VDS createTestHost(Guid hostId) { VDS host = new VDS(); host.setHostName("BUZZ"); host.setVdsName("BAR"); host.setClusterCompatibilityVersion(CLUSTER_VERSION); host.setClusterId(CLUSTER_ID); host.setId(hostId); return host; } private UpdateVdsActionParameters createParameters(VDS host) { UpdateVdsActionParameters parameters = new UpdateVdsActionParameters(); parameters.setvds(host); parameters.setVdsId(host.getId()); parameters.setAuthMethod(AuthenticationMethod.PublicKey); parameters.setPassword(PASSWORD); parameters.setHostedEngineDeployConfiguration(HOSTED_ENGINE_DEPLOY_CONFIGURATION); return parameters; } }