2  * ============LICENSE_START=======================================================
 
   3  * BBS-RELOCATION-CPE-AUTHENTICATION-HANDLER
 
   4  * ================================================================================
 
   5  * Copyright (C) 2019 NOKIA Intellectual Property. All rights reserved.
 
   6  * ================================================================================
 
   7  * Licensed under the Apache License, Version 2.0 (the "License");
 
   8  * you may not use this file except in compliance with the License.
 
   9  * You may obtain a copy of the License at
 
  11  *      http://www.apache.org/licenses/LICENSE-2.0
 
  13  * Unless required by applicable law or agreed to in writing, software
 
  14  * distributed under the License is distributed on an "AS IS" BASIS,
 
  15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  16  * See the License for the specific language governing permissions and
 
  17  * limitations under the License.
 
  18  * ============LICENSE_END=========================================================
 
  21 package org.onap.bbs.event.processor.config;
 
  23 import static org.junit.jupiter.api.Assertions.assertAll;
 
  24 import static org.junit.jupiter.api.Assertions.assertEquals;
 
  25 import static org.junit.jupiter.api.Assertions.assertFalse;
 
  26 import static org.junit.jupiter.api.Assertions.assertTrue;
 
  28 import java.util.Collections;
 
  29 import java.util.HashMap;
 
  32 import org.junit.FixMethodOrder;
 
  33 import org.junit.jupiter.api.DisplayName;
 
  34 import org.junit.jupiter.api.Test;
 
  35 import org.junit.runners.MethodSorters;
 
  36 import org.onap.bbs.event.processor.model.GeneratedAppConfigObject;
 
  37 import org.onap.bbs.event.processor.model.ImmutableDmaapInfo;
 
  38 import org.onap.bbs.event.processor.model.ImmutableGeneratedAppConfigObject;
 
  39 import org.onap.bbs.event.processor.model.ImmutableStreamsObject;
 
  40 import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.DmaapConsumerConfiguration;
 
  41 import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.DmaapPublisherConfiguration;
 
  42 import org.springframework.beans.factory.annotation.Autowired;
 
  43 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 
  44 import org.springframework.boot.test.context.SpringBootTest;
 
  45 import org.springframework.test.context.TestPropertySource;
 
  47 @SpringBootTest(classes = {
 
  48         AaiClientProperties.class,
 
  49         DmaapReRegistrationConsumerProperties.class,
 
  50         DmaapCpeAuthenticationConsumerProperties.class,
 
  51         DmaapProducerProperties.class,
 
  52         SecurityProperties.class,
 
  53         GenericProperties.class})
 
  54 @EnableConfigurationProperties
 
  55 @TestPropertySource(properties = {
 
  56         "configs.aai.client.aaiHost=test localhost",
 
  57         "configs.aai.client.aaiPort=1234",
 
  58         "configs.aai.client.aaiProtocol=https",
 
  59         "configs.aai.client.aaiUserName=AAI",
 
  60         "configs.aai.client.aaiUserPassword=AAI",
 
  61         "configs.aai.client.aaiIgnoreSslCertificateErrors=true",
 
  62         "configs.aai.client.aaiHeaders.X-FromAppId=bbs",
 
  63         "configs.aai.client.aaiHeaders.X-TransactionId=9999",
 
  64         "configs.aai.client.aaiHeaders.Accept=application/json",
 
  65         "configs.aai.client.aaiHeaders.Real-Time=true",
 
  66         "configs.aai.client.aaiHeaders.Content-Type=application/merge-patch+json",
 
  67         "configs.dmaap.consumer.re-registration.dmaapHostName=test localhost",
 
  68         "configs.dmaap.consumer.re-registration.dmaapPortNumber=1234",
 
  69         "configs.dmaap.consumer.re-registration.dmaapTopicName=/events/unauthenticated.PNF_REREGISTRATION",
 
  70         "configs.dmaap.consumer.re-registration.dmaapProtocol=http",
 
  71         "configs.dmaap.consumer.re-registration.dmaapContentType=application/json",
 
  72         "configs.dmaap.consumer.re-registration.consumerId=c12",
 
  73         "configs.dmaap.consumer.re-registration.consumerGroup=OpenDcae-c12",
 
  74         "configs.dmaap.consumer.re-registration.timeoutMs=-1",
 
  75         "configs.dmaap.consumer.re-registration.messageLimit=1",
 
  76         "configs.dmaap.consumer.cpe-authentication.dmaapHostName=test localhost",
 
  77         "configs.dmaap.consumer.cpe-authentication.dmaapPortNumber=1234",
 
  78         "configs.dmaap.consumer.cpe-authentication.dmaapTopicName=/events/unauthenticated.CPE_AUTHENTICATION",
 
  79         "configs.dmaap.consumer.cpe-authentication.dmaapProtocol=http",
 
  80         "configs.dmaap.consumer.cpe-authentication.dmaapContentType=application/json",
 
  81         "configs.dmaap.consumer.cpe-authentication.consumerId=c12",
 
  82         "configs.dmaap.consumer.cpe-authentication.consumerGroup=OpenDcae-c12",
 
  83         "configs.dmaap.consumer.cpe-authentication.timeoutMs=-1",
 
  84         "configs.dmaap.consumer.cpe-authentication.messageLimit=1",
 
  85         "configs.dmaap.producer.dmaapHostName=test localhost",
 
  86         "configs.dmaap.producer.dmaapPortNumber=1234",
 
  87         "configs.dmaap.producer.dmaapTopicName=/events/unauthenticated.DCAE_CL_OUTPUT",
 
  88         "configs.dmaap.producer.dmaapProtocol=http",
 
  89         "configs.dmaap.producer.dmaapContentType=application/json",
 
  90         "configs.security.trustStorePath=test trust store path",
 
  91         "configs.security.trustStorePasswordPath=test trust store password path",
 
  92         "configs.security.keyStorePath=test key store path",
 
  93         "configs.security.keyStorePasswordPath=test key store password path",
 
  94         "configs.security.enableDmaapCertAuth=false",
 
  95         "configs.security.enableAaiCertAuth=false",
 
  96         "configs.application.pipelinesPollingIntervalSec=30",
 
  97         "configs.application.pipelinesTimeoutSec=15",
 
  98         "configs.application.policyVersion=1.0.0",
 
  99         "configs.application.clTargetType=VM",
 
 100         "configs.application.clEventStatus=ONSET",
 
 101         "configs.application.clVersion=1.0.2",
 
 102         "configs.application.clTarget=vserver.vserver-name",
 
 103         "configs.application.clOriginator=DCAE-bbs-event-processor",
 
 104         "configs.application.re-registration.policyScope=reRegPolicyScope",
 
 105         "configs.application.re-registration.clControlName=reRegControlName",
 
 106         "configs.application.cpe-authentication.policyScope=cpeAuthPolicyScope",
 
 107         "configs.application.cpe-authentication.clControlName=cpeAuthControlName"})
 
 108 @DisplayName("Application Configuration Unit-Tests")
 
 109 // Ordering tests because we need a first configuration population from @TestPropertySource
 
 110 // and then update of the config parameters based on a new Consul-retrieved Configuration object
 
 111 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
 
 112 class ApplicationConfigurationTest {
 
 114     private ApplicationConfiguration configuration;
 
 117     public ApplicationConfigurationTest(AaiClientProperties aaiClientProperties,
 
 118                                         DmaapReRegistrationConsumerProperties dmaapReRegistrationConsumerProperties,
 
 119                                         DmaapCpeAuthenticationConsumerProperties
 
 120                                                     dmaapCpeAuthenticationConsumerProperties,
 
 121                                         DmaapProducerProperties dmaapProducerProperties,
 
 122                                         SecurityProperties securityProperties,
 
 123                                         GenericProperties genericProperties) {
 
 124         this.configuration = new ApplicationConfiguration(aaiClientProperties,
 
 125                 dmaapReRegistrationConsumerProperties,
 
 126                 dmaapCpeAuthenticationConsumerProperties,
 
 127                 dmaapProducerProperties,
 
 133     void testA_configurationObjectSuccessfullyPopulated() {
 
 135         AaiClientConfiguration aaiClientConfiguration = configuration.getAaiClientConfiguration();
 
 136         assertAll("AAI Client Configuration Properties",
 
 137             () -> assertEquals("test localhost", aaiClientConfiguration.aaiHost()),
 
 138             () -> assertEquals(Integer.valueOf(1234), aaiClientConfiguration.aaiPort()),
 
 139             () -> assertEquals("https", aaiClientConfiguration.aaiProtocol()),
 
 140             () -> assertEquals("AAI", aaiClientConfiguration.aaiUserName()),
 
 141             () -> assertEquals("AAI", aaiClientConfiguration.aaiUserPassword()),
 
 142             () -> assertTrue(aaiClientConfiguration.aaiIgnoreSslCertificateErrors()),
 
 143             () -> assertEquals("bbs", aaiClientConfiguration.aaiHeaders().get("X-FromAppId")),
 
 144             () -> assertEquals("9999", aaiClientConfiguration.aaiHeaders().get("X-TransactionId")),
 
 145             () -> assertEquals("application/json", aaiClientConfiguration.aaiHeaders().get("Accept")),
 
 146             () -> assertEquals("true", aaiClientConfiguration.aaiHeaders().get("Real-Time")),
 
 147             () -> assertEquals("application/merge-patch+json",
 
 148                         aaiClientConfiguration.aaiHeaders().get("Content-Type"))
 
 151         DmaapConsumerConfiguration dmaapConsumerReRegistrationConfig =
 
 152                 configuration.getDmaapReRegistrationConsumerConfiguration();
 
 153         assertAll("DMaaP Consumer Re-Registration Configuration Properties",
 
 154             () -> assertEquals("test localhost", dmaapConsumerReRegistrationConfig.dmaapHostName()),
 
 155             () -> assertEquals(Integer.valueOf(1234), dmaapConsumerReRegistrationConfig.dmaapPortNumber()),
 
 156             () -> assertEquals("/events/unauthenticated.PNF_REREGISTRATION",
 
 157                     dmaapConsumerReRegistrationConfig.dmaapTopicName()),
 
 158             () -> assertEquals("http", dmaapConsumerReRegistrationConfig.dmaapProtocol()),
 
 159             () -> assertEquals("", dmaapConsumerReRegistrationConfig.dmaapUserName()),
 
 160             () -> assertEquals("", dmaapConsumerReRegistrationConfig.dmaapUserPassword()),
 
 161             () -> assertEquals("application/json", dmaapConsumerReRegistrationConfig.dmaapContentType()),
 
 162             () -> assertEquals("c12", dmaapConsumerReRegistrationConfig.consumerId()),
 
 163             () -> assertEquals("OpenDcae-c12", dmaapConsumerReRegistrationConfig.consumerGroup()),
 
 164             () -> assertEquals(Integer.valueOf(-1), dmaapConsumerReRegistrationConfig.timeoutMs()),
 
 165             () -> assertEquals(Integer.valueOf(1), dmaapConsumerReRegistrationConfig.messageLimit())
 
 168         DmaapConsumerConfiguration dmaapConsumerCpeAuthenticationConfig =
 
 169                 configuration.getDmaapCpeAuthenticationConsumerConfiguration();
 
 170         assertAll("DMaaP Consumer CPE Authentication Configuration Properties",
 
 171             () -> assertEquals("test localhost", dmaapConsumerCpeAuthenticationConfig.dmaapHostName()),
 
 172             () -> assertEquals(Integer.valueOf(1234), dmaapConsumerCpeAuthenticationConfig.dmaapPortNumber()),
 
 173             () -> assertEquals("/events/unauthenticated.CPE_AUTHENTICATION",
 
 174                     dmaapConsumerCpeAuthenticationConfig.dmaapTopicName()),
 
 175             () -> assertEquals("http", dmaapConsumerCpeAuthenticationConfig.dmaapProtocol()),
 
 176             () -> assertEquals("", dmaapConsumerCpeAuthenticationConfig.dmaapUserName()),
 
 177             () -> assertEquals("", dmaapConsumerCpeAuthenticationConfig.dmaapUserPassword()),
 
 178             () -> assertEquals("application/json", dmaapConsumerCpeAuthenticationConfig.dmaapContentType()),
 
 179             () -> assertEquals("c12", dmaapConsumerCpeAuthenticationConfig.consumerId()),
 
 180             () -> assertEquals("OpenDcae-c12", dmaapConsumerCpeAuthenticationConfig.consumerGroup()),
 
 181             () -> assertEquals(Integer.valueOf(-1), dmaapConsumerCpeAuthenticationConfig.timeoutMs()),
 
 182             () -> assertEquals(Integer.valueOf(1), dmaapConsumerCpeAuthenticationConfig.messageLimit())
 
 185         DmaapPublisherConfiguration dmaapPublisherConfiguration = configuration.getDmaapPublisherConfiguration();
 
 186         assertAll("DMaaP Publisher Configuration Properties",
 
 187             () -> assertEquals("test localhost", dmaapPublisherConfiguration.dmaapHostName()),
 
 188             () -> assertEquals(Integer.valueOf(1234), dmaapPublisherConfiguration.dmaapPortNumber()),
 
 189             () -> assertEquals("/events/unauthenticated.DCAE_CL_OUTPUT",
 
 190                     dmaapPublisherConfiguration.dmaapTopicName()),
 
 191             () -> assertEquals("http", dmaapPublisherConfiguration.dmaapProtocol()),
 
 192             () -> assertEquals("", dmaapPublisherConfiguration.dmaapUserName()),
 
 193             () -> assertEquals("", dmaapPublisherConfiguration.dmaapUserPassword()),
 
 194             () -> assertEquals("application/json", dmaapPublisherConfiguration.dmaapContentType())
 
 197         assertAll("Generic Application Properties",
 
 198             () -> assertEquals(30, configuration.getPipelinesPollingIntervalInSeconds()),
 
 199             () -> assertEquals(15, configuration.getPipelinesTimeoutInSeconds()),
 
 200             () -> assertEquals("1.0.0", configuration.getPolicyVersion()),
 
 201             () -> assertEquals("VM", configuration.getCloseLoopTargetType()),
 
 202             () -> assertEquals("ONSET", configuration.getCloseLoopEventStatus()),
 
 203             () -> assertEquals("1.0.2", configuration.getCloseLoopVersion()),
 
 204             () -> assertEquals("vserver.vserver-name", configuration.getCloseLoopTarget()),
 
 205             () -> assertEquals("DCAE-bbs-event-processor", configuration.getCloseLoopOriginator()),
 
 206             () -> assertEquals("reRegPolicyScope", configuration.getReRegistrationCloseLoopPolicyScope()),
 
 207             () -> assertEquals("cpeAuthPolicyScope", configuration.getCpeAuthenticationCloseLoopPolicyScope()),
 
 208             () -> assertEquals("reRegControlName", configuration.getReRegistrationCloseLoopControlName()),
 
 209             () -> assertEquals("cpeAuthControlName", configuration.getCpeAuthenticationCloseLoopControlName())
 
 212         assertAll("Security Application Properties",
 
 213             () -> assertFalse(aaiClientConfiguration.enableAaiCertAuth()),
 
 214             () -> assertFalse(dmaapConsumerReRegistrationConfig.enableDmaapCertAuth()),
 
 215             () -> assertEquals("test key store path", aaiClientConfiguration.keyStorePath()),
 
 216             () -> assertEquals("test key store password path",
 
 217                         aaiClientConfiguration.keyStorePasswordPath()),
 
 218             () -> assertEquals("test trust store path", aaiClientConfiguration.trustStorePath()),
 
 219             () -> assertEquals("test trust store password path",
 
 220                         aaiClientConfiguration.trustStorePasswordPath())
 
 225     void testB_passingNewConfiguration_UpdateSucceeds() {
 
 226         Map<String, GeneratedAppConfigObject.StreamsObject> subscribes = new HashMap<>();
 
 228         GeneratedAppConfigObject.DmaapInfo dmaapInfo1 = ImmutableDmaapInfo.builder()
 
 229                 .clientId("1500462518108")
 
 230                 .clientRole("com.dcae.member")
 
 232                 .topicUrl("https://we-are-message-router1.us:3901/events/unauthenticated.PNF_UPDATE")
 
 234         GeneratedAppConfigObject.StreamsObject streamsObject1 = ImmutableStreamsObject.builder()
 
 235                 .type("message_router")
 
 236                 .aafUsername("some-user")
 
 237                 .aafPassword("some-password")
 
 238                 .dmaapInfo(dmaapInfo1)
 
 240         GeneratedAppConfigObject.DmaapInfo dmaapInfo2 = ImmutableDmaapInfo.builder()
 
 241                 .clientId("1500462518108")
 
 242                 .clientRole("com.dcae.member")
 
 244                 .topicUrl("https://we-are-message-router2.us:3902/events/unauthenticated.CPE_AUTHENTICATION")
 
 246         GeneratedAppConfigObject.StreamsObject streamsObject2 = ImmutableStreamsObject.builder()
 
 247                 .type("message_router")
 
 248                 .aafUsername("some-user")
 
 249                 .aafPassword("some-password")
 
 250                 .dmaapInfo(dmaapInfo2)
 
 253         subscribes.put("config_key_1", streamsObject1);
 
 254         subscribes.put("config_key_2", streamsObject2);
 
 256         // Create Publishes Objects
 
 257         GeneratedAppConfigObject.DmaapInfo dmaapInfo3 = ImmutableDmaapInfo.builder()
 
 258                 .clientId("1500462518108")
 
 259                 .clientRole("com.dcae.member")
 
 261                 .topicUrl("https://we-are-message-router3.us:3903/events/unauthenticated.DCAE_CL_OUTPUT")
 
 263         GeneratedAppConfigObject.StreamsObject streamsObject3 = ImmutableStreamsObject.builder()
 
 264                 .type("message_router")
 
 265                 .aafUsername("some-user")
 
 266                 .aafPassword("some-password")
 
 267                 .dmaapInfo(dmaapInfo3)
 
 270         // Final config object
 
 271         GeneratedAppConfigObject updatedConfiguration = ImmutableGeneratedAppConfigObject.builder()
 
 272                 .dmaapProtocol("https")
 
 273                 .dmaapContentType("application/json")
 
 274                 .dmaapConsumerConsumerId("c13")
 
 275                 .dmaapConsumerConsumerGroup("OpenDcae-c13")
 
 276                 .dmaapMessageLimit(10)
 
 278                 .aaiHost("aai.onap.svc.cluster.local")
 
 281                 .aaiUsername("AAI-update")
 
 282                 .aaiPassword("AAI-update")
 
 283                 .aaiIgnoreSslCertificateErrors(false)
 
 284                 .pipelinesPollingIntervalSec(20)
 
 285                 .pipelinesTimeoutSec(20)
 
 286                 .cbsPollingIntervalSec(180)
 
 287                 .policyVersion("2.0.0")
 
 288                 .closeLoopTargetType("VM2")
 
 289                 .closeLoopEventStatus("ONSET-update")
 
 290                 .closeLoopVersion("2.0.2")
 
 291                 .closeLoopTarget("Target-update")
 
 292                 .closeLoopOriginator("Originator-update")
 
 293                 .reRegistrationPolicyScope("policyScope-update")
 
 294                 .reRegistrationClControlName("controlName-update")
 
 295                 .cpeAuthPolicyScope("policyScope-update")
 
 296                 .cpeAuthClControlName("controlName-update")
 
 297                 .reRegConfigKey("config_key_1")
 
 298                 .cpeAuthConfigKey("config_key_2")
 
 299                 .closeLoopConfigKey("config_key_3")
 
 300                 .loggingLevel("TRACE")
 
 301                 .keyStorePath("test key store path - update")
 
 302                 .keyStorePasswordPath("test key store password path - update")
 
 303                 .trustStorePath("test trust store path - update")
 
 304                 .trustStorePasswordPath("test trust store password path - update")
 
 305                 .enableAaiCertAuth(true)
 
 306                 .enableDmaapCertAuth(true)
 
 307                 .streamSubscribesMap(subscribes)
 
 308                 .streamPublishesMap(Collections.singletonMap("config_key_3", streamsObject3))
 
 311         // Update the configuration
 
 312         configuration.updateCurrentConfiguration(updatedConfiguration);
 
 314         AaiClientConfiguration aaiClientConfiguration = configuration.getAaiClientConfiguration();
 
 315         assertAll("AAI Client Configuration Properties",
 
 316             () -> assertEquals("aai.onap.svc.cluster.local", aaiClientConfiguration.aaiHost()),
 
 317             () -> assertEquals(Integer.valueOf(8443), aaiClientConfiguration.aaiPort()),
 
 318             () -> assertEquals("http", aaiClientConfiguration.aaiProtocol()),
 
 319             () -> assertEquals("AAI-update", aaiClientConfiguration.aaiUserName()),
 
 320             () -> assertEquals("AAI-update", aaiClientConfiguration.aaiUserPassword()),
 
 321             () -> assertFalse(aaiClientConfiguration.aaiIgnoreSslCertificateErrors()),
 
 322             () -> assertEquals("bbs", aaiClientConfiguration.aaiHeaders().get("X-FromAppId")),
 
 323             () -> assertEquals("9999", aaiClientConfiguration.aaiHeaders().get("X-TransactionId")),
 
 324             () -> assertEquals("application/json", aaiClientConfiguration.aaiHeaders().get("Accept")),
 
 325             () -> assertEquals("true", aaiClientConfiguration.aaiHeaders().get("Real-Time")),
 
 326             () -> assertEquals("application/merge-patch+json",
 
 327                         aaiClientConfiguration.aaiHeaders().get("Content-Type"))
 
 330         DmaapConsumerConfiguration dmaapConsumerReRegistrationConfig =
 
 331                 configuration.getDmaapReRegistrationConsumerConfiguration();
 
 332         assertAll("DMaaP Consumer Re-Registration Configuration Properties",
 
 333             () -> assertEquals("we-are-message-router1.us", dmaapConsumerReRegistrationConfig.dmaapHostName()),
 
 334             () -> assertEquals(Integer.valueOf(3901), dmaapConsumerReRegistrationConfig.dmaapPortNumber()),
 
 335             () -> assertEquals("events/unauthenticated.PNF_UPDATE",
 
 336                     dmaapConsumerReRegistrationConfig.dmaapTopicName()),
 
 337             () -> assertEquals("https", dmaapConsumerReRegistrationConfig.dmaapProtocol()),
 
 338             () -> assertEquals("some-user", dmaapConsumerReRegistrationConfig.dmaapUserName()),
 
 339             () -> assertEquals("some-password", dmaapConsumerReRegistrationConfig.dmaapUserPassword()),
 
 340             () -> assertEquals("application/json", dmaapConsumerReRegistrationConfig.dmaapContentType()),
 
 341             () -> assertEquals("c13", dmaapConsumerReRegistrationConfig.consumerId()),
 
 342             () -> assertEquals("OpenDcae-c13", dmaapConsumerReRegistrationConfig.consumerGroup()),
 
 343             () -> assertEquals(Integer.valueOf(5), dmaapConsumerReRegistrationConfig.timeoutMs()),
 
 344             () -> assertEquals(Integer.valueOf(10), dmaapConsumerReRegistrationConfig.messageLimit())
 
 347         DmaapConsumerConfiguration dmaapConsumerCpeAuthenticationConfig =
 
 348                 configuration.getDmaapCpeAuthenticationConsumerConfiguration();
 
 349         assertAll("DMaaP Consumer CPE Authentication Configuration Properties",
 
 350             () -> assertEquals("we-are-message-router2.us", dmaapConsumerCpeAuthenticationConfig.dmaapHostName()),
 
 351             () -> assertEquals(Integer.valueOf(3902), dmaapConsumerCpeAuthenticationConfig.dmaapPortNumber()),
 
 352             () -> assertEquals("events/unauthenticated.CPE_AUTHENTICATION",
 
 353                     dmaapConsumerCpeAuthenticationConfig.dmaapTopicName()),
 
 354             () -> assertEquals("https", dmaapConsumerCpeAuthenticationConfig.dmaapProtocol()),
 
 355             () -> assertEquals("some-user", dmaapConsumerCpeAuthenticationConfig.dmaapUserName()),
 
 356             () -> assertEquals("some-password", dmaapConsumerCpeAuthenticationConfig.dmaapUserPassword()),
 
 357             () -> assertEquals("application/json", dmaapConsumerCpeAuthenticationConfig.dmaapContentType()),
 
 358             () -> assertEquals("c13", dmaapConsumerCpeAuthenticationConfig.consumerId()),
 
 359             () -> assertEquals("OpenDcae-c13", dmaapConsumerCpeAuthenticationConfig.consumerGroup()),
 
 360             () -> assertEquals(Integer.valueOf(5), dmaapConsumerCpeAuthenticationConfig.timeoutMs()),
 
 361             () -> assertEquals(Integer.valueOf(10), dmaapConsumerCpeAuthenticationConfig.messageLimit())
 
 364         DmaapPublisherConfiguration dmaapPublisherConfiguration = configuration.getDmaapPublisherConfiguration();
 
 365         assertAll("DMaaP Publisher Configuration Properties",
 
 366             () -> assertEquals("we-are-message-router3.us", dmaapPublisherConfiguration.dmaapHostName()),
 
 367             () -> assertEquals(Integer.valueOf(3903), dmaapPublisherConfiguration.dmaapPortNumber()),
 
 368             () -> assertEquals("events/unauthenticated.DCAE_CL_OUTPUT",
 
 369                     dmaapPublisherConfiguration.dmaapTopicName()),
 
 370             () -> assertEquals("https", dmaapPublisherConfiguration.dmaapProtocol()),
 
 371             () -> assertEquals("some-user", dmaapPublisherConfiguration.dmaapUserName()),
 
 372             () -> assertEquals("some-password", dmaapPublisherConfiguration.dmaapUserPassword()),
 
 373             () -> assertEquals("application/json", dmaapPublisherConfiguration.dmaapContentType())
 
 376         assertAll("Generic Application Properties",
 
 377             () -> assertEquals(20, configuration.getPipelinesPollingIntervalInSeconds()),
 
 378             () -> assertEquals(20, configuration.getPipelinesTimeoutInSeconds()),
 
 379             () -> assertEquals(180, configuration.getCbsPollingInterval()),
 
 380             () -> assertEquals("2.0.0", configuration.getPolicyVersion()),
 
 381             () -> assertEquals("VM2", configuration.getCloseLoopTargetType()),
 
 382             () -> assertEquals("ONSET-update", configuration.getCloseLoopEventStatus()),
 
 383             () -> assertEquals("2.0.2", configuration.getCloseLoopVersion()),
 
 384             () -> assertEquals("Target-update", configuration.getCloseLoopTarget()),
 
 385             () -> assertEquals("Originator-update", configuration.getCloseLoopOriginator()),
 
 386             () -> assertEquals("policyScope-update", configuration.getReRegistrationCloseLoopPolicyScope()),
 
 387             () -> assertEquals("policyScope-update", configuration.getCpeAuthenticationCloseLoopPolicyScope()),
 
 388             () -> assertEquals("controlName-update", configuration.getReRegistrationCloseLoopControlName()),
 
 389             () -> assertEquals("controlName-update", configuration.getCpeAuthenticationCloseLoopControlName())
 
 392         assertAll("Security Application Properties",
 
 393             () -> assertTrue(aaiClientConfiguration.enableAaiCertAuth()),
 
 394             () -> assertTrue(dmaapConsumerReRegistrationConfig.enableDmaapCertAuth()),
 
 395             () -> assertEquals("test key store path - update", aaiClientConfiguration.keyStorePath()),
 
 396             () -> assertEquals("test key store password path - update",
 
 397                         aaiClientConfiguration.keyStorePasswordPath()),
 
 398             () -> assertEquals("test trust store path - update", aaiClientConfiguration.trustStorePath()),
 
 399             () -> assertEquals("test trust store password path - update",
 
 400                         aaiClientConfiguration.trustStorePasswordPath())