blob: 2abc7b05891e37ba2b0824479d1a29d755a8d93a [file] [log] [blame]
package com.googlesource.gerrit.plugins.multisite.broker;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.only;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import com.google.gerrit.extensions.registration.DynamicItem;
import com.google.gerrit.server.events.Event;
import com.googlesource.gerrit.plugins.multisite.forwarder.events.EventTopic;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class BrokerApiWrapperTest {
@Mock private BrokerMetrics brokerMetrics;
@Mock private BrokerApi brokerApi;
@Mock Event event;
private BrokerApiWrapper objectUnderTest;
@Before
public void setUp() {
objectUnderTest =
new BrokerApiWrapper(DynamicItem.itemOf(BrokerApi.class, brokerApi), brokerMetrics);
}
@Test
public void shouldIncrementBrokerMetricCounterWhenMessagePublished() {
when(brokerApi.send(any(), any())).thenReturn(true);
objectUnderTest.send(EventTopic.INDEX_TOPIC.topic(), event);
verify(brokerMetrics, only()).incrementBrokerPublishedMessage();
}
@Test
public void shouldIncrementBrokerFailedMetricCounterWhenMessagePublishingFailed() {
when(brokerApi.send(any(), any())).thenReturn(false);
objectUnderTest.send(EventTopic.INDEX_TOPIC.topic(), event);
verify(brokerMetrics, only()).incrementBrokerFailedToPublishMessage();
}
@Test
public void shouldIncrementBrokerFailedMetricCounterWhenUnexpectedException() {
when(brokerApi.send(any(), any()))
.thenThrow(new RuntimeException("Unexpected runtime exception"));
try {
objectUnderTest.send(EventTopic.INDEX_TOPIC.topic(), event);
} catch (RuntimeException e) {
// expected
}
verify(brokerMetrics, only()).incrementBrokerFailedToPublishMessage();
}
}