package org.ovirt.engine.api.restapi.types; import org.junit.Test; import org.ovirt.engine.api.model.DataCenter; import org.ovirt.engine.api.model.DataCenterStatus; import org.ovirt.engine.api.model.QuotaModeType; import org.ovirt.engine.api.model.StorageFormat; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.StoragePoolStatus; public class DataCenterMapperTest extends AbstractInvertibleMappingTest<DataCenter, StoragePool, StoragePool> { public DataCenterMapperTest() { super(DataCenter.class, StoragePool.class, StoragePool.class); } @Override protected DataCenter postPopulate(DataCenter model) { model.setStorageFormat(MappingTestHelper.shuffle(StorageFormat.class)); model.setQuotaMode(MappingTestHelper.shuffle(QuotaModeType.class)); return model; } @Override protected void verify(DataCenter model, DataCenter transform) { assertNotNull(transform); assertEquals(model.getName(), transform.getName()); assertEquals(model.getId(), transform.getId()); assertEquals(model.getDescription(), transform.getDescription()); assertEquals(model.getComment(), transform.getComment()); assertEquals(model.isLocal(), transform.isLocal()); assertEquals(model.getStorageFormat(), transform.getStorageFormat()); assertEquals(model.getMacPool().getId(), transform.getMacPool().getId()); assertEquals(model.getQuotaMode(), transform.getQuotaMode()); } @Test //this test was added to support 'status' field, which has only a one-way mapping (from Backend entity to REST entity). //The generic test does a round-trip, which would fail when there's only one-way mapping. public void testFromBackendToRest() { testStatusMapping(StoragePoolStatus.Contend, DataCenterStatus.CONTEND); testStatusMapping(StoragePoolStatus.Maintenance, DataCenterStatus.MAINTENANCE); testStatusMapping(StoragePoolStatus.NotOperational, DataCenterStatus.NOT_OPERATIONAL); testStatusMapping(StoragePoolStatus.NonResponsive, DataCenterStatus.PROBLEMATIC); testStatusMapping(StoragePoolStatus.Uninitialized, DataCenterStatus.UNINITIALIZED); testStatusMapping(StoragePoolStatus.Up, DataCenterStatus.UP); } private void testStatusMapping(StoragePoolStatus storagePoolStatus, DataCenterStatus dataCenterStatus) { StoragePool storagePool = new StoragePool(); storagePool.setStatus(storagePoolStatus); DataCenter dataCenter = DataCenterMapper.map(storagePool, null); assertEquals(dataCenter.getStatus(), dataCenterStatus); } }