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=true",
 
  95         "configs.security.enableAaiCertAuth=true",
 
  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())
 
 214     void testB_passingNewConfiguration_UpdateSucceeds() {
 
 215         Map<String, GeneratedAppConfigObject.StreamsObject> subscribes = new HashMap<>();
 
 217         GeneratedAppConfigObject.DmaapInfo dmaapInfo1 = ImmutableDmaapInfo.builder()
 
 218                 .clientId("1500462518108")
 
 219                 .clientRole("com.dcae.member")
 
 221                 .topicUrl("https://we-are-message-router1.us:3901/events/unauthenticated.PNF_UPDATE")
 
 223         GeneratedAppConfigObject.StreamsObject streamsObject1 = ImmutableStreamsObject.builder()
 
 224                 .type("message_router")
 
 225                 .aafUsername("some-user")
 
 226                 .aafPassword("some-password")
 
 227                 .dmaapInfo(dmaapInfo1)
 
 229         GeneratedAppConfigObject.DmaapInfo dmaapInfo2 = ImmutableDmaapInfo.builder()
 
 230                 .clientId("1500462518108")
 
 231                 .clientRole("com.dcae.member")
 
 233                 .topicUrl("https://we-are-message-router2.us:3902/events/unauthenticated.CPE_AUTHENTICATION")
 
 235         GeneratedAppConfigObject.StreamsObject streamsObject2 = ImmutableStreamsObject.builder()
 
 236                 .type("message_router")
 
 237                 .aafUsername("some-user")
 
 238                 .aafPassword("some-password")
 
 239                 .dmaapInfo(dmaapInfo2)
 
 242         subscribes.put("config_key_1", streamsObject1);
 
 243         subscribes.put("config_key_2", streamsObject2);
 
 245         // Create Publishes Objects
 
 246         GeneratedAppConfigObject.DmaapInfo dmaapInfo3 = ImmutableDmaapInfo.builder()
 
 247                 .clientId("1500462518108")
 
 248                 .clientRole("com.dcae.member")
 
 250                 .topicUrl("https://we-are-message-router3.us:3903/events/unauthenticated.DCAE_CL_OUTPUT")
 
 252         GeneratedAppConfigObject.StreamsObject streamsObject3 = ImmutableStreamsObject.builder()
 
 253                 .type("message_router")
 
 254                 .aafUsername("some-user")
 
 255                 .aafPassword("some-password")
 
 256                 .dmaapInfo(dmaapInfo3)
 
 259         // Final config object
 
 260         GeneratedAppConfigObject updatedConfiguration = ImmutableGeneratedAppConfigObject.builder()
 
 261                 .dmaapProtocol("https")
 
 262                 .dmaapContentType("application/json")
 
 263                 .dmaapConsumerConsumerId("c13")
 
 264                 .dmaapConsumerConsumerGroup("OpenDcae-c13")
 
 265                 .dmaapMessageLimit(10)
 
 267                 .aaiHost("aai.onap.svc.cluster.local")
 
 270                 .aaiUsername("AAI-update")
 
 271                 .aaiPassword("AAI-update")
 
 272                 .aaiIgnoreSslCertificateErrors(false)
 
 273                 .pipelinesPollingIntervalSec(20)
 
 274                 .pipelinesTimeoutSec(20)
 
 275                 .cbsPollingIntervalSec(180)
 
 276                 .policyVersion("2.0.0")
 
 277                 .closeLoopTargetType("VM2")
 
 278                 .closeLoopEventStatus("ONSET-update")
 
 279                 .closeLoopVersion("2.0.2")
 
 280                 .closeLoopTarget("Target-update")
 
 281                 .closeLoopOriginator("Originator-update")
 
 282                 .reRegistrationPolicyScope("policyScope-update")
 
 283                 .reRegistrationClControlName("controlName-update")
 
 284                 .cpeAuthPolicyScope("policyScope-update")
 
 285                 .cpeAuthClControlName("controlName-update")
 
 286                 .reRegConfigKey("config_key_1")
 
 287                 .cpeAuthConfigKey("config_key_2")
 
 288                 .closeLoopConfigKey("config_key_3")
 
 289                 .streamSubscribesMap(subscribes)
 
 290                 .streamPublishesMap(Collections.singletonMap("config_key_3", streamsObject3))
 
 293         // Update the configuration
 
 294         configuration.updateCurrentConfiguration(updatedConfiguration);
 
 296         AaiClientConfiguration aaiClientConfiguration = configuration.getAaiClientConfiguration();
 
 297         assertAll("AAI Client Configuration Properties",
 
 298             () -> assertEquals("aai.onap.svc.cluster.local", aaiClientConfiguration.aaiHost()),
 
 299             () -> assertEquals(Integer.valueOf(8443), aaiClientConfiguration.aaiPort()),
 
 300             () -> assertEquals("http", aaiClientConfiguration.aaiProtocol()),
 
 301             () -> assertEquals("AAI-update", aaiClientConfiguration.aaiUserName()),
 
 302             () -> assertEquals("AAI-update", aaiClientConfiguration.aaiUserPassword()),
 
 303             () -> assertFalse(aaiClientConfiguration.aaiIgnoreSslCertificateErrors()),
 
 304             () -> assertEquals("bbs", aaiClientConfiguration.aaiHeaders().get("X-FromAppId")),
 
 305             () -> assertEquals("9999", aaiClientConfiguration.aaiHeaders().get("X-TransactionId")),
 
 306             () -> assertEquals("application/json", aaiClientConfiguration.aaiHeaders().get("Accept")),
 
 307             () -> assertEquals("true", aaiClientConfiguration.aaiHeaders().get("Real-Time")),
 
 308             () -> assertEquals("application/merge-patch+json",
 
 309                         aaiClientConfiguration.aaiHeaders().get("Content-Type"))
 
 312         DmaapConsumerConfiguration dmaapConsumerReRegistrationConfig =
 
 313                 configuration.getDmaapReRegistrationConsumerConfiguration();
 
 314         assertAll("DMaaP Consumer Re-Registration Configuration Properties",
 
 315             () -> assertEquals("we-are-message-router1.us", dmaapConsumerReRegistrationConfig.dmaapHostName()),
 
 316             () -> assertEquals(Integer.valueOf(3901), dmaapConsumerReRegistrationConfig.dmaapPortNumber()),
 
 317             () -> assertEquals("/events/unauthenticated.PNF_UPDATE",
 
 318                     dmaapConsumerReRegistrationConfig.dmaapTopicName()),
 
 319             () -> assertEquals("https", dmaapConsumerReRegistrationConfig.dmaapProtocol()),
 
 320             () -> assertEquals("", dmaapConsumerReRegistrationConfig.dmaapUserName()),
 
 321             () -> assertEquals("", dmaapConsumerReRegistrationConfig.dmaapUserPassword()),
 
 322             () -> assertEquals("application/json", dmaapConsumerReRegistrationConfig.dmaapContentType()),
 
 323             () -> assertEquals("c13", dmaapConsumerReRegistrationConfig.consumerId()),
 
 324             () -> assertEquals("OpenDcae-c13", dmaapConsumerReRegistrationConfig.consumerGroup()),
 
 325             () -> assertEquals(Integer.valueOf(5), dmaapConsumerReRegistrationConfig.timeoutMs()),
 
 326             () -> assertEquals(Integer.valueOf(10), dmaapConsumerReRegistrationConfig.messageLimit())
 
 329         DmaapConsumerConfiguration dmaapConsumerCpeAuthenticationConfig =
 
 330                 configuration.getDmaapCpeAuthenticationConsumerConfiguration();
 
 331         assertAll("DMaaP Consumer CPE Authentication Configuration Properties",
 
 332             () -> assertEquals("we-are-message-router2.us", dmaapConsumerCpeAuthenticationConfig.dmaapHostName()),
 
 333             () -> assertEquals(Integer.valueOf(3902), dmaapConsumerCpeAuthenticationConfig.dmaapPortNumber()),
 
 334             () -> assertEquals("/events/unauthenticated.CPE_AUTHENTICATION",
 
 335                     dmaapConsumerCpeAuthenticationConfig.dmaapTopicName()),
 
 336             () -> assertEquals("https", dmaapConsumerCpeAuthenticationConfig.dmaapProtocol()),
 
 337             () -> assertEquals("", dmaapConsumerCpeAuthenticationConfig.dmaapUserName()),
 
 338             () -> assertEquals("", dmaapConsumerCpeAuthenticationConfig.dmaapUserPassword()),
 
 339             () -> assertEquals("application/json", dmaapConsumerCpeAuthenticationConfig.dmaapContentType()),
 
 340             () -> assertEquals("c13", dmaapConsumerCpeAuthenticationConfig.consumerId()),
 
 341             () -> assertEquals("OpenDcae-c13", dmaapConsumerCpeAuthenticationConfig.consumerGroup()),
 
 342             () -> assertEquals(Integer.valueOf(5), dmaapConsumerCpeAuthenticationConfig.timeoutMs()),
 
 343             () -> assertEquals(Integer.valueOf(10), dmaapConsumerCpeAuthenticationConfig.messageLimit())
 
 346         DmaapPublisherConfiguration dmaapPublisherConfiguration = configuration.getDmaapPublisherConfiguration();
 
 347         assertAll("DMaaP Publisher Configuration Properties",
 
 348             () -> assertEquals("we-are-message-router3.us", dmaapPublisherConfiguration.dmaapHostName()),
 
 349             () -> assertEquals(Integer.valueOf(3903), dmaapPublisherConfiguration.dmaapPortNumber()),
 
 350             () -> assertEquals("/events/unauthenticated.DCAE_CL_OUTPUT",
 
 351                     dmaapPublisherConfiguration.dmaapTopicName()),
 
 352             () -> assertEquals("https", dmaapPublisherConfiguration.dmaapProtocol()),
 
 353             () -> assertEquals("", dmaapPublisherConfiguration.dmaapUserName()),
 
 354             () -> assertEquals("", dmaapPublisherConfiguration.dmaapUserPassword()),
 
 355             () -> assertEquals("application/json", dmaapPublisherConfiguration.dmaapContentType())
 
 358         assertAll("Generic Application Properties",
 
 359             () -> assertEquals(20, configuration.getPipelinesPollingIntervalInSeconds()),
 
 360             () -> assertEquals(20, configuration.getPipelinesTimeoutInSeconds()),
 
 361             () -> assertEquals(180, configuration.getCbsPollingInterval()),
 
 362             () -> assertEquals("2.0.0", configuration.getPolicyVersion()),
 
 363             () -> assertEquals("VM2", configuration.getCloseLoopTargetType()),
 
 364             () -> assertEquals("ONSET-update", configuration.getCloseLoopEventStatus()),
 
 365             () -> assertEquals("2.0.2", configuration.getCloseLoopVersion()),
 
 366             () -> assertEquals("Target-update", configuration.getCloseLoopTarget()),
 
 367             () -> assertEquals("Originator-update", configuration.getCloseLoopOriginator()),
 
 368             () -> assertEquals("policyScope-update", configuration.getReRegistrationCloseLoopPolicyScope()),
 
 369             () -> assertEquals("policyScope-update", configuration.getCpeAuthenticationCloseLoopPolicyScope()),
 
 370             () -> assertEquals("controlName-update", configuration.getReRegistrationCloseLoopControlName()),
 
 371             () -> assertEquals("controlName-update", configuration.getCpeAuthenticationCloseLoopControlName())