+
+ @Test
+ public void testUpdateProperties() {
+ MessageAdapter maSpy = Mockito.spy(messageAdapter);
+ Mockito.doNothing().when(maSpy).createProducer();
+ Whitebox.setInternalState(maSpy, "isDisabled", false);
+ PowerMockito.mockStatic(ConfigurationFactory.class);
+ Configuration mockConfig = Mockito.mock(Configuration.class);
+ Properties properties = new Properties();
+ properties.setProperty("appc.OAM.poolMembers", "hostname1,hostname2");
+ Mockito.when(ConfigurationFactory.getConfiguration()).thenReturn(mockConfig);
+ Mockito.doReturn(properties).when(mockConfig).getProperties();
+ maSpy.init();
+ assertEquals(2, ((Set<String>)Whitebox.getInternalState(maSpy, "pool")).size());
+ }
+
+ @Test
+ public void testPost() throws JsonProcessingException {
+ MessageAdapter maSpy = Mockito.spy(messageAdapter);
+ OAMContext oamContext = new OAMContext();
+ oamContext.setRpcName(RPC.maintenance_mode);
+ CommonHeader mockCommonHeader = Mockito.mock(CommonHeader.class);
+ Mockito.doReturn("TEST REQUEST ID").when(mockCommonHeader).getRequestId();
+ oamContext.setCommonHeader(mockCommonHeader);
+ Status mockStatus = Mockito.mock(Status.class);
+ oamContext.setStatus(mockStatus);
+ EELFLogger mockLogger = Mockito.mock(EELFLogger.class);
+ Mockito.doReturn(true).when(mockLogger).isTraceEnabled();
+ Mockito.doReturn(true).when(mockLogger).isDebugEnabled();
+ Whitebox.setInternalState(maSpy, "logger", mockLogger);
+ PowerMockito.mockStatic(Converter.class);
+ Mockito.when(Converter.convAsyncResponseToUebOutgoingMessageJsonString(oamContext)).thenReturn("{cambriaPartition='MSO', rpcName='maintenance_mode',"
+ + " body=Body{output=MaintenanceModeOutput [_commonHeader=CommonHeader, hashCode: 14584991,"
+ + " _status=Status, hashCode: 24801521, augmentation=[]]}}");
+ Mockito.doNothing().when(maSpy).createProducer();
+ maSpy.post(oamContext);
+ Mockito.verify(mockLogger).trace(Mockito.contains("Entering to post"));
+ Mockito.verify(mockLogger).trace("Exiting from post with (success = false)");
+ }
+
+ @Test
+ public void testPostExceptionFlow() throws JsonProcessingException {
+ MessageAdapter maSpy = Mockito.spy(messageAdapter);
+ OAMContext oamContext = new OAMContext();
+ oamContext.setRpcName(RPC.maintenance_mode);
+ CommonHeader mockCommonHeader = Mockito.mock(CommonHeader.class);
+ Mockito.doReturn("TEST REQUEST ID").when(mockCommonHeader).getRequestId();
+ oamContext.setCommonHeader(mockCommonHeader);
+ Status mockStatus = Mockito.mock(Status.class);
+ oamContext.setStatus(mockStatus);
+ EELFLogger mockLogger = Mockito.mock(EELFLogger.class);
+ Mockito.doReturn(false).when(mockLogger).isTraceEnabled();
+ Mockito.doReturn(false).when(mockLogger).isDebugEnabled();
+ Whitebox.setInternalState(maSpy, "logger", mockLogger);
+ PowerMockito.mockStatic(Converter.class);
+ Mockito.when(Converter.convAsyncResponseToUebOutgoingMessageJsonString(oamContext)).thenThrow(new JsonProcessingException("ERROR") {});
+ Mockito.doNothing().when(maSpy).createProducer();
+ maSpy.post(oamContext);
+ Mockito.verify(mockLogger).error(Mockito.contains("Error generating Json from UEB message"));
+ }
+
+ @Test
+ public void testPostExceptionFlow2() throws JsonProcessingException {
+ MessageAdapter maSpy = Mockito.spy(messageAdapter);
+ OAMContext oamContext = new OAMContext();
+ oamContext.setRpcName(RPC.maintenance_mode);
+ CommonHeader mockCommonHeader = Mockito.mock(CommonHeader.class);
+ Mockito.doReturn("TEST REQUEST ID").when(mockCommonHeader).getRequestId();
+ oamContext.setCommonHeader(mockCommonHeader);
+ Status mockStatus = Mockito.mock(Status.class);
+ oamContext.setStatus(mockStatus);
+ EELFLogger mockLogger = Mockito.mock(EELFLogger.class);
+ Mockito.doReturn(false).when(mockLogger).isTraceEnabled();
+ Mockito.doReturn(false).when(mockLogger).isDebugEnabled();
+ Whitebox.setInternalState(maSpy, "logger", mockLogger);
+ PowerMockito.mockStatic(Converter.class);
+ Mockito.when(Converter.convAsyncResponseToUebOutgoingMessageJsonString(oamContext)).thenThrow(new RuntimeException("ERROR"));
+ Mockito.doNothing().when(maSpy).createProducer();
+ maSpy.post(oamContext);
+ Mockito.verify(mockLogger).error(Mockito.contains("Error sending message to UEB ERROR"), Mockito.any(RuntimeException.class));
+ }
+}
\ No newline at end of file