package org.ovirt.engine.core.bll.gluster; import static org.mockito.Mockito.doReturn; import java.util.Collections; import java.util.List; import org.junit.Before; import org.ovirt.engine.core.bll.utils.GlusterGeoRepUtil; import org.ovirt.engine.core.common.businessentities.Cluster; import org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSession; import org.ovirt.engine.core.common.businessentities.gluster.GlusterStatus; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSizeInfo; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeType; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.core.dao.ClusterDao; import org.ovirt.engine.core.dao.gluster.GlusterGeoRepDao; public class GeoRepCreateEligibilityBaseTest { private Guid MASTER_CLUSTER_ID = Guid.newGuid(); private Guid SLAVE_CLUSTER_ID = Guid.newGuid(); private Guid MASTER_VOLUME_ID = Guid.newGuid(); private Guid SLAVE_VOLUME_1_ID = Guid.newGuid(); private Guid SLAVE_VOLUME_2_ID = Guid.newGuid(); private Guid SLAVE_VOLUME_3_ID = Guid.newGuid(); private Guid SLAVE_VOLUME_4_ID = Guid.newGuid(); private static final Version CLUSTER_COMPATIBILITY_VERSION = Version.getLast(); public GeoRepCreateEligibilityBaseTest() { super(); } protected GlusterVolumeEntity getMasterVolume() { return getGlusterVolume(MASTER_VOLUME_ID, MASTER_CLUSTER_ID, GlusterStatus.UP, new GlusterVolumeSizeInfo(10000L, 4000L, 6000L)); } @Before public void setupMock(GlusterGeoRepUtil geoRepUtil, GlusterGeoRepDao geoRepDao, ClusterDao clusterDao) { doReturn(geoRepDao).when(geoRepUtil).getGeoRepDao(); doReturn(getGeoRepSessions()).when(geoRepDao).getAllSessions(); doReturn(clusterDao).when(geoRepUtil).getClusterDao(); doReturn(getCluster(MASTER_CLUSTER_ID, CLUSTER_COMPATIBILITY_VERSION)).when(clusterDao).get(MASTER_CLUSTER_ID); doReturn(getCluster(SLAVE_CLUSTER_ID, CLUSTER_COMPATIBILITY_VERSION)).when(clusterDao).get(SLAVE_CLUSTER_ID); } protected GlusterVolumeEntity getGlusterVolume(Guid volumeId, Guid clusterId, GlusterStatus status, GlusterVolumeSizeInfo sizeInfo) { GlusterVolumeEntity volume = new GlusterVolumeEntity(); volume.setId(volumeId); volume.setClusterId(clusterId); volume.setStatus(status); volume.getAdvancedDetails().setCapacityInfo(sizeInfo); volume.setName(volumeId.toString()); volume.setVolumeType(GlusterVolumeType.DISTRIBUTE); return volume; } protected Cluster getCluster(Guid clusterId, Version compatibilityVersion) { Cluster cluster = new Cluster(); cluster.setId(clusterId); cluster.setCompatibilityVersion(compatibilityVersion); return cluster; } protected GlusterGeoRepSession getSession(Guid slaveVolumeId) { GlusterGeoRepSession session = new GlusterGeoRepSession(); session.setId(Guid.newGuid()); session.setMasterVolumeId(Guid.newGuid()); session.setSlaveVolumeId(slaveVolumeId); return session; } protected List<GlusterGeoRepSession> getGeoRepSessions() { return Collections.singletonList(getSession(SLAVE_VOLUME_2_ID)); } public Guid getMASTER_CLUSTER_ID() { return MASTER_CLUSTER_ID; } public Guid getSLAVE_CLUSTER_ID() { return SLAVE_CLUSTER_ID; } public Guid getMASTER_VOLUME_ID() { return MASTER_VOLUME_ID; } public Guid getSLAVE_VOLUME_1_ID() { return SLAVE_VOLUME_1_ID; } public Guid getSLAVE_VOLUME_2_ID() { return SLAVE_VOLUME_2_ID; } public Guid getSLAVE_VOLUME_3_ID() { return SLAVE_VOLUME_3_ID; } public Guid getSLAVE_VOLUME_4_ID() { return SLAVE_VOLUME_4_ID; } public Version getCLUSTER_COMPATIBILITY_VERSION() { return CLUSTER_COMPATIBILITY_VERSION; } }