package org.ovirt.engine.core.bll; import static org.mockito.Mockito.verify; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.ovirt.engine.core.common.action.VdsActionParameters; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VdsSpmIdMap; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.VdsSpmIdMapDao; public class AddVdsSpmIdCommandTest extends BaseCommandTest { @InjectMocks private AddVdsSpmIdCommand<VdsActionParameters> cmd = new AddVdsSpmIdCommand<>(new VdsActionParameters(), null); private Guid spId; private Guid vdsId; @Mock private VdsSpmIdMapDao vdsSpmIdMapDao; @Before public void setUp() { spId = Guid.newGuid(); vdsId = Guid.newGuid(); VDS vds = new VDS(); vds.setId(vdsId); vds.setStoragePoolId(spId); cmd.setVds(vds); } @Test public void fromOne() { insertSpmIdToDb(3, 1, 2); } @Test public void oneMissing() { insertSpmIdToDb(1, 4, 3); } @Test public void empty() { insertSpmIdToDb(1); } @Test public void hole() { insertSpmIdToDb(2, 3, 1, 4); } private void insertSpmIdToDb(int expected, int... given) { List<VdsSpmIdMap> list = Arrays.stream(given).mapToObj(i -> new VdsSpmIdMap(spId, vdsId, i)).collect(Collectors.toList()); cmd.insertSpmIdToDb(list); verify(vdsSpmIdMapDao).save(new VdsSpmIdMap(spId, vdsId, expected)); } }