- @Test
- public void testGetProducerReturnsNull() throws Exception {
- MessageAdapter maSpy = Mockito.spy(messageAdapter);
- Mockito.doNothing().when(maSpy).createProducer();
-
- Producer producer = maSpy.getProducer();
- Assert.assertTrue("getProducer() did not return null", producer == null);
- Producer mySpyProducer = Whitebox.getInternalState(maSpy, "producer");
- Assert.assertTrue("MessageAdapter producer is not null", mySpyProducer == null);
- Mockito.verify(maSpy, Mockito.times(1)).createProducer();
- }
-
- @Test
- public void testGetProducerWithExistingProducer() throws Exception {
- MessageAdapter maSpy = Mockito.spy(messageAdapter);
- Whitebox.setInternalState(maSpy, "producer", fakeProducer);
-
- Producer producer = maSpy.getProducer();
- Assert.assertTrue("getProducer() returned null", producer == fakeProducer);
- Mockito.verify(maSpy, Mockito.times(0)).createProducer();
- }
-
- @Test
- public void testGetProducerWithCreateProducer() throws Exception {
- MessageAdapter maSpy = Mockito.spy(messageAdapter);
- Whitebox.setInternalState(maSpy, "producer", (Object) null);
- HashSet<String> pool = new HashSet<>();
- pool.add("NOT_HTTPS");
- pool.add("https");
- Whitebox.setInternalState(maSpy, "pool", pool);
-
- // Prepare all mocks
- mockStatic(FrameworkUtil.class);
- Bundle maBundle = mock(Bundle.class);
- PowerMockito.when(FrameworkUtil.getBundle(MessageAdapter.class)).thenReturn(maBundle);
-
- BundleContext maBundleContext = mock(BundleContext.class);
- Mockito.when(maBundle.getBundleContext()).thenReturn(maBundleContext);
-
- ServiceReference svcRef = mock(ServiceReference.class);
- Mockito.when(maBundleContext.getServiceReference(MessageAdapterFactory.class.getName())).thenReturn(svcRef);
-
- MessageAdapterFactory maFactory = mock(MessageAdapterFactory.class);
- Mockito.when(maBundleContext.getService(svcRef)).thenReturn(maFactory);
- Mockito.when(maFactory.createProducer(pool, (String) null, null, null)).thenReturn(fakeProducer);
-
- Producer producer = maSpy.getProducer();
- Assert.assertTrue("getProducer() result does not match", producer == fakeProducer);
- Producer mySpyProducer = Whitebox.getInternalState(maSpy, "producer");
- Assert.assertTrue("MessageAdapter producer does not match",mySpyProducer == fakeProducer);
- Mockito.verify(maSpy, Mockito.times(1)).createProducer();
- }
-
- @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());
- }
-