diff options
6 files changed, 58 insertions, 151 deletions
diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/Server.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/Server.java index 8a61751..0226218 100644 --- a/nova-model/src/main/java/com/woorea/openstack/nova/model/Server.java +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/Server.java @@ -24,12 +24,12 @@ import java.util.Map; import com.fasterxml.jackson.annotation.JsonAnySetter; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; +import com.woorea.openstack.nova.model.Server.Addresses.Address; @JsonRootName("server") public class Server implements Serializable { public static final class Addresses implements Serializable { - public static final class Address implements Serializable { @JsonProperty("OS-EXT-IPS-MAC:mac_addr") @@ -99,33 +99,9 @@ public class Server implements Serializable { this.macAddr = macAddr; } } - - private Map<String, List<Address>> addresses = new HashMap<>(); - - @JsonAnySetter - public void add(String key, List<Address> value) { - addresses.put(key, value); - } - - /** - * @return the ip address List Map - */ - public Map<String, List<Address>> getAddresses() { - return addresses; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Addresses List Map [" + addresses + "]"; - } - } + public static final class Fault { private Integer code; @@ -183,7 +159,7 @@ public class Server implements Serializable { private String name; - private Addresses addresses; + private Map<String, List<Address>> addresses = new HashMap<>(); private List<Link> links; @@ -278,7 +254,7 @@ public class Server implements Serializable { /** * @return the addresses */ - public Addresses getAddresses() { + public Map<String, List<Address>> getAddresses() { return addresses; } @@ -317,6 +293,12 @@ public class Server implements Serializable { this.flavor = flavor; } + + @JsonAnySetter + public void setAddresses(String key, List<Address> value) { + addresses.put(key, value); + } + /** * @return the accessIPv4 */ diff --git a/nova-model/src/test/java/com/woorea/openstack/nova/model/AddressTest.java b/nova-model/src/test/java/com/woorea/openstack/nova/model/AddressTest.java index b796f7f..70bfc8f 100644 --- a/nova-model/src/test/java/com/woorea/openstack/nova/model/AddressTest.java +++ b/nova-model/src/test/java/com/woorea/openstack/nova/model/AddressTest.java @@ -20,15 +20,15 @@ package com.woorea.openstack.nova.model; +import org.junit.Assert; +import org.junit.Test; +import org.skyscreamer.jsonassert.JSONAssert; +import org.skyscreamer.jsonassert.JSONCompareMode; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.woorea.openstack.nova.model.Server.Addresses.Address; -import org.junit.Assert; -import org.junit.Test; -import org.skyscreamer.jsonassert.JSONAssert; -import org.skyscreamer.jsonassert.JSONCompareMode; public class AddressTest { diff --git a/nova-model/src/test/java/com/woorea/openstack/nova/model/AddressesTest.java b/nova-model/src/test/java/com/woorea/openstack/nova/model/AddressesTest.java deleted file mode 100644 index 12dcc15..0000000 --- a/nova-model/src/test/java/com/woorea/openstack/nova/model/AddressesTest.java +++ /dev/null @@ -1,74 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * 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 - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package com.woorea.openstack.nova.model; - -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.woorea.openstack.nova.model.Server.Addresses; -import com.woorea.openstack.nova.model.Server.Addresses.Address; -import java.util.List; -import java.util.Map; -import org.junit.Assert; -import org.junit.Test; -import org.skyscreamer.jsonassert.JSONAssert; -import org.skyscreamer.jsonassert.JSONCompareMode; - -public class AddressesTest { - - private static final String EOL = System.lineSeparator(); - - private static final String JSON_FULL = "{" + EOL + " \"addresses\" : {" + EOL + " \"addresses-k1\" : [ {" + EOL - + " \"version\" : \"version\"," + EOL + " \"addr\" : \"addr\"," + EOL - + " \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL + " \"OS-EXT-IPS:type\" : \"type\"" + EOL - + " }, {" + EOL + " \"version\" : \"version\"," + EOL + " \"addr\" : \"addr\"," + EOL - + " \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL + " \"OS-EXT-IPS:type\" : \"type\"" + EOL - + " } ]," + EOL + " \"addresses-k2\" : [ {" + EOL + " \"version\" : \"version\"," + EOL - + " \"addr\" : \"addr\"," + EOL + " \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL - + " \"OS-EXT-IPS:type\" : \"type\"" + EOL + " }, {" + EOL + " \"version\" : \"version\"," + EOL - + " \"addr\" : \"addr\"," + EOL + " \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL - + " \"OS-EXT-IPS:type\" : \"type\"" + EOL + " } ]" + EOL + " }" + EOL + "}"; - - private ObjectMapper objectMapper = new ObjectMapper().setSerializationInclusion(Include.NON_NULL) - .enable(SerializationFeature.INDENT_OUTPUT).enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES) - .enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY); - - @Test - public void testSerialization() throws Exception { - System.out.println("CLASS: " + Addresses.class.getName()); - System.out.println("TEST JSON: " + JSON_FULL); - Addresses addresses = objectMapper.readValue(JSON_FULL, Addresses.class); - String json = objectMapper.writeValueAsString(addresses); - System.out.println("RE-SERIALIZED OBJECT: " + json); - JSONAssert.assertEquals(JSON_FULL, json, JSONCompareMode.LENIENT); - } - - @Test - public void testMethods() throws Exception { - Addresses addresses = objectMapper.readValue(JSON_FULL, Addresses.class); - addresses.toString(); - - Map<String, List<Address>> addressesProperty = addresses.getAddresses(); - Assert.assertNotNull(addressesProperty); - Assert.assertEquals(2, addressesProperty.size()); - } -} diff --git a/nova-model/src/test/java/com/woorea/openstack/nova/model/ServerTest.java b/nova-model/src/test/java/com/woorea/openstack/nova/model/ServerTest.java index a12536f..62212ee 100644 --- a/nova-model/src/test/java/com/woorea/openstack/nova/model/ServerTest.java +++ b/nova-model/src/test/java/com/woorea/openstack/nova/model/ServerTest.java @@ -20,36 +20,35 @@ package com.woorea.openstack.nova.model; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.woorea.openstack.nova.model.Server.Addresses; -import com.woorea.openstack.nova.model.Server.Fault; import java.util.List; import java.util.Map; import org.junit.Assert; import org.junit.Test; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.woorea.openstack.nova.model.Server.Addresses.Address; +import com.woorea.openstack.nova.model.Server.Fault; public class ServerTest { private static final String EOL = System.lineSeparator(); private static final String JSON_FULL = "{" + EOL + " \"server\" : {" + EOL + " \"id\" : \"id\"," + EOL - + " \"name\" : \"name\"," + EOL + " \"addresses\" : {" + EOL + " \"addresses\" : {" + EOL - + " \"addresses-k1\" : [ {" + EOL + " \"version\" : \"version\"," + EOL - + " \"addr\" : \"addr\"," + EOL + " \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL - + " \"OS-EXT-IPS:type\" : \"type\"" + EOL + " }, {" + EOL + + " \"name\" : \"name\"," + EOL + " \"addresses\" : {" + EOL + " \"addresses-k1\" : [ {" + EOL + " \"version\" : \"version\"," + EOL + " \"addr\" : \"addr\"," + EOL + " \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL + " \"OS-EXT-IPS:type\" : \"type\"" - + EOL + " } ]," + EOL + " \"addresses-k2\" : [ {" + EOL - + " \"version\" : \"version\"," + EOL + " \"addr\" : \"addr\"," + EOL + + EOL + " }, {" + EOL + " \"version\" : \"version\"," + EOL + + " \"addr\" : \"addr\"," + EOL + " \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL + + " \"OS-EXT-IPS:type\" : \"type\"" + EOL + " } ]," + EOL + " \"addresses-k2\" : [ {" + + EOL + " \"version\" : \"version\"," + EOL + " \"addr\" : \"addr\"," + EOL + " \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL + " \"OS-EXT-IPS:type\" : \"type\"" + EOL + " }, {" + EOL + " \"version\" : \"version\"," + EOL + " \"addr\" : \"addr\"," + EOL + " \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL - + " \"OS-EXT-IPS:type\" : \"type\"" + EOL + " } ]" + EOL + " }" + EOL + " }," + EOL + + " \"OS-EXT-IPS:type\" : \"type\"" + EOL + " } ]" + EOL + " }," + EOL + " \"links\" : [ {" + EOL + " \"rel\" : \"rel\"," + EOL + " \"href\" : \"href\"," + EOL + " \"type\" : \"type\"" + EOL + " }, {" + EOL + " \"rel\" : \"rel\"," + EOL + " \"href\" : \"href\"," + EOL + " \"type\" : \"type\"" + EOL + " } ]," + EOL @@ -151,9 +150,13 @@ public class ServerTest { Server server = objectMapper.readValue(JSON_FULL, Server.class); server.toString(); - Addresses addresses = server.getAddresses(); + Map<String, List<Address>> addresses = server.getAddresses(); Assert.assertNotNull(addresses); + List<Address> address = addresses.get("addresses-k1"); + Assert.assertEquals(2, address.size()); + Assert.assertEquals("version", address.get(0).getVersion()); + Map<String, String> metadata = server.getMetadata(); Assert.assertNotNull(metadata); Assert.assertEquals(2, metadata.size()); diff --git a/nova-model/src/test/java/com/woorea/openstack/nova/model/ServersTest.java b/nova-model/src/test/java/com/woorea/openstack/nova/model/ServersTest.java index 0e3f766..427f4f9 100644 --- a/nova-model/src/test/java/com/woorea/openstack/nova/model/ServersTest.java +++ b/nova-model/src/test/java/com/woorea/openstack/nova/model/ServersTest.java @@ -20,15 +20,15 @@ package com.woorea.openstack.nova.model; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; import java.util.List; import org.junit.Assert; import org.junit.Test; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; public class ServersTest { @@ -45,7 +45,6 @@ public class ServersTest { sb.append(" \"id\" : \"id\"," + EOL); sb.append(" \"name\" : \"name\"," + EOL); sb.append(" \"addresses\" : {" + EOL); - sb.append(" \"addresses\" : {" + EOL); sb.append(" \"addresses-k1\" : [ {" + EOL); sb.append(" \"version\" : \"version\"," + EOL); sb.append(" \"addr\" : \"addr\"," + EOL); @@ -68,7 +67,6 @@ public class ServersTest { sb.append(" \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL); sb.append(" \"OS-EXT-IPS:type\" : \"type\"" + EOL); sb.append(" } ]" + EOL); - sb.append(" }" + EOL); sb.append(" }," + EOL); sb.append(" \"links\" : [ {" + EOL); sb.append(" \"rel\" : \"rel\"," + EOL); @@ -266,7 +264,6 @@ public class ServersTest { sb.append(" \"id\" : \"id\"," + EOL); sb.append(" \"name\" : \"name\"," + EOL); sb.append(" \"addresses\" : {" + EOL); - sb.append(" \"addresses\" : {" + EOL); sb.append(" \"addresses-k1\" : [ {" + EOL); sb.append(" \"version\" : \"version\"," + EOL); sb.append(" \"addr\" : \"addr\"," + EOL); @@ -289,7 +286,6 @@ public class ServersTest { sb.append(" \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL); sb.append(" \"OS-EXT-IPS:type\" : \"type\"" + EOL); sb.append(" } ]" + EOL); - sb.append(" }" + EOL); sb.append(" }," + EOL); sb.append(" \"links\" : [ {" + EOL); sb.append(" \"rel\" : \"rel\"," + EOL); @@ -391,29 +391,29 @@ <version>2.9.8</version> </dependency> </dependencies> - </plugin> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>${jacoco.version}</version> - <executions> - <execution> - <id>prepare-agent</id> - <goals> - <goal>prepare-agent</goal> - </goals> - </execution> - <execution> - <id>report</id> - <goals> - <goal>report</goal> - </goals> - <configuration> - <dataFile>${project.build.directory}/code-coverage/jacoco.exec</dataFile> - <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory> - </configuration> - </execution> - </executions> + </plugin> + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>${jacoco.version}</version> + <executions> + <execution> + <id>prepare-agent</id> + <goals> + <goal>prepare-agent</goal> + </goals> + </execution> + <execution> + <id>report</id> + <goals> + <goal>report</goal> + </goals> + <configuration> + <dataFile>${project.build.directory}/code-coverage/jacoco.exec</dataFile> + <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory> + </configuration> + </execution> + </executions> </plugin> </plugins> </build> |