package org.openstack.atlas.service.domain.services; import org.junit.Assert; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; import org.openstack.atlas.docs.loadbalancers.api.v1.SslTermination; import org.openstack.atlas.service.domain.entities.LoadBalancer; import org.openstack.atlas.service.domain.entities.LoadBalancerJoinVip; import org.openstack.atlas.service.domain.entities.VirtualIp; import org.openstack.atlas.service.domain.exceptions.BadRequestException; import org.openstack.atlas.service.domain.exceptions.EntityNotFoundException; import org.openstack.atlas.service.domain.exceptions.ImmutableEntityException; import org.openstack.atlas.service.domain.exceptions.UnprocessableEntityException; import org.openstack.atlas.service.domain.repository.LoadBalancerRepository; import org.openstack.atlas.service.domain.repository.SslTerminationRepository; import org.openstack.atlas.service.domain.services.impl.LoadBalancerServiceImpl; import org.openstack.atlas.service.domain.services.impl.SslTerminationServiceImpl; import java.util.HashSet; import java.util.Set; import static org.mockito.Mockito.mock; @RunWith(Enclosed.class) public class SslTerminationImplTest { public static class sslTerminationOperations { Integer accountId = 1234; LoadBalancerRepository lbRepository; SslTerminationRepository sslTerminationRepository; SslTerminationService sslTerminationService; LoadBalancerService loadBalancerService; LoadBalancer lb; LoadBalancer lb2; LoadBalancerJoinVip lbjv; Set<LoadBalancerJoinVip> lbjvs; VirtualIp vip; SslTermination ssl1; SslTermination ssl2; @Before public void standUp() { lbRepository = mock(LoadBalancerRepository.class); sslTerminationRepository = mock(SslTerminationRepository.class); sslTerminationService = new SslTerminationServiceImpl(); loadBalancerService = new LoadBalancerServiceImpl(); } @Before public void standUpObjects() { lb = new LoadBalancer(); lb2 = new LoadBalancer(); lbjv = new LoadBalancerJoinVip(); lbjvs = new HashSet<LoadBalancerJoinVip>(); vip = new VirtualIp(); ssl1 = new SslTermination(); ssl2 = new SslTermination(); ssl1.setCertificate("aCert"); ssl1.setPrivatekey("aKey"); ssl1.setEnabled(true); ssl1.setSecurePort(443); ssl1.setSecureTrafficOnly(false); ssl2.setCertificate("aCert2"); ssl2.setPrivatekey("aKey2"); ssl2.setEnabled(true); ssl2.setSecurePort(446); ssl2.setSecureTrafficOnly(false); // lb.setSslTermination(ssl1); // lb2.setSslTermination(ssl2); vip.setIpAddress("192.3.3.3"); lbjv.setVirtualIp(vip); lbjvs.add(lbjv); lb.setLoadBalancerJoinVipSet(lbjvs); } //Testing components in helpers test @Ignore @Test public void shouldReturnFalseIfNoTermination() throws EntityNotFoundException { Assert.assertFalse(sslTerminationService.getSslTermination(lb.getId(), accountId) == null); } @Ignore @Test public void shouldReturnTrueWhenSslTerminationIsValid() throws EntityNotFoundException, BadRequestException, ImmutableEntityException, UnprocessableEntityException { try { Assert.assertTrue(sslTerminationService.updateSslTermination(lb.getId(), accountId, ssl1, false) != null); } catch (Exception ex) { Assert.fail(ex.toString()); } } @Ignore @Test public void shouldFailWhenSslTerminationDidNotPassChecks() throws EntityNotFoundException, BadRequestException, ImmutableEntityException, UnprocessableEntityException { try { Assert.assertFalse(sslTerminationService.updateSslTermination(lb.getId(), accountId, ssl1, false) == null); } catch (Exception ex) { Assert.fail(ex.toString()); } } } }