package rocks.inspectit.server.alerting.util;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
import org.testng.annotations.Test;
import rocks.inspectit.server.influx.constants.Series;
import rocks.inspectit.shared.all.testbase.TestBase;
import rocks.inspectit.shared.cs.ci.AlertingDefinition;
/**
* Testing the functionality of {@link AlertingUtils}.
*
* @author Alexander Wert
*
*/
@SuppressWarnings("PMD")
public class AlertingUtilsTest extends TestBase {
/**
* Tests the {@link AlertingUtils#isBusinessTransactionAlert(AlertingDefinition)} method.
*
* @author Alexander Wert
*
*/
public static class IsBusinessTransactionAlert extends AlertingUtilsTest {
@Test
public void successful() {
AlertingDefinition alertingDefinition = new AlertingDefinition();
alertingDefinition.setMeasurement(Series.BusinessTransaction.NAME);
alertingDefinition.setField(Series.BusinessTransaction.FIELD_DURATION);
boolean result = AlertingUtils.isBusinessTransactionAlert(alertingDefinition);
assertTrue(result);
}
@Test
public void wrongMeasurement() {
AlertingDefinition alertingDefinition = new AlertingDefinition();
alertingDefinition.setMeasurement("measurement");
alertingDefinition.setField(Series.BusinessTransaction.FIELD_DURATION);
boolean result = AlertingUtils.isBusinessTransactionAlert(alertingDefinition);
assertFalse(result);
}
@Test
public void wrongField() {
AlertingDefinition alertingDefinition = new AlertingDefinition();
alertingDefinition.setMeasurement(Series.BusinessTransaction.NAME);
alertingDefinition.setField("field");
boolean result = AlertingUtils.isBusinessTransactionAlert(alertingDefinition);
assertFalse(result);
}
@Test
public void wrongFieldAndMeasurement() {
AlertingDefinition alertingDefinition = new AlertingDefinition();
alertingDefinition.setMeasurement("measurement");
alertingDefinition.setField("field");
boolean result = AlertingUtils.isBusinessTransactionAlert(alertingDefinition);
assertFalse(result);
}
}
/**
* Tests the {@link AlertingUtils#retrieveApplicaitonName(AlertingDefinition)} method.
*/
public static class RetrieveApplicaitonName extends AlertingUtilsTest {
@Test
public void successful() {
AlertingDefinition alertingDefinition = new AlertingDefinition();
alertingDefinition.setMeasurement(Series.BusinessTransaction.NAME);
alertingDefinition.setField(Series.BusinessTransaction.FIELD_DURATION);
alertingDefinition.putTag(Series.BusinessTransaction.TAG_APPLICATION_NAME, "appName");
String result = AlertingUtils.retrieveApplicaitonName(alertingDefinition);
assertThat(result, is("appName"));
}
@Test
public void noNameAvailable() {
AlertingDefinition alertingDefinition = new AlertingDefinition();
alertingDefinition.setMeasurement(Series.BusinessTransaction.NAME);
alertingDefinition.setField(Series.BusinessTransaction.FIELD_DURATION);
String result = AlertingUtils.retrieveApplicaitonName(alertingDefinition);
assertThat(result, is(nullValue()));
}
@Test
public void noBusinessTransaction() {
AlertingDefinition alertingDefinition = new AlertingDefinition();
alertingDefinition.putTag(Series.BusinessTransaction.TAG_APPLICATION_NAME, "appName");
String result = AlertingUtils.retrieveApplicaitonName(alertingDefinition);
assertThat(result, is(nullValue()));
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void alertingDefinitionIsNull() {
AlertingUtils.retrieveApplicaitonName(null);
}
}
/**
* Tests the {@link AlertingUtils#retrieveBusinessTransactionName(AlertingDefinition)} method.
*/
public static class RetrieveBusinessTransactionName extends AlertingUtilsTest {
@Test
public void successful() {
AlertingDefinition alertingDefinition = new AlertingDefinition();
alertingDefinition.setMeasurement(Series.BusinessTransaction.NAME);
alertingDefinition.setField(Series.BusinessTransaction.FIELD_DURATION);
alertingDefinition.putTag(Series.BusinessTransaction.TAG_BUSINESS_TRANSACTION_NAME, "btxName");
String result = AlertingUtils.retrieveBusinessTransactionName(alertingDefinition);
assertThat(result, is("btxName"));
}
@Test
public void noNameAvailable() {
AlertingDefinition alertingDefinition = new AlertingDefinition();
alertingDefinition.setMeasurement(Series.BusinessTransaction.NAME);
alertingDefinition.setField(Series.BusinessTransaction.FIELD_DURATION);
String result = AlertingUtils.retrieveBusinessTransactionName(alertingDefinition);
assertThat(result, is(nullValue()));
}
@Test
public void noBusinessTransaction() {
AlertingDefinition alertingDefinition = new AlertingDefinition();
alertingDefinition.putTag(Series.BusinessTransaction.TAG_BUSINESS_TRANSACTION_NAME, "btxName");
String result = AlertingUtils.retrieveBusinessTransactionName(alertingDefinition);
assertThat(result, is(nullValue()));
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void alertingDefinitionIsNull() {
AlertingUtils.retrieveBusinessTransactionName(null);
}
}
}