package org.ovirt.engine.api.restapi.types;
import static org.ovirt.engine.api.restapi.types.MappingTestHelper.populate;
import org.junit.Test;
import org.ovirt.engine.api.model.Disk;
import org.ovirt.engine.api.model.DiskFormat;
import org.ovirt.engine.api.model.DiskStatus;
import org.ovirt.engine.api.model.HostStorage;
import org.ovirt.engine.core.common.businessentities.storage.LunDisk;
public class LunDiskMapperTest extends AbstractInvertibleMappingTest<Disk, LunDisk, LunDisk> {
public LunDiskMapperTest() {
super(Disk.class, LunDisk.class, LunDisk.class);
}
@Override
protected Disk postPopulate(Disk model) {
model.setFormat(MappingTestHelper.shuffle(DiskFormat.class));
model.setStatus(MappingTestHelper.shuffle(DiskStatus.class));
model.setLunStorage(new HostStorage());
return model;
}
@Override
protected void verify(Disk model, Disk transform) {
assertNotNull(transform);
assertEquals(model.getId(), transform.getId());
assertEquals("unexpected propagate errors", model.isPropagateErrors(), transform.isPropagateErrors());
assertEquals("unexpected wipe after delete", model.isWipeAfterDelete(), transform.isWipeAfterDelete());
assertEquals("unexpected shareable", model.isShareable(), transform.isShareable());
}
@Test
@Override
public void testRoundtrip() throws Exception {
setUpConfigExpectations();
Disk model = Disk.class.cast(populate(Disk.class));
model = postPopulate(model);
Mapper<Disk, org.ovirt.engine.core.common.businessentities.storage.Disk> out =
getMappingLocator().getMapper(Disk.class, org.ovirt.engine.core.common.businessentities.storage.Disk.class);
Mapper<org.ovirt.engine.core.common.businessentities.storage.Disk, Disk> back =
getMappingLocator().getMapper(org.ovirt.engine.core.common.businessentities.storage.Disk.class, Disk.class);
LunDisk to = (LunDisk) out.map(model, null);
LunDisk inverse = getInverse(to);
Disk transform = back.map(inverse, null);
verify(model, transform);
}
}