package org.openstack.atlas.api.mgmt.mapper.dozer; import org.dozer.DozerBeanMapper; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; import org.openstack.atlas.docs.loadbalancers.api.management.v1.AllAbsoluteLimits; import org.openstack.atlas.service.domain.entities.AccountLimit; import org.openstack.atlas.service.domain.entities.AccountLimitType; import org.openstack.atlas.service.domain.entities.LimitType; import java.util.ArrayList; import java.util.List; @RunWith(Enclosed.class) public class AllAbsoluteListTest { private static final String managementDozerConfigFile = "loadbalancing-dozer-management-mapping.xml"; public static class When_mapping_a_load_balancer_from_datamodel_to_domain { private org.openstack.atlas.service.domain.pojos.AllAbsoluteLimits limits; private DozerBeanMapper mapper; @Before public void setUp() { mapper = MapperBuilder.getConfiguredMapper(managementDozerConfigFile); AccountLimit customLimit = new AccountLimit(); customLimit.setAccountId(1234); customLimit.setId(1); customLimit.setLimit(30); customLimit.setUserName("testUser"); LimitType type = new LimitType(); type.setDefaultValue(25); type.setDescription("I am a test description"); type.setName(AccountLimitType.LOADBALANCER_LIMIT); customLimit.setLimitType(type); List<AccountLimit> customLimits = new ArrayList<AccountLimit>(); customLimits.add(customLimit); LimitType lType = new LimitType(); lType.setDefaultValue(15); lType.setDescription("I am another test description"); lType.setName(AccountLimitType.ACCESS_LIST_LIMIT); List<LimitType> defaultLimits = new ArrayList<LimitType>(); defaultLimits.add(lType); limits = new org.openstack.atlas.service.domain.pojos.AllAbsoluteLimits(); limits.setCustomLimits(customLimits); limits.setDefaultLimits(defaultLimits); } @Test public void shouldMapAllAbsoluteLimitsClasses() { try { AllAbsoluteLimits mapLimits = mapper.map(limits, AllAbsoluteLimits.class); Assert.assertTrue("AllAbsoluteLimits classes mapped successfully.", true); } catch (Exception e) { Assert.fail(e.getMessage()); } } @Test public void shouldMap5CustomAbsoluteLimits() { try { limits.setDefaultLimits(new ArrayList<LimitType>()); add4CustomLimits(limits); AllAbsoluteLimits mapLimits = mapper.map(limits, AllAbsoluteLimits.class); Assert.assertTrue("AllAbsoluteLimits with all custom limits mapped successfully.", true); } catch (Exception e) { Assert.fail(e.getMessage()); } } @Test public void shouldMap5DefaultAbsoluteLimits() { try { limits.setCustomLimits(new ArrayList<AccountLimit>()); add4DefaultLimits(limits); AllAbsoluteLimits mapLimits = mapper.map(limits, AllAbsoluteLimits.class); Assert.assertTrue("AllAbsoluteLimits with all default limits mapped successfully.", true); } catch (Exception e) { Assert.fail(e.getMessage()); } } private void add4CustomLimits (org.openstack.atlas.service.domain.pojos.AllAbsoluteLimits limits) { List<AccountLimit> customLimits = new ArrayList<AccountLimit>(); AccountLimit customLimit2 = new AccountLimit(); customLimit2.setAccountId(1234); customLimit2.setId(2); customLimit2.setLimit(30); customLimit2.setUserName("testUser"); LimitType type2 = new LimitType(); type2.setDefaultValue(25); type2.setDescription("I am a test description"); type2.setName(AccountLimitType.IPV6_LIMIT); customLimit2.setLimitType(type2); customLimits.add(customLimit2); AccountLimit customLimit3 = new AccountLimit(); customLimit3.setAccountId(1234); customLimit3.setId(3); customLimit3.setLimit(30); customLimit3.setUserName("testUser"); LimitType type3 = new LimitType(); type3.setDefaultValue(25); type3.setDescription("I am a test description"); type3.setName(AccountLimitType.NODE_LIMIT); customLimit3.setLimitType(type3); customLimits.add(customLimit3); AccountLimit customLimit4 = new AccountLimit(); customLimit4.setAccountId(1234); customLimit4.setId(4); customLimit4.setLimit(30); customLimit4.setUserName("testUser"); LimitType type4 = new LimitType(); type4.setDefaultValue(25); type4.setDescription("I am a test description"); type4.setName(AccountLimitType.ACCESS_LIST_LIMIT); customLimit4.setLimitType(type4); customLimits.add(customLimit4); AccountLimit customLimit5 = new AccountLimit(); customLimit5.setAccountId(1234); customLimit5.setId(5); customLimit5.setLimit(30); customLimit5.setUserName("testUser"); LimitType type5 = new LimitType(); type5.setDefaultValue(25); type5.setDescription("I am a test description"); type5.setName(AccountLimitType.BATCH_DELETE_LIMIT); customLimit5.setLimitType(type5); customLimits.add(customLimit5); limits.getCustomLimits().addAll(customLimits); } private void add4DefaultLimits (org.openstack.atlas.service.domain.pojos.AllAbsoluteLimits limits) { List<LimitType> defaultLimits = new ArrayList<LimitType>(); LimitType lType2 = new LimitType(); lType2.setDefaultValue(15); lType2.setDescription("I am another test description"); lType2.setName(AccountLimitType.IPV6_LIMIT); defaultLimits.add(lType2); LimitType lType3 = new LimitType(); lType3.setDefaultValue(15); lType3.setDescription("I am another test description"); lType3.setName(AccountLimitType.NODE_LIMIT); defaultLimits.add(lType3); LimitType lType4 = new LimitType(); lType4.setDefaultValue(15); lType4.setDescription("I am another test description"); lType4.setName(AccountLimitType.BATCH_DELETE_LIMIT); defaultLimits.add(lType4); LimitType lType5 = new LimitType(); lType5.setDefaultValue(15); lType5.setDescription("I am another test description"); lType5.setName(AccountLimitType.LOADBALANCER_LIMIT); defaultLimits.add(lType5); limits.getDefaultLimits().addAll(defaultLimits); } } }