package org.ovirt.engine.api.restapi.resource; import java.util.ArrayList; import java.util.List; import org.ovirt.engine.api.model.Icon; import org.ovirt.engine.core.common.businessentities.VmIcon; import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; import org.ovirt.engine.core.common.queries.VdcQueryType; public class BackendIconsResourceTest extends AbstractBackendCollectionResourceTest<Icon, VmIcon, BackendIconsResource> { private static final String[] DATA_URLS = new String[] { "data:image/png;base64,iVB0", "data:image/png;base64,iVB1", "data:image/png;base64,iVB2", "data:image/png;base64,iVB3", }; public BackendIconsResourceTest() { super(new BackendIconsResource(), null, ""); } @Override protected List<Icon> getCollection() { return collection.list().getIcons(); } @Override protected VmIcon getEntity(int index) { final VmIcon entity = new VmIcon(); return setupEntityExpectations(entity, index); } private static VmIcon setupEntityExpectations(VmIcon entity, int index) { entity.setId(GUIDS[index]); entity.setDataUrl(DATA_URLS[index]); return entity; } @Override protected void verifyModel(Icon model, int index) { verifyIconModel(model, index); verifyLinks(model); } public static void verifyIconModel(Icon model, int index) { assertEquals(VmIcon.dataUrlToTypeAndData( DATA_URLS[index]).getFirst(), model.getMediaType()); assertEquals(VmIcon.dataUrlToTypeAndData(DATA_URLS[index]).getSecond(), model.getData()); assertEquals(GUIDS[index].toString(), model.getId()); } @Override protected void setUpQueryExpectations(String query, Object failure) throws Exception { setUpEntityQueryExpectations(VdcQueryType.GetAllVmIcons, VdcQueryParametersBase.class, new String[] {}, new Object[] {}, setUpVmIcons(), failure); } public static List<VmIcon> setUpVmIcons() { final List<VmIcon> result = new ArrayList<>(); // iterating over NAMES, because it is shorter than GUIDS and it is used in verifyCollection() method for (int i = 0; i < NAMES.length; i++) { final VmIcon vmIcon = new VmIcon(GUIDS[i], DATA_URLS[i]); result.add(vmIcon); } return result; } }