diff options
author | Michael Lando <ml636r@att.com> | 2018-03-04 14:53:33 +0200 |
---|---|---|
committer | Michael Lando <ml636r@att.com> | 2018-03-07 13:19:05 +0000 |
commit | a5445100050e49e83f73424198d73cd72d672a4d (patch) | |
tree | cacf4df817df31be23e4e790d1dda857bdae061e /catalog-be/src/test/java/org/openecomp/sdc/be/distribution/DistributionBusinessLogicTest.java | |
parent | 51157f92c21976cba4914c378aaa3cba49826931 (diff) |
Sync Integ to Master
Change-Id: I71e3acc26fa612127756ac04073a522b9cc6cd74
Issue-ID: SDC-977
Signed-off-by: Gitelman, Tal (tg851x) <tg851x@intl.att.com>
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/distribution/DistributionBusinessLogicTest.java')
-rw-r--r-- | catalog-be/src/test/java/org/openecomp/sdc/be/distribution/DistributionBusinessLogicTest.java | 477 |
1 files changed, 354 insertions, 123 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/DistributionBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/DistributionBusinessLogicTest.java index 290a5f4d1d..a80999a25b 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/DistributionBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/DistributionBusinessLogicTest.java @@ -20,18 +20,13 @@ package org.openecomp.sdc.be.distribution; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import javax.ws.rs.core.Response; - import org.apache.http.HttpStatus; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.openecomp.sdc.be.components.BaseConfDependentTest; +import org.openecomp.sdc.be.components.BeConfDependentTest; import org.openecomp.sdc.be.components.distribution.engine.CambriaErrorResponse; import org.openecomp.sdc.be.components.distribution.engine.CambriaHandler; import org.openecomp.sdc.be.components.distribution.engine.DistributionEngineInitTask; @@ -43,148 +38,384 @@ import org.openecomp.sdc.be.distribution.api.client.TopicRegistrationResponse; import org.openecomp.sdc.be.distribution.api.client.TopicUnregistrationResponse; import org.openecomp.sdc.common.datastructure.Wrapper; -public class DistributionBusinessLogicTest extends BaseConfDependentTest { - - @InjectMocks - DistributionBusinessLogic distributionBusinessLogic = Mockito.spy(DistributionBusinessLogic.class); - - CambriaHandler cambriaHandler = Mockito.mock(CambriaHandler.class); - AuditHandler auditHandler = Mockito.mock(AuditHandler.class); - - @Test - public void testHandleRegistrationHappyScenario() { - CambriaErrorResponse okResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, HttpStatus.SC_OK); - Mockito.when(cambriaHandler.registerToTopic(Mockito.anyCollection(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.any(SubscriberTypeEnum.class))).thenReturn(okResponse); - - Wrapper<Response> responseWrapper = new Wrapper<>(); - RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", "myEnv"); - distributionBusinessLogic.handleRegistration(responseWrapper, registrationRequest, auditHandler); - - Mockito.verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic(responseWrapper, registrationRequest, SubscriberTypeEnum.PRODUCER); - Mockito.verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic(responseWrapper, registrationRequest, SubscriberTypeEnum.CONSUMER); - Mockito.verify(cambriaHandler, Mockito.times(0)).unRegisterFromTopic(Mockito.anyCollection(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.any(SubscriberTypeEnum.class)); - - assertTrue(!responseWrapper.isEmpty()); - Response response = responseWrapper.getInnerElement(); - assertTrue(response.getStatus() == HttpStatus.SC_OK); - - TopicRegistrationResponse okTopicResponse = (TopicRegistrationResponse) response.getEntity(); - - String expectedStatusTopicName = DistributionEngineInitTask.buildTopicName(configurationManager.getDistributionEngineConfiguration().getDistributionStatusTopicName(), registrationRequest.getDistrEnvName()); - String actualStatusTopicName = okTopicResponse.getDistrStatusTopicName(); - assertEquals(expectedStatusTopicName, actualStatusTopicName); - - String expectedNotificationTopicName = DistributionEngineInitTask.buildTopicName(configurationManager.getDistributionEngineConfiguration().getDistributionNotifTopicName(), registrationRequest.getDistrEnvName()); - String actualNotificationTopicName = okTopicResponse.getDistrNotificationTopicName(); - assertEquals(expectedNotificationTopicName, actualNotificationTopicName); - - } - - @Test - public void testHandleRegistrationFailedScenario() { - CambriaErrorResponse okResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, HttpStatus.SC_OK); - CambriaErrorResponse errorResponse = new CambriaErrorResponse(CambriaOperationStatus.CONNNECTION_ERROR, HttpStatus.SC_SERVICE_UNAVAILABLE); - DistributionEngineConfiguration config = configurationManager.getDistributionEngineConfiguration(); - RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", "myEnv"); - String expectedStatusTopicName = DistributionEngineInitTask.buildTopicName(config.getDistributionStatusTopicName(), registrationRequest.getDistrEnvName()); - String expectedNotificationTopicName = DistributionEngineInitTask.buildTopicName(config.getDistributionNotifTopicName(), registrationRequest.getDistrEnvName()); - - Mockito.when(cambriaHandler.registerToTopic(config.getUebServers(), expectedStatusTopicName, config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.PRODUCER)).thenReturn(okResponse); - Mockito.when(cambriaHandler.registerToTopic(config.getUebServers(), expectedNotificationTopicName, config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.CONSUMER)) - .thenReturn(errorResponse); - - Wrapper<Response> responseWrapper = new Wrapper<>(); +import javax.ws.rs.core.Response; - distributionBusinessLogic.handleRegistration(responseWrapper, registrationRequest, auditHandler); +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import static org.openecomp.sdc.be.components.distribution.engine.DistributionEngineInitTask.buildTopicName; + +public class DistributionBusinessLogicTest extends BeConfDependentTest { + + @InjectMocks + DistributionBusinessLogic distributionBusinessLogic = Mockito.spy(DistributionBusinessLogic.class); + + CambriaHandler cambriaHandler = Mockito.mock(CambriaHandler.class); + AuditHandler auditHandler = Mockito.mock(AuditHandler.class); + + CambriaErrorResponse errorResponse = new CambriaErrorResponse(CambriaOperationStatus.CONNNECTION_ERROR, + HttpStatus.SC_SERVICE_UNAVAILABLE); + CambriaErrorResponse okResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, HttpStatus.SC_OK); + DistributionEngineConfiguration config = configurationManager.getDistributionEngineConfiguration(); + + @Before + public void init() { + MockitoAnnotations.initMocks(this); + Mockito.reset(cambriaHandler); + } + + @Test + public void testHandleRegistrationNoConsumeStatusTopic() { + RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", "myEnv", false); + Wrapper<Response> responseWrapper = new Wrapper<>(); + + testHandleRegistrationBasic(registrationRequest, responseWrapper); + + String expectedStatusTopicName = buildTopicName( + configurationManager.getDistributionEngineConfiguration().getDistributionStatusTopicName(), + registrationRequest.getDistrEnvName()); + verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic(responseWrapper, + registrationRequest, SubscriberTypeEnum.CONSUMER, expectedStatusTopicName); + + } + + @Test + public void testHandleRegistrationConsumeStatusTopic() { + RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", "myEnv", true); + Wrapper<Response> responseWrapper = new Wrapper<>(); + + testHandleRegistrationBasic(registrationRequest, responseWrapper); + + String expectedStatusTopicName = buildTopicName( + configurationManager.getDistributionEngineConfiguration().getDistributionStatusTopicName(), + registrationRequest.getDistrEnvName()); + verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic(responseWrapper, + registrationRequest, SubscriberTypeEnum.CONSUMER, expectedStatusTopicName); + } + /** + * Registration Fails When registering as consumer to Notification With Consumer Status flag false. + */ + @Test + public void testHandleRegistrationFailedScenario() { + + RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", "myEnv", false); + Wrapper<Response> responseWrapper = new Wrapper<>(); + String expectedNotificationTopicName = buildTopicName(config.getDistributionNotifTopicName(), registrationRequest.getDistrEnvName()); + String expectedStatusTopicName = buildTopicName(config.getDistributionStatusTopicName(), registrationRequest.getDistrEnvName()); + + Runnable failWhen = () -> when(cambriaHandler.registerToTopic(config.getUebServers(), config.getUebPublicKey(), + config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.CONSUMER, + expectedNotificationTopicName)).thenReturn(errorResponse); + testHandleRegistrationFailed(registrationRequest, responseWrapper, failWhen); + //Registered + verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic( + responseWrapper,registrationRequest, SubscriberTypeEnum.PRODUCER, + expectedStatusTopicName); + verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic( + responseWrapper, registrationRequest,SubscriberTypeEnum.CONSUMER, + expectedNotificationTopicName); + //Did Not Register + verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( + responseWrapper,registrationRequest, SubscriberTypeEnum.CONSUMER, + expectedStatusTopicName); + //Unregistered Activated (rollback) + verify(cambriaHandler, Mockito.times(1)).unRegisterFromTopic(config.getUebServers(), + config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), + SubscriberTypeEnum.PRODUCER, expectedStatusTopicName); + + verify(cambriaHandler, Mockito.times(0)).unRegisterFromTopic(config.getUebServers(), + config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), + SubscriberTypeEnum.CONSUMER, expectedStatusTopicName); + + } + + /** + * Registration Fails When registering as consumer to Notification With Consumer Status flag true. + */ + @Test + public void testHandleRegistrationFailedConsumeStatusTopic() { + + RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", "myEnv", true); + Wrapper<Response> responseWrapper = new Wrapper<>(); + String expectedNotificationTopicName = buildTopicName(config.getDistributionNotifTopicName(), registrationRequest.getDistrEnvName()); + String expectedStatusTopicName = buildTopicName(config.getDistributionStatusTopicName(), registrationRequest.getDistrEnvName()); + + Runnable failWhen = () -> when(cambriaHandler.registerToTopic(config.getUebServers(), config.getUebPublicKey(), + config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.CONSUMER, + expectedNotificationTopicName)).thenReturn(errorResponse); + testHandleRegistrationFailed(registrationRequest, responseWrapper, failWhen); + + //Registered + verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic( + responseWrapper,registrationRequest, SubscriberTypeEnum.PRODUCER, + expectedStatusTopicName); + verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic( + responseWrapper, registrationRequest,SubscriberTypeEnum.CONSUMER, + expectedNotificationTopicName); + verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic( + responseWrapper,registrationRequest, SubscriberTypeEnum.CONSUMER, + expectedStatusTopicName); + //Unregistered Activated (rollback) + verify(cambriaHandler, Mockito.times(1)).unRegisterFromTopic(config.getUebServers(), + config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), + SubscriberTypeEnum.PRODUCER, expectedStatusTopicName); + verify(cambriaHandler, Mockito.times(1)).unRegisterFromTopic(config.getUebServers(), + config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), + SubscriberTypeEnum.CONSUMER, expectedStatusTopicName); + //Unregistered Not Activated + verify(cambriaHandler, Mockito.times(0)).unRegisterFromTopic(config.getUebServers(), + config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), + SubscriberTypeEnum.CONSUMER, expectedNotificationTopicName); + } + + /** + * Registration Fails When registering as consumer to status With Consumer Status flag true. + */ + @Test + public void testHandleRegistrationFailedConsumeStatusTopic2() { + + RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", "myEnv", true); + Wrapper<Response> responseWrapper = new Wrapper<>(); + String expectedNotificationTopicName = buildTopicName(config.getDistributionNotifTopicName(), registrationRequest.getDistrEnvName()); + String expectedStatusTopicName = buildTopicName(config.getDistributionStatusTopicName(), registrationRequest.getDistrEnvName()); + + //Failing on new registration + Runnable failWhen = () -> when(cambriaHandler.registerToTopic(config.getUebServers(), config.getUebPublicKey(), + config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.CONSUMER, + expectedStatusTopicName)).thenReturn(errorResponse); + testHandleRegistrationFailed(registrationRequest, responseWrapper, failWhen); + //Registered + verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic( + responseWrapper,registrationRequest, SubscriberTypeEnum.PRODUCER, + expectedStatusTopicName); + verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic( + responseWrapper,registrationRequest, SubscriberTypeEnum.CONSUMER, + expectedStatusTopicName); + //Did Not Register + verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( + responseWrapper, registrationRequest,SubscriberTypeEnum.CONSUMER, + expectedNotificationTopicName); + //Unregistered Activated (rollback) + verify(cambriaHandler, Mockito.times(1)).unRegisterFromTopic(config.getUebServers(), + config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), + SubscriberTypeEnum.PRODUCER, expectedStatusTopicName); + //Unregistered Not Activated + verify(cambriaHandler, Mockito.times(0)).unRegisterFromTopic(config.getUebServers(), + config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), + SubscriberTypeEnum.CONSUMER, expectedStatusTopicName); + verify(cambriaHandler, Mockito.times(0)).unRegisterFromTopic(config.getUebServers(), + config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), + SubscriberTypeEnum.CONSUMER, expectedNotificationTopicName); + + } + + + /** + * Registration Fails When registering as PRODUCER to status With Consumer Status flag true. + */ + @Test + public void testHandleRegistrationFailedConsumeStatusTopic3() { + + RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", "myEnv", true); + Wrapper<Response> responseWrapper = new Wrapper<>(); + String expectedNotificationTopicName = buildTopicName(config.getDistributionNotifTopicName(), registrationRequest.getDistrEnvName()); + String expectedStatusTopicName = buildTopicName(config.getDistributionStatusTopicName(), registrationRequest.getDistrEnvName()); + + //Failing on new registration + Runnable failWhen = () -> when(cambriaHandler.registerToTopic(config.getUebServers(), config.getUebPublicKey(), + config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.PRODUCER, + expectedStatusTopicName)).thenReturn(errorResponse); + testHandleRegistrationFailed(registrationRequest, responseWrapper, failWhen); + //Registered + verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic( + responseWrapper,registrationRequest, SubscriberTypeEnum.PRODUCER, + expectedStatusTopicName); + //Did Not Register + verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( + responseWrapper,registrationRequest, SubscriberTypeEnum.CONSUMER, + expectedStatusTopicName); + verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( + responseWrapper, registrationRequest,SubscriberTypeEnum.CONSUMER, + expectedNotificationTopicName); + //Unregistered Not Activated + verify(cambriaHandler, Mockito.times(0)).unRegisterFromTopic(config.getUebServers(), + config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), + SubscriberTypeEnum.PRODUCER, expectedStatusTopicName); + verify(cambriaHandler, Mockito.times(0)).unRegisterFromTopic(config.getUebServers(), + config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), + SubscriberTypeEnum.CONSUMER, expectedNotificationTopicName); + verify(cambriaHandler, Mockito.times(0)).unRegisterFromTopic(config.getUebServers(), + config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), + SubscriberTypeEnum.CONSUMER, expectedStatusTopicName); + + } + + @SuppressWarnings("unchecked") + @Test + public void testHandleUnRegistrationHappyScenario() { + CambriaErrorResponse okResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, HttpStatus.SC_OK); + + Mockito.when(cambriaHandler.unRegisterFromTopic(Mockito.anyCollection(), Mockito.anyString(), + Mockito.anyString(), Mockito.anyString(), Mockito.any(SubscriberTypeEnum.class), Mockito.anyString())) + .thenReturn(okResponse); + + Wrapper<Response> responseWrapper = new Wrapper<>(); + RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", "myEnv", false); + distributionBusinessLogic.handleUnRegistration(responseWrapper, registrationRequest, auditHandler); + + Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( + Mockito.eq(responseWrapper), Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.PRODUCER), + Mockito.anyString()); + Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( + Mockito.eq(responseWrapper), Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.CONSUMER), + Mockito.anyString()); + Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic( + Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.PRODUCER), Mockito.anyString()); + Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic( + Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.CONSUMER), Mockito.anyString()); + + Mockito.verify(cambriaHandler, Mockito.times(2)).unRegisterFromTopic(Mockito.anyCollection(), + Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.any(SubscriberTypeEnum.class), + Mockito.anyString()); + + assertTrue(!responseWrapper.isEmpty()); + Response response = responseWrapper.getInnerElement(); + assertTrue(response.getStatus() == HttpStatus.SC_OK); + + TopicUnregistrationResponse okTopicUnregisterResponse = (TopicUnregistrationResponse) response.getEntity(); + + String expectedStatusTopicName = DistributionEngineInitTask.buildTopicName( + configurationManager.getDistributionEngineConfiguration().getDistributionStatusTopicName(), + registrationRequest.getDistrEnvName()); + String actualStatusTopicName = okTopicUnregisterResponse.getDistrStatusTopicName(); + assertEquals(expectedStatusTopicName, actualStatusTopicName); + + String expectedNotificationTopicName = DistributionEngineInitTask.buildTopicName( + configurationManager.getDistributionEngineConfiguration().getDistributionNotifTopicName(), + registrationRequest.getDistrEnvName()); + String actualNotificationTopicName = okTopicUnregisterResponse.getDistrNotificationTopicName(); + assertEquals(expectedNotificationTopicName, actualNotificationTopicName); + + assertEquals(okTopicUnregisterResponse.getNotificationUnregisterResult(), CambriaOperationStatus.OK); + assertEquals(okTopicUnregisterResponse.getStatusUnregisterResult(), CambriaOperationStatus.OK); + + } + + @Test + public void testHandleUnRegistrationFailedScenario() { + CambriaErrorResponse okResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, HttpStatus.SC_OK); + CambriaErrorResponse errorResponse = new CambriaErrorResponse(CambriaOperationStatus.AUTHENTICATION_ERROR, + HttpStatus.SC_INTERNAL_SERVER_ERROR); + + Wrapper<Response> responseWrapper = new Wrapper<>(); + RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", "myEnv", false); + DistributionEngineConfiguration config = configurationManager.getDistributionEngineConfiguration(); + String expectedStatusTopicName = DistributionEngineInitTask + .buildTopicName(config.getDistributionStatusTopicName(), registrationRequest.getDistrEnvName()); + String expectedNotificationTopicName = DistributionEngineInitTask + .buildTopicName(config.getDistributionNotifTopicName(), registrationRequest.getDistrEnvName()); + Mockito.when(cambriaHandler.unRegisterFromTopic(config.getUebServers(), config.getUebPublicKey(), + config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.PRODUCER, + expectedStatusTopicName)).thenReturn(okResponse); + Mockito.when(cambriaHandler.unRegisterFromTopic(config.getUebServers(), config.getUebPublicKey(), + config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.CONSUMER, + expectedNotificationTopicName)).thenReturn(errorResponse); + + distributionBusinessLogic.handleUnRegistration(responseWrapper, registrationRequest, auditHandler); + + Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( + Mockito.eq(responseWrapper), Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.PRODUCER), + Mockito.anyString()); + Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( + Mockito.eq(responseWrapper), Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.CONSUMER), + Mockito.anyString()); + Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic( + Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.PRODUCER), Mockito.anyString()); + Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic( + Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.CONSUMER), Mockito.anyString()); + + assertTrue(!responseWrapper.isEmpty()); + Response response = responseWrapper.getInnerElement(); + assertTrue(response.getStatus() == HttpStatus.SC_INTERNAL_SERVER_ERROR); + + TopicUnregistrationResponse okTopicUnregisterResponse = (TopicUnregistrationResponse) response.getEntity(); - Mockito.verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic(responseWrapper, registrationRequest, SubscriberTypeEnum.PRODUCER); - Mockito.verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic(responseWrapper, registrationRequest, SubscriberTypeEnum.CONSUMER); - Mockito.verify(cambriaHandler, Mockito.times(1)).unRegisterFromTopic(config.getUebServers(), expectedStatusTopicName, config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.PRODUCER); + String actualStatusTopicName = okTopicUnregisterResponse.getDistrStatusTopicName(); + assertEquals(expectedStatusTopicName, actualStatusTopicName); - assertTrue(!responseWrapper.isEmpty()); - Response response = responseWrapper.getInnerElement(); - assertTrue(response.getStatus() == HttpStatus.SC_INTERNAL_SERVER_ERROR); + String actualNotificationTopicName = okTopicUnregisterResponse.getDistrNotificationTopicName(); + assertEquals(expectedNotificationTopicName, actualNotificationTopicName); - } + assertEquals(okTopicUnregisterResponse.getNotificationUnregisterResult(), + CambriaOperationStatus.AUTHENTICATION_ERROR); + assertEquals(okTopicUnregisterResponse.getStatusUnregisterResult(), CambriaOperationStatus.OK); - @Test - public void testHandleUnRegistrationHappyScenario() { - CambriaErrorResponse okResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, HttpStatus.SC_OK); + } - Mockito.when(cambriaHandler.unRegisterFromTopic(Mockito.anyCollection(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.any(SubscriberTypeEnum.class))).thenReturn(okResponse); + @SuppressWarnings("unchecked") + private void testHandleRegistrationBasic(RegistrationRequest registrationRequest, + Wrapper<Response> responseWrapper) { + CambriaErrorResponse okResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, HttpStatus.SC_OK); + Mockito.when(cambriaHandler.registerToTopic(Mockito.anyCollection(), Mockito.anyString(), Mockito.anyString(), + Mockito.anyString(), Mockito.any(SubscriberTypeEnum.class), Mockito.anyString())) + .thenReturn(okResponse); - Wrapper<Response> responseWrapper = new Wrapper<>(); - RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", "myEnv"); - distributionBusinessLogic.handleUnRegistration(responseWrapper, registrationRequest, auditHandler); + String expectedStatusTopicName = buildTopicName( + configurationManager.getDistributionEngineConfiguration().getDistributionStatusTopicName(), + registrationRequest.getDistrEnvName()); + String expectedNotificationTopicName = buildTopicName( + configurationManager.getDistributionEngineConfiguration().getDistributionNotifTopicName(), + registrationRequest.getDistrEnvName()); - Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic(responseWrapper, registrationRequest, SubscriberTypeEnum.PRODUCER); - Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic(responseWrapper, registrationRequest, SubscriberTypeEnum.CONSUMER); - Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic(registrationRequest, SubscriberTypeEnum.PRODUCER); - Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic(registrationRequest, SubscriberTypeEnum.CONSUMER); + distributionBusinessLogic.handleRegistration(responseWrapper, registrationRequest, auditHandler); - Mockito.verify(cambriaHandler, Mockito.times(2)).unRegisterFromTopic(Mockito.anyCollection(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.any(SubscriberTypeEnum.class)); + verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic(responseWrapper, + registrationRequest, SubscriberTypeEnum.PRODUCER, expectedStatusTopicName); + verify(distributionBusinessLogic, Mockito.times(1)).registerDistributionClientToTopic(responseWrapper, + registrationRequest, SubscriberTypeEnum.CONSUMER, expectedNotificationTopicName); - assertTrue(!responseWrapper.isEmpty()); - Response response = responseWrapper.getInnerElement(); - assertTrue(response.getStatus() == HttpStatus.SC_OK); + verify(cambriaHandler, Mockito.times(0)).unRegisterFromTopic(Mockito.anyCollection(), Mockito.anyString(), + Mockito.anyString(), Mockito.anyString(), Mockito.any(SubscriberTypeEnum.class), Mockito.anyString()); - TopicUnregistrationResponse okTopicUnregisterResponse = (TopicUnregistrationResponse) response.getEntity(); + assertTrue(!responseWrapper.isEmpty()); + Response response = responseWrapper.getInnerElement(); + assertTrue(response.getStatus() == HttpStatus.SC_OK); - String expectedStatusTopicName = DistributionEngineInitTask.buildTopicName(configurationManager.getDistributionEngineConfiguration().getDistributionStatusTopicName(), registrationRequest.getDistrEnvName()); - String actualStatusTopicName = okTopicUnregisterResponse.getDistrStatusTopicName(); - assertEquals(expectedStatusTopicName, actualStatusTopicName); + TopicRegistrationResponse okTopicResponse = (TopicRegistrationResponse) response.getEntity(); - String expectedNotificationTopicName = DistributionEngineInitTask.buildTopicName(configurationManager.getDistributionEngineConfiguration().getDistributionNotifTopicName(), registrationRequest.getDistrEnvName()); - String actualNotificationTopicName = okTopicUnregisterResponse.getDistrNotificationTopicName(); - assertEquals(expectedNotificationTopicName, actualNotificationTopicName); + String actualStatusTopicName = okTopicResponse.getDistrStatusTopicName(); + assertEquals(expectedStatusTopicName, actualStatusTopicName); - assertEquals(okTopicUnregisterResponse.getNotificationUnregisterResult(), CambriaOperationStatus.OK); - assertEquals(okTopicUnregisterResponse.getStatusUnregisterResult(), CambriaOperationStatus.OK); + String actualNotificationTopicName = okTopicResponse.getDistrNotificationTopicName(); + assertEquals(expectedNotificationTopicName, actualNotificationTopicName); + } - } + private void testHandleRegistrationFailed(RegistrationRequest registrationRequest, + Wrapper<Response> responseWrapper, Runnable failWhen) { + String expectedStatusTopicName = buildTopicName(config.getDistributionStatusTopicName(), registrationRequest.getDistrEnvName()); - @Test - public void testHandleUnRegistrationFailedScenario() { - CambriaErrorResponse okResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, HttpStatus.SC_OK); - CambriaErrorResponse errorResponse = new CambriaErrorResponse(CambriaOperationStatus.AUTHENTICATION_ERROR, HttpStatus.SC_INTERNAL_SERVER_ERROR); - Wrapper<Response> responseWrapper = new Wrapper<>(); - RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", "myEnv"); - DistributionEngineConfiguration config = configurationManager.getDistributionEngineConfiguration(); - String expectedStatusTopicName = DistributionEngineInitTask.buildTopicName(config.getDistributionStatusTopicName(), registrationRequest.getDistrEnvName()); - String expectedNotificationTopicName = DistributionEngineInitTask.buildTopicName(config.getDistributionNotifTopicName(), registrationRequest.getDistrEnvName()); - Mockito.when(cambriaHandler.unRegisterFromTopic(config.getUebServers(), expectedStatusTopicName, config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.PRODUCER)).thenReturn(okResponse); - Mockito.when(cambriaHandler.unRegisterFromTopic(config.getUebServers(), expectedNotificationTopicName, config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.CONSUMER)) - .thenReturn(errorResponse); - distributionBusinessLogic.handleUnRegistration(responseWrapper, registrationRequest, auditHandler); - Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic(responseWrapper, registrationRequest, SubscriberTypeEnum.PRODUCER); - Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic(responseWrapper, registrationRequest, SubscriberTypeEnum.CONSUMER); - Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic(registrationRequest, SubscriberTypeEnum.PRODUCER); - Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic(registrationRequest, SubscriberTypeEnum.CONSUMER); - assertTrue(!responseWrapper.isEmpty()); - Response response = responseWrapper.getInnerElement(); - assertTrue(response.getStatus() == HttpStatus.SC_INTERNAL_SERVER_ERROR); + when(cambriaHandler.registerToTopic(config.getUebServers(), config.getUebPublicKey(), + config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.CONSUMER, + expectedStatusTopicName)).thenReturn(okResponse); - TopicUnregistrationResponse okTopicUnregisterResponse = (TopicUnregistrationResponse) response.getEntity(); + when(cambriaHandler.registerToTopic(config.getUebServers(), config.getUebPublicKey(), + config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.PRODUCER, + expectedStatusTopicName)).thenReturn(okResponse); - String actualStatusTopicName = okTopicUnregisterResponse.getDistrStatusTopicName(); - assertEquals(expectedStatusTopicName, actualStatusTopicName); + failWhen.run(); - String actualNotificationTopicName = okTopicUnregisterResponse.getDistrNotificationTopicName(); - assertEquals(expectedNotificationTopicName, actualNotificationTopicName); + distributionBusinessLogic.handleRegistration(responseWrapper, registrationRequest, auditHandler); - assertEquals(okTopicUnregisterResponse.getNotificationUnregisterResult(), CambriaOperationStatus.AUTHENTICATION_ERROR); - assertEquals(okTopicUnregisterResponse.getStatusUnregisterResult(), CambriaOperationStatus.OK); + assertTrue(!responseWrapper.isEmpty()); + Response response = responseWrapper.getInnerElement(); + assertTrue(response.getStatus() == HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - @Before - public void init() { - MockitoAnnotations.initMocks(this); - Mockito.reset(cambriaHandler); - } + } } |