package org.openstack.atlas.api.mapper.dozer; import org.dozer.DozerBeanMapper; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.openstack.atlas.api.mapper.DomainToRestModel; import org.openstack.atlas.docs.loadbalancers.api.v1.LimitTypes; import org.openstack.atlas.docs.loadbalancers.api.v1.Limits; import org.openstack.atlas.service.domain.entities.AccountLimitType; import org.openstack.atlas.service.domain.entities.LimitType; import java.util.ArrayList; import java.util.List; public class DomainToRestModelTest { private static final String publicDozerConfigFile = "loadbalancing-dozer-mapping.xml"; private static final String managementDozerConfigFile = "loadbalancing-dozer-management-mapping.xml"; private DozerBeanMapper mapper; private Limits rLimits; private List<LimitType> dLimitList; private LimitTypes rLimitTypes; String[] lts; @Before public void setUp() { int i; lts = new String[]{"ACCESS_LIST_LIMIT|100|Max number of items for an access list", "BATCH_DELETE_LIMIT|10|Max number of items that can be deleted for batch delete operations|", "IPV6_LIMIT|25|Max number of IPv6 addresses for a load balancer", "LOADBALANCER_LIMIT|25|Max number of load balancers for an account", "NODE_LIMIT|25|Max number of nodes for a load balancer"}; dLimitList = new ArrayList<LimitType>(); rLimits = new Limits(); rLimitTypes = new LimitTypes(); for (i = 0; i < lts.length; i++) { LimitType dLimitType = new LimitType(); org.openstack.atlas.docs.loadbalancers.api.v1.LimitType rLimitType; rLimitType = new org.openstack.atlas.docs.loadbalancers.api.v1.LimitType(); String[] cols = lts[i].split("\\|"); AccountLimitType name = AccountLimitType.valueOf(cols[0]); int defaultValue = Integer.parseInt(cols[1]); String description = cols[2]; dLimitType.setName(name); dLimitType.setDefaultValue(defaultValue); dLimitType.setDescription(description); rLimitType.setDefaultValue(defaultValue); rLimitType.setDescription(description); rLimitType.setName(name.name()); dLimitList.add(dLimitType); rLimitTypes.getLimitTypes().add(rLimitType); } } @Test public void shouldMapListLimitType() { org.openstack.atlas.docs.loadbalancers.api.v1.LimitTypes rlts = DomainToRestModel.LimitTypeList2LimitType(dLimitList); if(rlts==null || rlts.getLimitTypes().size() != dLimitList.size()) { Assert.fail("Error invalid size return during mapping"); } for (int i = 0; i < rlts.getLimitTypes().size(); i++) { org.openstack.atlas.docs.loadbalancers.api.v1.LimitType rlt = rlts.getLimitTypes().get(i); LimitType dlt = dLimitList.get(i); Assert.assertEquals(dlt.getName().name(),rlt.getName()); Assert.assertEquals(dlt.getDefaultValue(), (Integer)rlt.getDefaultValue()); Assert.assertEquals(dlt.getDescription(), rlt.getDescription()); } } private LimitType newdLimitType(int defaultValue, String description, AccountLimitType accountLimitType) { LimitType lt = new LimitType(); lt.setDefaultValue(defaultValue); lt.setDescription(description); lt.setName(accountLimitType); return lt; } }