package org.openstack.atlas.api.mgmt.mapper.dozer;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
import org.dozer.DozerBeanMapper;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.openstack.atlas.api.mapper.dozer.MapperBuilder;
import org.openstack.atlas.api.mapper.dozer.MapperBuilder;
import org.openstack.atlas.docs.loadbalancers.api.management.v1.ClusterType;
import org.openstack.atlas.util.crypto.HashUtil;
import org.junit.Assert;
public class MiscDomainDataModelDozerTests {
private static final String publicDozerConfigFile = "loadbalancing-dozer-mapping.xml";
private static final String managementDozerConfigFile = "loadbalancing-dozer-management-mapping.xml";
private static final DozerBeanMapper pubMapper;
private static final DozerBeanMapper mgmtMapper;
static {
pubMapper = MapperBuilder.getConfiguredMapper(publicDozerConfigFile);
mgmtMapper = MapperBuilder.getConfiguredMapper(managementDozerConfigFile);
}
@Before
public void setUp() {
}
@Test
public void testAccountMapper() throws NoSuchAlgorithmException, UnsupportedEncodingException {
org.openstack.atlas.docs.loadbalancers.api.management.v1.AccountRecord dataAccountRecord;
org.openstack.atlas.service.domain.entities.Account domainAccount;
int id = 1;
String expSha1 = HashUtil.sha1sumHex("1".getBytes("UTF-8"), 0, 4);
org.openstack.atlas.service.domain.entities.ClusterType domainInteralCluster = org.openstack.atlas.service.domain.entities.ClusterType.INTERNAL;
org.openstack.atlas.docs.loadbalancers.api.management.v1.ClusterType dataInternalCluster = org.openstack.atlas.docs.loadbalancers.api.management.v1.ClusterType.INTERNAL;
org.openstack.atlas.service.domain.entities.ClusterType domainStandardCluster = org.openstack.atlas.service.domain.entities.ClusterType.STANDARD;
org.openstack.atlas.docs.loadbalancers.api.management.v1.ClusterType dataStandardCluster = org.openstack.atlas.docs.loadbalancers.api.management.v1.ClusterType.STANDARD;
dataAccountRecord = newDataAccount(1, expSha1, "INTERAL");
domainAccount = (org.openstack.atlas.service.domain.entities.Account) mgmtMapper.map(dataAccountRecord, org.openstack.atlas.service.domain.entities.Account.class);
Assert.assertTrue(domainAccount.getId().intValue() == id);
Assert.assertTrue(domainAccount.getSha1SumForIpv6().equals(expSha1));
Assert.assertTrue(domainAccount.getClusterType() == domainInteralCluster);
dataAccountRecord = newDataAccount(1, expSha1, null);
domainAccount = (org.openstack.atlas.service.domain.entities.Account) mgmtMapper.map(dataAccountRecord, org.openstack.atlas.service.domain.entities.Account.class);
Assert.assertTrue(domainAccount.getId().intValue() == id);
Assert.assertTrue(domainAccount.getSha1SumForIpv6().equals(expSha1));
Assert.assertTrue(domainAccount.getClusterType() == domainStandardCluster);
domainAccount = newDomainAccount(id, expSha1, "INTERNAL");
dataAccountRecord = (org.openstack.atlas.docs.loadbalancers.api.management.v1.AccountRecord) mgmtMapper.map(domainAccount, org.openstack.atlas.docs.loadbalancers.api.management.v1.AccountRecord.class);
Assert.assertTrue(dataAccountRecord.getId().intValue() == id);
Assert.assertTrue(dataAccountRecord.getSha1SumForIpv6().equals(expSha1));
Assert.assertTrue(dataAccountRecord.getClusterType() == dataInternalCluster);
domainAccount = newDomainAccount(id, expSha1, null);
dataAccountRecord = (org.openstack.atlas.docs.loadbalancers.api.management.v1.AccountRecord) mgmtMapper.map(domainAccount, org.openstack.atlas.docs.loadbalancers.api.management.v1.AccountRecord.class);
Assert.assertTrue(dataAccountRecord.getId().intValue() == id);
Assert.assertTrue(dataAccountRecord.getSha1SumForIpv6().equals(expSha1));
Assert.assertTrue(dataAccountRecord.getClusterType() == null);
nop();
}
public static org.openstack.atlas.docs.loadbalancers.api.management.v1.AccountRecord newDataAccount(int id, String sha1sum, String clusterType) {
org.openstack.atlas.docs.loadbalancers.api.management.v1.AccountRecord ar = new org.openstack.atlas.docs.loadbalancers.api.management.v1.AccountRecord();
ar.setId(new Integer(id));
ar.setSha1SumForIpv6(sha1sum);
if (clusterType != null) {
ar.setClusterType(org.openstack.atlas.docs.loadbalancers.api.management.v1.ClusterType.valueOf(clusterType));
}
return ar;
}
public static org.openstack.atlas.service.domain.entities.Account newDomainAccount(int id, String sha1, String clusterType) {
org.openstack.atlas.service.domain.entities.Account a = new org.openstack.atlas.service.domain.entities.Account();
a.setId(new Integer(id));
a.setSha1SumForIpv6(sha1);
if (clusterType != null) {
a.setClusterType(org.openstack.atlas.service.domain.entities.ClusterType.valueOf(clusterType));
}
return a;
}
private static void nop() {
}
}