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.ExtendedAccountLoadbalancer;
import org.openstack.atlas.docs.loadbalancers.api.v1.VipType;
import org.openstack.atlas.service.domain.entities.*;
import org.openstack.atlas.service.domain.pojos.ExtendedAccountLoadBalancer;
import java.util.Arrays;
import java.util.Set;
@RunWith(Enclosed.class)
public class ExtendedAccountLoadBalancerMapperTest {
private static final String managementDozerConfigFile = "loadbalancing-dozer-management-mapping.xml";
public static class WhenMappingExtendedAccountLoadBalancer {
private ExtendedAccountLoadBalancer ealb;
private Set<LoadBalancerJoinVip> loadBalancerJoinVipSet;
private Set<LoadBalancerJoinVip6> loadBalancerJoinVip6Set;
private LoadBalancer loadBalancer;
private DozerBeanMapper mapper;
@Before
public void setUp() {
mapper = MapperBuilder.getConfiguredMapper(managementDozerConfigFile);
loadBalancer = new LoadBalancer();
loadBalancer.setId(100);
loadBalancer.setName("LB 1");
loadBalancer.setPort(9999);
loadBalancer.setProtocol(LoadBalancerProtocol.UDP);
loadBalancer.setAlgorithm(LoadBalancerAlgorithm.LEAST_CONNECTIONS);
loadBalancer.setStatus(LoadBalancerStatus.ACTIVE);
loadBalancer.setConnectionLogging(true);
Node node1 = new Node();
node1.setId(4100);
node1.setPort(80);
node1.setCondition(NodeCondition.DISABLED);
Node node2 = new Node();
node2.setId(4101);
node2.setPort(85);
node2.setCondition(NodeCondition.DRAINING);
node2.setStatus(NodeStatus.OFFLINE);
loadBalancer.getNodes().add(node1);
loadBalancer.getNodes().add(node2);
VirtualIp virtualIp1 = new VirtualIp();
virtualIp1.setId(2000);
virtualIp1.setVipType(VirtualIpType.PUBLIC);
ealb = new ExtendedAccountLoadBalancer();
ealb.setClusterId(1234);
ealb.setLoadBalancerId(1);
ealb.setClusterName("testCluster");
ealb.setProtocol("UDP");
ealb.setRegion(DataCenter.DFW);
ealb.setStatus("ONLINE");
ealb.setLoadBalancerName(loadBalancer.getName());
LoadBalancerJoinVip jv = new LoadBalancerJoinVip(loadBalancer.getPort(), loadBalancer, virtualIp1);
// LoadBalancerJoinVip6 jv6 = new LoadBalancerJoinVip6(loadBalancer.getPort(), loadBalancer, virtualIp6);
ealb.getLoadBalancerJoinVipSet().add(jv);
}
@Test
public void shouldMapExtendedAccountLoadBalancer() {
try {
ExtendedAccountLoadbalancer ealb1 = mapper.map(ealb, ExtendedAccountLoadbalancer.class, "SIMPLE_VIP_CPLB");
Assert.assertTrue("ExtendedAccountLoadBalancer classes mapped successfully.", true);
} catch (Exception e) {
System.out.println(Arrays.toString(e.getStackTrace()));
Assert.fail(e.getMessage());
}
}
@Test
public void shoulMapClusterName() {
try {
ExtendedAccountLoadbalancer ealb1 = mapper.map(ealb, ExtendedAccountLoadbalancer.class, "SIMPLE_VIP_CPLB");
Assert.assertEquals("testCluster", ealb1.getClusterName());
} catch (Exception e) {
System.out.println(Arrays.toString(e.getStackTrace()));
Assert.fail(e.getMessage());
}
}
@Test
public void shoulMapClusterID() {
try {
ExtendedAccountLoadbalancer ealb1 = mapper.map(ealb, ExtendedAccountLoadbalancer.class, "SIMPLE_VIP_CPLB");
Assert.assertEquals((Integer) 1234, ealb1.getClusterId());
} catch (Exception e) {
System.out.println(Arrays.toString(e.getStackTrace()));
Assert.fail(e.getMessage());
}
}
@Test
public void shoulMapLoadBalancerID() {
try {
ExtendedAccountLoadbalancer ealb1 = mapper.map(ealb, ExtendedAccountLoadbalancer.class, "SIMPLE_VIP_CPLB");
Assert.assertEquals((Integer) 1, ealb1.getLoadBalancerId());
} catch (Exception e) {
System.out.println(Arrays.toString(e.getStackTrace()));
Assert.fail(e.getMessage());
}
}
@Test
public void shoulMapLoadBalancerName() {
try {
ExtendedAccountLoadbalancer ealb1 = mapper.map(ealb, ExtendedAccountLoadbalancer.class, "SIMPLE_VIP_CPLB");
Assert.assertEquals("LB 1", ealb1.getLoadBalancerName());
} catch (Exception e) {
System.out.println(Arrays.toString(e.getStackTrace()));
Assert.fail(e.getMessage());
}
}
@Test
public void shoulMapRegion() {
try {
ExtendedAccountLoadbalancer ealb1 = mapper.map(ealb, ExtendedAccountLoadbalancer.class, "SIMPLE_VIP_CPLB");
Assert.assertEquals(org.openstack.atlas.docs.loadbalancers.api.management.v1.DataCenter.DFW, ealb1.getRegion());
} catch (Exception e) {
System.out.println(Arrays.toString(e.getStackTrace()));
Assert.fail(e.getMessage());
}
}
@Test
public void shoulMapStatus() {
try {
ExtendedAccountLoadbalancer ealb1 = mapper.map(ealb, ExtendedAccountLoadbalancer.class, "SIMPLE_VIP_CPLB");
Assert.assertEquals("ONLINE", ealb1.getStatus());
} catch (Exception e) {
System.out.println(Arrays.toString(e.getStackTrace()));
Assert.fail(e.getMessage());
}
}
@Test
public void shoulMapProtocol() {
try {
ExtendedAccountLoadbalancer ealb1 = mapper.map(ealb, ExtendedAccountLoadbalancer.class, "SIMPLE_VIP_CPLB");
Assert.assertEquals("UDP", ealb1.getProtocol());
} catch (Exception e) {
System.out.println(Arrays.toString(e.getStackTrace()));
Assert.fail(e.getMessage());
}
}
@Test
public void shoulMapVipType() {
try {
ExtendedAccountLoadbalancer ealb1 = mapper.map(ealb, ExtendedAccountLoadbalancer.class, "SIMPLE_VIP_CPLB");
org.openstack.atlas.docs.loadbalancers.api.v1.VirtualIp vip = ealb1.getVirtualIps().get(0);
Assert.assertEquals(VipType.PUBLIC, vip.getType());
} catch (Exception e) {
System.out.println(Arrays.toString(e.getStackTrace()));
Assert.fail(e.getMessage());
}
}
@Test
public void shoulMapVipVersion() {
try {
ExtendedAccountLoadbalancer ealb1 = mapper.map(ealb, ExtendedAccountLoadbalancer.class, "SIMPLE_VIP_CPLB");
org.openstack.atlas.docs.loadbalancers.api.v1.VirtualIp vip = ealb1.getVirtualIps().get(0);
Assert.assertEquals(org.openstack.atlas.docs.loadbalancers.api.v1.IpVersion.IPV4, vip.getIpVersion());
} catch (Exception e) {
System.out.println(Arrays.toString(e.getStackTrace()));
Assert.fail(e.getMessage());
}
}
@Test
public void shoulMapVipID() {
try {
ExtendedAccountLoadbalancer ealb1 = mapper.map(ealb, ExtendedAccountLoadbalancer.class, "SIMPLE_VIP_CPLB");
org.openstack.atlas.docs.loadbalancers.api.v1.VirtualIp vip = ealb1.getVirtualIps().get(0);
Assert.assertEquals((Integer)2000, vip.getId());
} catch (Exception e) {
System.out.println(Arrays.toString(e.getStackTrace()));
Assert.fail(e.getMessage());
}
}
}
}