package org.ovirt.engine.api.restapi.types;
import org.junit.Test;
import org.ovirt.engine.api.model.HostStorage;
import org.ovirt.engine.api.model.LogicalUnit;
import org.ovirt.engine.api.model.LunStatus;
import org.ovirt.engine.api.model.StorageType;
import org.ovirt.engine.core.common.businessentities.storage.LUNs;
import org.ovirt.engine.core.compat.Guid;
public class StorageLogicalUnitMapperTest extends AbstractInvertibleMappingTest<HostStorage, LUNs, LUNs> {
public StorageLogicalUnitMapperTest() {
super(HostStorage.class, LUNs.class, LUNs.class);
}
@Override
protected HostStorage postPopulate(HostStorage from) {
from.setType(MappingTestHelper.shuffle(StorageType.class));
LogicalUnit unit = new LogicalUnit();
unit.setId(from.getId());
from.getLogicalUnits().unsetLogicalUnits();
from.getLogicalUnits().getLogicalUnits().add(unit);
return from;
}
@Override
protected void verify(HostStorage model, HostStorage transform) {
assertNotNull(transform);
assertEquals(model.getId(), transform.getId());
assertEquals(model.getType(), transform.getType());
assertEquals(model.getLogicalUnits().getLogicalUnits().size(), model.getLogicalUnits().getLogicalUnits().size());
for (int i = 0; i < model.getLogicalUnits().getLogicalUnits().size(); i++) {
assertEquals(model.getLogicalUnits().getLogicalUnits().get(i).getId(),
transform.getLogicalUnits().getLogicalUnits().get(i).getId());
}
}
@Test
public void testOneWayMapping() {
LUNs model = new LUNs();
model.setVendorId("vendor_id_1");
model.setProductId("product_id_1");
model.setLunMapping(5);
model.setSerial("some_serial");
model.setVolumeGroupId("volume_group_id_1");
model.setStorageDomainId(Guid.Empty);
model.setDiskId(Guid.Empty);
model.setStatus(org.ovirt.engine.core.common.businessentities.storage.LunStatus.Free);
LogicalUnit entity = StorageLogicalUnitMapper.map(model, (LogicalUnit) null);
assertEquals("vendor_id_1", entity.getVendorId());
assertEquals("product_id_1", entity.getProductId());
assertEquals("some_serial", entity.getSerial());
assertEquals(Integer.valueOf(5), entity.getLunMapping());
assertEquals("volume_group_id_1", entity.getVolumeGroupId());
assertEquals(entity.getStorageDomainId(), Guid.Empty.toString());
assertEquals(entity.getDiskId(), Guid.Empty.toString());
assertEquals(LunStatus.FREE, entity.getStatus());
}
@Test
public void testStorageDomainMappings() {
assertEquals(LunStatus.FREE, StorageLogicalUnitMapper.map(org.ovirt.engine.core.common.businessentities.storage.LunStatus.Free, null));
assertEquals(LunStatus.USED, StorageLogicalUnitMapper.map(org.ovirt.engine.core.common.businessentities.storage.LunStatus.Used, null));
assertEquals(LunStatus.UNUSABLE, StorageLogicalUnitMapper.map(org.ovirt.engine.core.common.businessentities.storage.LunStatus.Unusable, null));
}
}