From 9e0219abc61b28b94d88fefbf8cc4a13d1683a67 Mon Sep 17 00:00:00 2001 From: Rob Daugherty Date: Mon, 10 Sep 2018 17:45:52 -0400 Subject: Functional so/libs unit tests Unit tests to prepare for migration from the codehaus to the fasterxml implementation of jackson. Iincreases the code coverage metric from 51% to 70%. Change-Id: I6338214f3de9df95956b46d4e313d00052eb8692 Issue-ID: SO-1011 Signed-off-by: Rob Daugherty --- ceilometer-model/pom.xml | 6 +- .../openstack/ceilometer/v2/model/MeterTest.java | 80 ++++++++----- .../ceilometer/v2/model/ResourceTest.java | 76 ++++++++---- .../openstack/ceilometer/v2/model/SampleTest.java | 130 ++++++++++++--------- .../ceilometer/v2/model/StatisticsTest.java | 126 +++++++++++--------- 5 files changed, 264 insertions(+), 154 deletions(-) (limited to 'ceilometer-model') diff --git a/ceilometer-model/pom.xml b/ceilometer-model/pom.xml index b6f2a8f..a86b621 100644 --- a/ceilometer-model/pom.xml +++ b/ceilometer-model/pom.xml @@ -14,7 +14,11 @@ junit junit - 4.12 + test + + + org.skyscreamer + jsonassert test diff --git a/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/MeterTest.java b/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/MeterTest.java index e8ac582..97bb2af 100644 --- a/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/MeterTest.java +++ b/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/MeterTest.java @@ -2,8 +2,8 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2018 Huawei Intellectual Property. All rights reserved. - * ================================================================================ + * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -17,42 +17,68 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package com.woorea.openstack.ceilometer.v2.model; +import com.woorea.openstack.ceilometer.v2.model.Meter; +import org.codehaus.jackson.map.DeserializationConfig; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.SerializationConfig; +import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; +import org.junit.Assert; import org.junit.Test; +import org.skyscreamer.jsonassert.JSONAssert; +import org.skyscreamer.jsonassert.JSONCompareMode; public class MeterTest { - Meter meter = new Meter(); + private static final String EOL = System.lineSeparator(); - @Test - public void getUserTest() throws Exception { - meter.getUser(); - } + private static final String JSON_FULL = "{" + EOL + + " \"name\" : \"name\"," + EOL + + " \"type\" : \"type\"," + EOL + + " \"unit\" : \"unit\"," + EOL + + " \"user_id\" : \"user\"," + EOL + + " \"resource_id\" : \"resource\"," + EOL + + " \"project_id\" : \"project\"" + EOL + + "}"; - @Test - public void getNameTest() throws Exception { - meter.getName(); - } + private ObjectMapper objectMapper = new ObjectMapper() + .setSerializationInclusion(Inclusion.NON_NULL) + .enable(SerializationConfig.Feature.INDENT_OUTPUT) + .enable(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY); @Test - public void getResource() throws Exception { - meter.getResource(); + public void testSerialization() throws Exception { + System.out.println("CLASS: " + Meter.class.getName()); + System.out.println("TEST JSON: " + JSON_FULL); + Meter meter = objectMapper.readValue(JSON_FULL, Meter.class); + String json = objectMapper.writeValueAsString(meter); + System.out.println("RE-SERIALIZED OBJECT: " + json); + JSONAssert.assertEquals(JSON_FULL, json, JSONCompareMode.LENIENT); } @Test - public void getProjectTest() throws Exception { - meter.getProject(); + public void testMethods() throws Exception { + Meter meter = objectMapper.readValue(JSON_FULL, Meter.class); + meter.toString(); + + String unit = meter.getUnit(); + Assert.assertNotNull(unit); + + String resource = meter.getResource(); + Assert.assertNotNull(resource); + + String name = meter.getName(); + Assert.assertNotNull(name); + + String project = meter.getProject(); + Assert.assertNotNull(project); + + String type = meter.getType(); + Assert.assertNotNull(type); + + String user = meter.getUser(); + Assert.assertNotNull(user); } - - @Test - public void getTypeTest() throws Exception { - meter.getType(); - } - - @Test - public void getUnitTest() throws Exception { - meter.getUnit(); - } - -} \ No newline at end of file +} diff --git a/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/ResourceTest.java b/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/ResourceTest.java index 13a75df..10b361e 100644 --- a/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/ResourceTest.java +++ b/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/ResourceTest.java @@ -2,8 +2,8 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2018 Huawei Intellectual Property. All rights reserved. - * ================================================================================ + * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -17,37 +17,69 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package com.woorea.openstack.ceilometer.v2.model; +import com.woorea.openstack.ceilometer.v2.model.Resource; +import java.util.Map; +import org.codehaus.jackson.map.DeserializationConfig; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.SerializationConfig; +import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; +import org.junit.Assert; import org.junit.Test; +import org.skyscreamer.jsonassert.JSONAssert; +import org.skyscreamer.jsonassert.JSONCompareMode; public class ResourceTest { - Resource resource = new Resource(); - - @Test - public void getResourceTest() throws Exception { - resource.getResource(); - } + private static final String EOL = System.lineSeparator(); - @Test - public void getTimestampTest() throws Exception { - resource.getTimestamp(); - } + private static final String JSON_FULL = "{" + EOL + + " \"timestamp\" : \"timestamp\"," + EOL + + " \"metadata\" : {" + EOL + + " \"metadata-k1\" : \"metadata-v1\"," + EOL + + " \"metadata-k2\" : \"metadata-v2\"" + EOL + + " }," + EOL + + " \"resource_id\" : \"resource\"," + EOL + + " \"project_id\" : \"project\"," + EOL + + " \"user_id\" : \"user\"" + EOL + + "}"; - @Test - public void getProjectTest() throws Exception { - resource.getProject(); - } + private ObjectMapper objectMapper = new ObjectMapper() + .setSerializationInclusion(Inclusion.NON_NULL) + .enable(SerializationConfig.Feature.INDENT_OUTPUT) + .enable(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY); @Test - public void getUserTest() throws Exception { - resource.getUser(); + public void testSerialization() throws Exception { + System.out.println("CLASS: " + Resource.class.getName()); + System.out.println("TEST JSON: " + JSON_FULL); + Resource resource = objectMapper.readValue(JSON_FULL, Resource.class); + String json = objectMapper.writeValueAsString(resource); + System.out.println("RE-SERIALIZED OBJECT: " + json); + JSONAssert.assertEquals(JSON_FULL, json, JSONCompareMode.LENIENT); } @Test - public void getMetadataTest() throws Exception { - resource.getMetadata(); + public void testMethods() throws Exception { + Resource resource = objectMapper.readValue(JSON_FULL, Resource.class); + resource.toString(); + + Map metadata = resource.getMetadata(); + Assert.assertNotNull(metadata); + Assert.assertEquals(2, metadata.size()); + + String resourceProperty = resource.getResource(); + Assert.assertNotNull(resourceProperty); + + String project = resource.getProject(); + Assert.assertNotNull(project); + + String user = resource.getUser(); + Assert.assertNotNull(user); + + String timestamp = resource.getTimestamp(); + Assert.assertNotNull(timestamp); } - -} \ No newline at end of file +} diff --git a/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/SampleTest.java b/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/SampleTest.java index ed89c3b..fa8325e 100644 --- a/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/SampleTest.java +++ b/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/SampleTest.java @@ -2,8 +2,8 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2018 Huawei Intellectual Property. All rights reserved. - * ================================================================================ + * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -17,67 +17,93 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package com.woorea.openstack.ceilometer.v2.model; +import com.woorea.openstack.ceilometer.v2.model.Sample; +import java.util.Map; +import org.codehaus.jackson.map.DeserializationConfig; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.SerializationConfig; +import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; +import org.junit.Assert; import org.junit.Test; +import org.skyscreamer.jsonassert.JSONAssert; +import org.skyscreamer.jsonassert.JSONCompareMode; public class SampleTest { - Sample sample = new Sample(); - - @Test - public void getCounterTypeTest() throws Exception { - sample.getCounterType(); - } - - @Test - public void getCounterNameTest() throws Exception { - sample.getCounterName(); - } - - @Test - public void getCounterUnitTest() throws Exception { - sample.getCounterUnit(); - } - - @Test - public void getCounterVolumeTest() throws Exception { - sample.getCounterVolume(); - } - - @Test - public void getSourceTest() throws Exception { - sample.getSource(); - } - - @Test - public void getProjectTest() throws Exception { - sample.getProject(); - } - - @Test - public void getUserTest() throws Exception { - sample.getUser(); - } + private static final String EOL = System.lineSeparator(); - @Test - public void getResourceTest() throws Exception { - sample.getResource(); - } + private static final String JSON_FULL = "{" + EOL + + " \"source\" : \"source\"," + EOL + + " \"timestamp\" : \"timestamp\"," + EOL + + " \"counter_type\" : \"countertype\"," + EOL + + " \"counter_name\" : \"countername\"," + EOL + + " \"counter_unit\" : \"counterunit\"," + EOL + + " \"counter_volume\" : \"countervolume\"," + EOL + + " \"project_id\" : \"project\"," + EOL + + " \"user_id\" : \"user\"," + EOL + + " \"resource_id\" : \"resource\"," + EOL + + " \"message_id\" : \"message\"," + EOL + + " \"resource_metadata\" : {" + EOL + + " \"metadata-k1\" : \"metadata-v1\"," + EOL + + " \"metadata-k2\" : \"metadata-v2\"" + EOL + + " }" + EOL + + "}"; - @Test - public void getTimestampTest() throws Exception { - sample.getTimestamp(); - } + private ObjectMapper objectMapper = new ObjectMapper() + .setSerializationInclusion(Inclusion.NON_NULL) + .enable(SerializationConfig.Feature.INDENT_OUTPUT) + .enable(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY); @Test - public void getMessageTest() throws Exception { - sample.getMessage(); + public void testSerialization() throws Exception { + System.out.println("CLASS: " + Sample.class.getName()); + System.out.println("TEST JSON: " + JSON_FULL); + Sample sample = objectMapper.readValue(JSON_FULL, Sample.class); + String json = objectMapper.writeValueAsString(sample); + System.out.println("RE-SERIALIZED OBJECT: " + json); + JSONAssert.assertEquals(JSON_FULL, json, JSONCompareMode.LENIENT); } @Test - public void getMetadataTest() throws Exception { - sample.getMetadata(); + public void testMethods() throws Exception { + Sample sample = objectMapper.readValue(JSON_FULL, Sample.class); + sample.toString(); + + String counterName = sample.getCounterName(); + Assert.assertNotNull(counterName); + + Map metadata = sample.getMetadata(); + Assert.assertNotNull(metadata); + Assert.assertEquals(2, metadata.size()); + + String resource = sample.getResource(); + Assert.assertNotNull(resource); + + String counterVolume = sample.getCounterVolume(); + Assert.assertNotNull(counterVolume); + + String project = sample.getProject(); + Assert.assertNotNull(project); + + String counterUnit = sample.getCounterUnit(); + Assert.assertNotNull(counterUnit); + + String source = sample.getSource(); + Assert.assertNotNull(source); + + String counterType = sample.getCounterType(); + Assert.assertNotNull(counterType); + + String message = sample.getMessage(); + Assert.assertNotNull(message); + + String user = sample.getUser(); + Assert.assertNotNull(user); + + String timestamp = sample.getTimestamp(); + Assert.assertNotNull(timestamp); } - -} \ No newline at end of file +} diff --git a/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/StatisticsTest.java b/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/StatisticsTest.java index a911bbb..d3e7597 100644 --- a/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/StatisticsTest.java +++ b/ceilometer-model/src/test/java/com/woorea/openstack/ceilometer/v2/model/StatisticsTest.java @@ -2,8 +2,8 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2018 Huawei Intellectual Property. All rights reserved. - * ================================================================================ + * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -17,67 +17,89 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package com.woorea.openstack.ceilometer.v2.model; +import com.woorea.openstack.ceilometer.v2.model.Statistics; +import java.math.BigDecimal; +import org.codehaus.jackson.map.DeserializationConfig; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.SerializationConfig; +import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; +import org.junit.Assert; import org.junit.Test; +import org.skyscreamer.jsonassert.JSONAssert; +import org.skyscreamer.jsonassert.JSONCompareMode; public class StatisticsTest { - Statistics statistics = new Statistics(); - - @Test - public void getAvgTest() throws Exception { - statistics.getAvg(); - } - - @Test - public void getCountTest() throws Exception { - statistics.getCount(); - } - - @Test - public void getDurationTest() throws Exception { - statistics.getDuration(); - } - - @Test - public void getDurationStartTest() throws Exception { - statistics.getDurationStart(); - } - - @Test - public void getDurationEndTest() throws Exception { - statistics.getDurationEnd(); - } - - @Test - public void getMaxTest() throws Exception { - statistics.getMax(); - } - - @Test - public void getMinTest() throws Exception { - statistics.getMin(); - } + private static final String EOL = System.lineSeparator(); - @Test - public void getPeriodTest() throws Exception { - statistics.getPeriod(); - } + private static final String JSON_FULL = "{" + EOL + + " \"avg\" : 79," + EOL + + " \"count\" : 14," + EOL + + " \"duration\" : 31," + EOL + + " \"max\" : 87," + EOL + + " \"min\" : 85," + EOL + + " \"period\" : 4," + EOL + + " \"sum\" : 2," + EOL + + " \"duration_start\" : \"durationstart\"," + EOL + + " \"duration_end\" : \"durationend\"," + EOL + + " \"period_start\" : \"periodstart\"," + EOL + + " \"period_end\" : \"periodend\"" + EOL + + "}"; - @Test - public void getPeriodStartTest() throws Exception { - statistics.getPeriodStart(); - } + private ObjectMapper objectMapper = new ObjectMapper() + .setSerializationInclusion(Inclusion.NON_NULL) + .enable(SerializationConfig.Feature.INDENT_OUTPUT) + .enable(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY); @Test - public void getPeriodEndTest() throws Exception { - statistics.getPeriodEnd(); + public void testSerialization() throws Exception { + System.out.println("CLASS: " + Statistics.class.getName()); + System.out.println("TEST JSON: " + JSON_FULL); + Statistics statistics = objectMapper.readValue(JSON_FULL, Statistics.class); + String json = objectMapper.writeValueAsString(statistics); + System.out.println("RE-SERIALIZED OBJECT: " + json); + JSONAssert.assertEquals(JSON_FULL, json, JSONCompareMode.LENIENT); } @Test - public void getSumTest() throws Exception { - statistics.getSum(); + public void testMethods() throws Exception { + Statistics statistics = objectMapper.readValue(JSON_FULL, Statistics.class); + statistics.toString(); + + BigDecimal duration = statistics.getDuration(); + Assert.assertNotNull(duration); + + BigDecimal period = statistics.getPeriod(); + Assert.assertNotNull(period); + + BigDecimal avg = statistics.getAvg(); + Assert.assertNotNull(avg); + + BigDecimal min = statistics.getMin(); + Assert.assertNotNull(min); + + String durationStart = statistics.getDurationStart(); + Assert.assertNotNull(durationStart); + + BigDecimal max = statistics.getMax(); + Assert.assertNotNull(max); + + String durationEnd = statistics.getDurationEnd(); + Assert.assertNotNull(durationEnd); + + BigDecimal count = statistics.getCount(); + Assert.assertNotNull(count); + + BigDecimal sum = statistics.getSum(); + Assert.assertNotNull(sum); + + String periodStart = statistics.getPeriodStart(); + Assert.assertNotNull(periodStart); + + String periodEnd = statistics.getPeriodEnd(); + Assert.assertNotNull(periodEnd); } - -} \ No newline at end of file +} -- cgit 1.2.3-korg