diff options
Diffstat (limited to 'nova-model/src/test/java/com/woorea/openstack/nova/model/ServersTest.java')
-rw-r--r-- | nova-model/src/test/java/com/woorea/openstack/nova/model/ServersTest.java | 501 |
1 files changed, 491 insertions, 10 deletions
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 313f6f7..7f45acc 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 @@ -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,22 +17,503 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package com.woorea.openstack.nova.model; +import com.woorea.openstack.nova.model.Server; +import com.woorea.openstack.nova.model.Servers; +import java.util.List; +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 ServersTest { - Servers servers = new Servers(); + private static final String EOL = System.lineSeparator(); - @Test - public void getList() throws Exception { - servers.getList(); + private static final String JSON_FULL; + + static { + // StringBuilder is used because extremely long concatenations + // can cause compiler stack overflow + StringBuilder sb = new StringBuilder(); + sb.append("{" + EOL); + sb.append(" \"servers\" : [ {" + EOL); + 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); + sb.append(" \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL); + sb.append(" \"OS-EXT-IPS:type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"version\" : \"version\"," + EOL); + sb.append(" \"addr\" : \"addr\"," + EOL); + sb.append(" \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL); + sb.append(" \"OS-EXT-IPS:type\" : \"type\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"addresses-k2\" : [ {" + EOL); + sb.append(" \"version\" : \"version\"," + EOL); + sb.append(" \"addr\" : \"addr\"," + EOL); + sb.append(" \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL); + sb.append(" \"OS-EXT-IPS:type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"version\" : \"version\"," + EOL); + sb.append(" \"addr\" : \"addr\"," + EOL); + 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); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"image\" : {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"status\" : \"status\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"progress\" : 3," + EOL); + sb.append(" \"minRam\" : 62," + EOL); + sb.append(" \"minDisk\" : 69," + EOL); + sb.append(" \"created\" : 1485172800000," + EOL); + sb.append(" \"updated\" : 1486468800000," + EOL); + sb.append(" \"metadata\" : {" + EOL); + sb.append(" \"metadata-k1\" : \"metadata-v1\"," + EOL); + sb.append(" \"metadata-k2\" : \"metadata-v2\"" + EOL); + sb.append(" }," + EOL); + sb.append(" \"server\" : {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"links\" : [ {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" } ]" + EOL); + sb.append(" }," + EOL); + sb.append(" \"links\" : [ {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"OS-EXT-IMG-SIZE:size\" : 43" + EOL); + sb.append(" }," + EOL); + sb.append(" \"flavor\" : {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"vcpus\" : 79," + EOL); + sb.append(" \"ram\" : 38," + EOL); + sb.append(" \"disk\" : 45," + EOL); + sb.append(" \"swap\" : \"swap\"," + EOL); + sb.append(" \"links\" : [ {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"public\" : false," + EOL); + sb.append(" \"OS-FLV-EXT-DATA:ephemeral\" : 65," + EOL); + sb.append(" \"rxtx_factor\" : 11.0," + EOL); + sb.append(" \"OS-FLV-DISABLED:disabled\" : true," + EOL); + sb.append(" \"rxtx_quota\" : 42," + EOL); + sb.append(" \"rxtx_cap\" : 96," + EOL); + sb.append(" \"os-flavor-access:is_public\" : false" + EOL); + sb.append(" }," + EOL); + sb.append(" \"accessIPv4\" : \"accessipv4\"," + EOL); + sb.append(" \"accessIPv6\" : \"accessipv6\"," + EOL); + sb.append(" \"status\" : \"status\"," + EOL); + sb.append(" \"progress\" : 3," + EOL); + sb.append(" \"fault\" : {" + EOL); + sb.append(" \"code\" : 29," + EOL); + sb.append(" \"message\" : \"message\"," + EOL); + sb.append(" \"details\" : \"details\"," + EOL); + sb.append(" \"created\" : 1485172800000" + EOL); + sb.append(" }," + EOL); + sb.append(" \"hostId\" : \"hostid\"," + EOL); + sb.append(" \"updated\" : \"updated\"," + EOL); + sb.append(" \"created\" : \"created\"," + EOL); + sb.append(" \"metadata\" : {" + EOL); + sb.append(" \"metadata-k1\" : \"metadata-v1\"," + EOL); + sb.append(" \"metadata-k2\" : \"metadata-v2\"" + EOL); + sb.append(" }," + EOL); + sb.append(" \"uuid\" : \"uuid\"," + EOL); + sb.append(" \"adminPass\" : \"adminpass\"," + EOL); + sb.append(" \"config_drive\" : \"configdrive\"," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"," + EOL); + sb.append(" \"user_id\" : \"userid\"," + EOL); + sb.append(" \"key_name\" : \"keyname\"," + EOL); + sb.append(" \"security_groups\" : [ {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"description\" : \"description\"," + EOL); + sb.append(" \"rules\" : [ {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"group\" : {" + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"" + EOL); + sb.append(" }," + EOL); + sb.append(" \"parent_group_id\" : \"parentgroupid\"," + EOL); + sb.append(" \"from_port\" : 7," + EOL); + sb.append(" \"to_port\" : 98," + EOL); + sb.append(" \"ip_protocol\" : \"ipprotocol\"," + EOL); + sb.append(" \"ip_range\" : {" + EOL); + sb.append(" \"cidr\" : \"cidr\"" + EOL); + sb.append(" }" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"group\" : {" + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"" + EOL); + sb.append(" }," + EOL); + sb.append(" \"parent_group_id\" : \"parentgroupid\"," + EOL); + sb.append(" \"from_port\" : 7," + EOL); + sb.append(" \"to_port\" : 98," + EOL); + sb.append(" \"ip_protocol\" : \"ipprotocol\"," + EOL); + sb.append(" \"ip_range\" : {" + EOL); + sb.append(" \"cidr\" : \"cidr\"" + EOL); + sb.append(" }" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"links\" : [ {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"description\" : \"description\"," + EOL); + sb.append(" \"rules\" : [ {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"group\" : {" + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"" + EOL); + sb.append(" }," + EOL); + sb.append(" \"parent_group_id\" : \"parentgroupid\"," + EOL); + sb.append(" \"from_port\" : 7," + EOL); + sb.append(" \"to_port\" : 98," + EOL); + sb.append(" \"ip_protocol\" : \"ipprotocol\"," + EOL); + sb.append(" \"ip_range\" : {" + EOL); + sb.append(" \"cidr\" : \"cidr\"" + EOL); + sb.append(" }" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"group\" : {" + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"" + EOL); + sb.append(" }," + EOL); + sb.append(" \"parent_group_id\" : \"parentgroupid\"," + EOL); + sb.append(" \"from_port\" : 7," + EOL); + sb.append(" \"to_port\" : 98," + EOL); + sb.append(" \"ip_protocol\" : \"ipprotocol\"," + EOL); + sb.append(" \"ip_range\" : {" + EOL); + sb.append(" \"cidr\" : \"cidr\"" + EOL); + sb.append(" }" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"links\" : [ {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"OS-EXT-STS:task_state\" : \"taskstate\"," + EOL); + sb.append(" \"OS-EXT-STS:power_state\" : \"powerstate\"," + EOL); + sb.append(" \"OS-EXT-STS:vm_state\" : \"vmstate\"," + EOL); + sb.append(" \"OS-EXT-SRV-ATTR:host\" : \"host\"," + EOL); + sb.append(" \"OS-EXT-SRV-ATTR:instance_name\" : \"instancename\"," + EOL); + sb.append(" \"OS-EXT-SRV-ATTR:hypervisor_hostname\" : \"hypervisorhostname\"," + EOL); + sb.append(" \"OS-DCF:diskConfig\" : \"diskconfig\"," + EOL); + sb.append(" \"OS-EXT-AZ:availability_zone\" : \"availabilityzone\"," + EOL); + sb.append(" \"OS-SRV-USG:launched_at\" : \"launchedat\"," + EOL); + sb.append(" \"OS-SRV-USG:terminated_at\" : \"terminatedat\"," + EOL); + sb.append(" \"os-extended-volumes:volumes_attached\" : [ \"osextendedvolumesattached-v1\", \"osextendedvolumesattached-v2\" ]" + EOL); + sb.append(" }, {" + EOL); + 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); + sb.append(" \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL); + sb.append(" \"OS-EXT-IPS:type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"version\" : \"version\"," + EOL); + sb.append(" \"addr\" : \"addr\"," + EOL); + sb.append(" \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL); + sb.append(" \"OS-EXT-IPS:type\" : \"type\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"addresses-k2\" : [ {" + EOL); + sb.append(" \"version\" : \"version\"," + EOL); + sb.append(" \"addr\" : \"addr\"," + EOL); + sb.append(" \"OS-EXT-IPS-MAC:mac_addr\" : \"macaddr\"," + EOL); + sb.append(" \"OS-EXT-IPS:type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"version\" : \"version\"," + EOL); + sb.append(" \"addr\" : \"addr\"," + EOL); + 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); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"image\" : {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"status\" : \"status\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"progress\" : 3," + EOL); + sb.append(" \"minRam\" : 62," + EOL); + sb.append(" \"minDisk\" : 69," + EOL); + sb.append(" \"created\" : 1485172800000," + EOL); + sb.append(" \"updated\" : 1486468800000," + EOL); + sb.append(" \"metadata\" : {" + EOL); + sb.append(" \"metadata-k1\" : \"metadata-v1\"," + EOL); + sb.append(" \"metadata-k2\" : \"metadata-v2\"" + EOL); + sb.append(" }," + EOL); + sb.append(" \"server\" : {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"links\" : [ {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" } ]" + EOL); + sb.append(" }," + EOL); + sb.append(" \"links\" : [ {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"OS-EXT-IMG-SIZE:size\" : 43" + EOL); + sb.append(" }," + EOL); + sb.append(" \"flavor\" : {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"vcpus\" : 79," + EOL); + sb.append(" \"ram\" : 38," + EOL); + sb.append(" \"disk\" : 45," + EOL); + sb.append(" \"swap\" : \"swap\"," + EOL); + sb.append(" \"links\" : [ {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"public\" : false," + EOL); + sb.append(" \"OS-FLV-EXT-DATA:ephemeral\" : 65," + EOL); + sb.append(" \"rxtx_factor\" : 11.0," + EOL); + sb.append(" \"OS-FLV-DISABLED:disabled\" : true," + EOL); + sb.append(" \"rxtx_quota\" : 42," + EOL); + sb.append(" \"rxtx_cap\" : 96," + EOL); + sb.append(" \"os-flavor-access:is_public\" : false" + EOL); + sb.append(" }," + EOL); + sb.append(" \"accessIPv4\" : \"accessipv4\"," + EOL); + sb.append(" \"accessIPv6\" : \"accessipv6\"," + EOL); + sb.append(" \"status\" : \"status\"," + EOL); + sb.append(" \"progress\" : 3," + EOL); + sb.append(" \"fault\" : {" + EOL); + sb.append(" \"code\" : 29," + EOL); + sb.append(" \"message\" : \"message\"," + EOL); + sb.append(" \"details\" : \"details\"," + EOL); + sb.append(" \"created\" : 1485172800000" + EOL); + sb.append(" }," + EOL); + sb.append(" \"hostId\" : \"hostid\"," + EOL); + sb.append(" \"updated\" : \"updated\"," + EOL); + sb.append(" \"created\" : \"created\"," + EOL); + sb.append(" \"metadata\" : {" + EOL); + sb.append(" \"metadata-k1\" : \"metadata-v1\"," + EOL); + sb.append(" \"metadata-k2\" : \"metadata-v2\"" + EOL); + sb.append(" }," + EOL); + sb.append(" \"uuid\" : \"uuid\"," + EOL); + sb.append(" \"adminPass\" : \"adminpass\"," + EOL); + sb.append(" \"config_drive\" : \"configdrive\"," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"," + EOL); + sb.append(" \"user_id\" : \"userid\"," + EOL); + sb.append(" \"key_name\" : \"keyname\"," + EOL); + sb.append(" \"security_groups\" : [ {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"description\" : \"description\"," + EOL); + sb.append(" \"rules\" : [ {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"group\" : {" + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"" + EOL); + sb.append(" }," + EOL); + sb.append(" \"parent_group_id\" : \"parentgroupid\"," + EOL); + sb.append(" \"from_port\" : 7," + EOL); + sb.append(" \"to_port\" : 98," + EOL); + sb.append(" \"ip_protocol\" : \"ipprotocol\"," + EOL); + sb.append(" \"ip_range\" : {" + EOL); + sb.append(" \"cidr\" : \"cidr\"" + EOL); + sb.append(" }" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"group\" : {" + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"" + EOL); + sb.append(" }," + EOL); + sb.append(" \"parent_group_id\" : \"parentgroupid\"," + EOL); + sb.append(" \"from_port\" : 7," + EOL); + sb.append(" \"to_port\" : 98," + EOL); + sb.append(" \"ip_protocol\" : \"ipprotocol\"," + EOL); + sb.append(" \"ip_range\" : {" + EOL); + sb.append(" \"cidr\" : \"cidr\"" + EOL); + sb.append(" }" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"links\" : [ {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"description\" : \"description\"," + EOL); + sb.append(" \"rules\" : [ {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"group\" : {" + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"" + EOL); + sb.append(" }," + EOL); + sb.append(" \"parent_group_id\" : \"parentgroupid\"," + EOL); + sb.append(" \"from_port\" : 7," + EOL); + sb.append(" \"to_port\" : 98," + EOL); + sb.append(" \"ip_protocol\" : \"ipprotocol\"," + EOL); + sb.append(" \"ip_range\" : {" + EOL); + sb.append(" \"cidr\" : \"cidr\"" + EOL); + sb.append(" }" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"id\" : \"id\"," + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"group\" : {" + EOL); + sb.append(" \"name\" : \"name\"," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"" + EOL); + sb.append(" }," + EOL); + sb.append(" \"parent_group_id\" : \"parentgroupid\"," + EOL); + sb.append(" \"from_port\" : 7," + EOL); + sb.append(" \"to_port\" : 98," + EOL); + sb.append(" \"ip_protocol\" : \"ipprotocol\"," + EOL); + sb.append(" \"ip_range\" : {" + EOL); + sb.append(" \"cidr\" : \"cidr\"" + EOL); + sb.append(" }" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"links\" : [ {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" }, {" + EOL); + sb.append(" \"rel\" : \"rel\"," + EOL); + sb.append(" \"href\" : \"href\"," + EOL); + sb.append(" \"type\" : \"type\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"tenant_id\" : \"tenantid\"" + EOL); + sb.append(" } ]," + EOL); + sb.append(" \"OS-EXT-STS:task_state\" : \"taskstate\"," + EOL); + sb.append(" \"OS-EXT-STS:power_state\" : \"powerstate\"," + EOL); + sb.append(" \"OS-EXT-STS:vm_state\" : \"vmstate\"," + EOL); + sb.append(" \"OS-EXT-SRV-ATTR:host\" : \"host\"," + EOL); + sb.append(" \"OS-EXT-SRV-ATTR:instance_name\" : \"instancename\"," + EOL); + sb.append(" \"OS-EXT-SRV-ATTR:hypervisor_hostname\" : \"hypervisorhostname\"," + EOL); + sb.append(" \"OS-DCF:diskConfig\" : \"diskconfig\"," + EOL); + sb.append(" \"OS-EXT-AZ:availability_zone\" : \"availabilityzone\"," + EOL); + sb.append(" \"OS-SRV-USG:launched_at\" : \"launchedat\"," + EOL); + sb.append(" \"OS-SRV-USG:terminated_at\" : \"terminatedat\"," + EOL); + sb.append(" \"os-extended-volumes:volumes_attached\" : [ \"osextendedvolumesattached-v1\", \"osextendedvolumesattached-v2\" ]" + EOL); + sb.append(" } ]" + EOL); + sb.append("}"); + JSON_FULL = sb.toString(); } - @Test(expected = NullPointerException.class) - public void iterator() throws Exception { - servers.iterator(); + 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 testSerialization() throws Exception { + System.out.println("CLASS: " + Servers.class.getName()); + System.out.println("TEST JSON: " + JSON_FULL); + Servers servers = objectMapper.readValue(JSON_FULL, Servers.class); + String json = objectMapper.writeValueAsString(servers); + System.out.println("RE-SERIALIZED OBJECT: " + json); + JSONAssert.assertEquals(JSON_FULL, json, JSONCompareMode.LENIENT); } -}
\ No newline at end of file + @Test + public void testMethods() throws Exception { + Servers servers = objectMapper.readValue(JSON_FULL, Servers.class); + servers.toString(); + + List<Server> list = servers.getList(); + Assert.assertNotNull(list); + Assert.assertEquals(2, list.size()); + + int cnt = 0; + for (@SuppressWarnings("unused") Server x : servers) { + ++cnt; + } + Assert.assertEquals(2, cnt); + } +} |