diff --git a/build.gradle b/build.gradle index 7e8436dc..a165f97a 100644 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,7 @@ allprojects { targetCompatibility = '1.8' } - version = '1.0.1' + version = '1.0.2' } java { diff --git a/src/test/java/software/amazon/cloudwatchlogs/emf/logger/MetricsLoggerTest.java b/src/test/java/software/amazon/cloudwatchlogs/emf/logger/MetricsLoggerTest.java index 248c4b67..5d8beff5 100644 --- a/src/test/java/software/amazon/cloudwatchlogs/emf/logger/MetricsLoggerTest.java +++ b/src/test/java/software/amazon/cloudwatchlogs/emf/logger/MetricsLoggerTest.java @@ -17,6 +17,7 @@ package software.amazon.cloudwatchlogs.emf.logger; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.*; import java.util.List; @@ -176,6 +177,30 @@ public void testUseDefaultEnvironmentOnResolverException() { expectDimension("ServiceType", serviceType); } + @Test + public void testNoDefaultDimensions() { + MetricsLogger logger = new MetricsLogger(envProvider); + logger.setDimensions(); + logger.putMetric("Count", 1); + logger.flush(); + List dimensions = sink.getContext().getDimensions(); + + assertTrue(dimensions.size() == 0); + assertTrue(sink.getLogEvents().size() == 1); + + String logEvent = sink.getLogEvents().get(0); + assertTrue(logEvent.contains("\"Dimensions\":[]")); + } + + @Test + public void testNoDefaultDimensionsAfterSetDimension() { + MetricsLogger logger = new MetricsLogger(envProvider); + + logger.setDimensions(DimensionSet.of("Name", "Test")); + logger.flush(); + expectDimension("Name", "Test"); + } + private void expectDimension(String dimension, String value) { List dimensions = sink.getContext().getDimensions(); assertEquals(dimensions.size(), 1); diff --git a/src/test/java/software/amazon/cloudwatchlogs/emf/model/MetricDirectiveTest.java b/src/test/java/software/amazon/cloudwatchlogs/emf/model/MetricDirectiveTest.java index 73a65775..6b0e6cff 100644 --- a/src/test/java/software/amazon/cloudwatchlogs/emf/model/MetricDirectiveTest.java +++ b/src/test/java/software/amazon/cloudwatchlogs/emf/model/MetricDirectiveTest.java @@ -113,6 +113,15 @@ public void testPutMultipleDimensionSets() throws JsonProcessingException { "{\"Dimensions\":[[\"Region\"],[\"Instance\"]],\"Metrics\":[],\"Namespace\":\"aws-embedded-metrics\"}"); } + @Test + public void testGetDimensionAfterSetDimensions() { + MetricDirective metricDirective = new MetricDirective(); + metricDirective.setDefaultDimensions(DimensionSet.of("Dim", "Default")); + metricDirective.setDimensions(Arrays.asList(DimensionSet.of("Name", "Test"))); + + assertEquals(1, metricDirective.getAllDimensions().size()); + } + @Test public void testPutDimensionsWhenDefaultDimensionsDefined() throws JsonProcessingException { MetricDirective metricDirective = new MetricDirective(); diff --git a/src/test/java/software/amazon/cloudwatchlogs/emf/sinks/SinkShunt.java b/src/test/java/software/amazon/cloudwatchlogs/emf/sinks/SinkShunt.java index ea39e990..9b0bf18d 100644 --- a/src/test/java/software/amazon/cloudwatchlogs/emf/sinks/SinkShunt.java +++ b/src/test/java/software/amazon/cloudwatchlogs/emf/sinks/SinkShunt.java @@ -16,18 +16,30 @@ package software.amazon.cloudwatchlogs.emf.sinks; +import java.util.List; import software.amazon.cloudwatchlogs.emf.model.MetricsContext; public class SinkShunt implements ISink { private MetricsContext context; + private List logEvents; + @Override public void accept(MetricsContext context) { this.context = context; + try { + this.logEvents = context.serialize(); + } catch (Exception e) { + throw new RuntimeException(e); + } } public MetricsContext getContext() { return context; } + + public List getLogEvents() { + return this.logEvents; + } }