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.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; import org.openstack.atlas.service.domain.entities.CertificateMapping; import org.openstack.atlas.service.domain.entities.LoadBalancer; @RunWith(Enclosed.class) public class DomainToDataModelCertificateMappingTest { private static final String publicDozerConfigFile = "loadbalancing-dozer-mapping.xml"; public static class DefaultMapping { private DozerBeanMapper mapper; private CertificateMapping certificateMapping; private org.openstack.atlas.docs.loadbalancers.api.v1.CertificateMapping dataModelCertificateMapping; @Before public void setUp() { mapper = MapperBuilder.getConfiguredMapper(publicDozerConfigFile); certificateMapping = createHydratedCertificateMapping(); } @Test public void shouldMapAllAttributesExceptPrivateKey() { dataModelCertificateMapping = mapper.map(certificateMapping, org.openstack.atlas.docs.loadbalancers.api.v1.CertificateMapping.class); Assert.assertNull(dataModelCertificateMapping.getPrivateKey()); Assert.assertNotNull(dataModelCertificateMapping.getCertificate()); Assert.assertNotNull(dataModelCertificateMapping.getIntermediateCertificate()); Assert.assertNotNull(dataModelCertificateMapping.getId()); Assert.assertNotNull(dataModelCertificateMapping.getHostName()); } @Test public void shouldIgnoreNonNullLoadBalancer() { LoadBalancer lb = new LoadBalancer(); certificateMapping.setLoadbalancer(lb); dataModelCertificateMapping = mapper.map(certificateMapping, org.openstack.atlas.docs.loadbalancers.api.v1.CertificateMapping.class); } } public static class HideKeysAndCertificatesMapping { private DozerBeanMapper mapper; private CertificateMapping certificateMapping; private org.openstack.atlas.docs.loadbalancers.api.v1.CertificateMapping dataModelCertificateMapping; @Before public void setUp() { mapper = MapperBuilder.getConfiguredMapper(publicDozerConfigFile); certificateMapping = createHydratedCertificateMapping(); } @Test public void shouldHideKeysAndCertificates() { dataModelCertificateMapping = mapper.map(certificateMapping, org.openstack.atlas.docs.loadbalancers.api.v1.CertificateMapping.class, "HIDE_KEY_AND_CERTS"); Assert.assertNull(dataModelCertificateMapping.getPrivateKey()); Assert.assertNull(dataModelCertificateMapping.getCertificate()); Assert.assertNull(dataModelCertificateMapping.getIntermediateCertificate()); Assert.assertNotNull(dataModelCertificateMapping.getId()); Assert.assertNotNull(dataModelCertificateMapping.getHostName()); } @Test public void shouldIgnoreNonNullLoadBalancer() { LoadBalancer lb = new LoadBalancer(); certificateMapping.setLoadbalancer(lb); dataModelCertificateMapping = mapper.map(certificateMapping, org.openstack.atlas.docs.loadbalancers.api.v1.CertificateMapping.class, "HIDE_KEY_AND_CERTS"); } } static private CertificateMapping createHydratedCertificateMapping() { CertificateMapping certificateMapping = new CertificateMapping(); certificateMapping.setId(1); certificateMapping.setCertificate("certificate"); certificateMapping.setIntermediateCertificate("intermediate certificate"); certificateMapping.setPrivateKey("private key"); certificateMapping.setHostName("host name"); return certificateMapping; } }