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 --- .../openstack/glance/model/ImageMemberTest.java | 52 ++-- .../openstack/glance/model/ImageMembersTest.java | 58 +++- .../woorea/openstack/glance/model/ImageTest.java | 322 +++++++++------------ .../woorea/openstack/glance/model/ImagesTest.java | 101 ++++++- .../openstack/glance/model/SharedImageTest.java | 61 ++++ .../openstack/glance/model/SharedImagesTest.java | 54 +++- 6 files changed, 421 insertions(+), 227 deletions(-) create mode 100644 glance-model/src/test/java/com/woorea/openstack/glance/model/SharedImageTest.java (limited to 'glance-model/src/test/java') diff --git a/glance-model/src/test/java/com/woorea/openstack/glance/model/ImageMemberTest.java b/glance-model/src/test/java/com/woorea/openstack/glance/model/ImageMemberTest.java index bcf5f77..155aac0 100644 --- a/glance-model/src/test/java/com/woorea/openstack/glance/model/ImageMemberTest.java +++ b/glance-model/src/test/java/com/woorea/openstack/glance/model/ImageMemberTest.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,32 +17,50 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package com.woorea.openstack.glance.model; +import com.woorea.openstack.glance.model.ImageMember; +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 ImageMemberTest { - ImageMember imageMember = new ImageMember(); + private static final String EOL = System.lineSeparator(); - @Test - public void isCanShareTest() throws Exception { - imageMember.isCanShare(); - } + private static final String JSON_FULL = "{" + EOL + + " \"can_share\" : false," + EOL + + " \"member_id\" : \"memberid\"" + EOL + + "}"; - @Test - public void setCanShareTest() throws Exception { - imageMember.setCanShare(true); - } + 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 getMemberIdTest() throws Exception { - imageMember.getMemberId(); + public void testSerialization() throws Exception { + System.out.println("CLASS: " + ImageMember.class.getName()); + System.out.println("TEST JSON: " + JSON_FULL); + ImageMember imagemember = objectMapper.readValue(JSON_FULL, ImageMember.class); + String json = objectMapper.writeValueAsString(imagemember); + System.out.println("RE-SERIALIZED OBJECT: " + json); + JSONAssert.assertEquals(JSON_FULL, json, JSONCompareMode.LENIENT); } @Test - public void setMemberIdTest() throws Exception { - imageMember.setMemberId("id"); + public void testMethods() throws Exception { + ImageMember imagemember = objectMapper.readValue(JSON_FULL, ImageMember.class); + imagemember.toString(); + + String memberId = imagemember.getMemberId(); + Assert.assertNotNull(memberId); + imagemember.setMemberId(memberId); } - -} \ No newline at end of file +} diff --git a/glance-model/src/test/java/com/woorea/openstack/glance/model/ImageMembersTest.java b/glance-model/src/test/java/com/woorea/openstack/glance/model/ImageMembersTest.java index 410cea9..0b9e94c 100644 --- a/glance-model/src/test/java/com/woorea/openstack/glance/model/ImageMembersTest.java +++ b/glance-model/src/test/java/com/woorea/openstack/glance/model/ImageMembersTest.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,17 +17,63 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package com.woorea.openstack.glance.model; +import com.woorea.openstack.glance.model.ImageMember; +import com.woorea.openstack.glance.model.ImageMembers; +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 ImageMembersTest { - ImageMembers imageMembers = new ImageMembers(); + private static final String EOL = System.lineSeparator(); + + private static final String JSON_FULL = "{" + EOL + + " \"members\" : [ {" + EOL + + " \"can_share\" : false," + EOL + + " \"member_id\" : \"memberid\"" + EOL + + " }, {" + EOL + + " \"can_share\" : false," + EOL + + " \"member_id\" : \"memberid\"" + EOL + + " } ]" + EOL + + "}"; + + 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 getListTest() throws Exception { - imageMembers.getList(); + public void testSerialization() throws Exception { + System.out.println("CLASS: " + ImageMembers.class.getName()); + System.out.println("TEST JSON: " + JSON_FULL); + ImageMembers imagemembers = objectMapper.readValue(JSON_FULL, ImageMembers.class); + String json = objectMapper.writeValueAsString(imagemembers); + 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 { + ImageMembers imagemembers = objectMapper.readValue(JSON_FULL, ImageMembers.class); + imagemembers.toString(); + + List list = imagemembers.getList(); + Assert.assertNotNull(list); + Assert.assertEquals(2, list.size()); + + int cnt = 0; + for (@SuppressWarnings("unused") ImageMember x : imagemembers) { + ++cnt; + } + Assert.assertEquals(2, cnt); + } +} diff --git a/glance-model/src/test/java/com/woorea/openstack/glance/model/ImageTest.java b/glance-model/src/test/java/com/woorea/openstack/glance/model/ImageTest.java index b47bdd7..4e54413 100644 --- a/glance-model/src/test/java/com/woorea/openstack/glance/model/ImageTest.java +++ b/glance-model/src/test/java/com/woorea/openstack/glance/model/ImageTest.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,199 +17,137 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package com.woorea.openstack.glance.model; +import com.woorea.openstack.glance.model.Image; +import java.util.Calendar; +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 java.util.GregorianCalendar; +import org.skyscreamer.jsonassert.JSONAssert; +import org.skyscreamer.jsonassert.JSONCompareMode; public class ImageTest { - Image image = new Image(); - - @Test - public void getIdTest() throws Exception { - image.getId(); - } - - @Test - public void setIdTest() throws Exception { - image.setId("uuid"); - } - - @Test - public void getUriTest() throws Exception { - image.getUri(); - } - - @Test - public void setUriTest() throws Exception { - image.setUri("uri"); - } - - @Test - public void getNameTest() throws Exception { - image.getName(); - } - - @Test - public void setNameTest() throws Exception { - image.setName("image-123"); - } - - @Test - public void getDiskFormatTest() throws Exception { - image.getDiskFormat(); - } - - @Test - public void setDiskFormatTest() throws Exception { - image.setDiskFormat("disk-format"); - } - - @Test - public void getContainerFormatTest() throws Exception { - image.getContainerFormat(); - } - - @Test - public void setContainerFormatTest() throws Exception { - image.setContainerFormat("format"); - } - - @Test - public void getSizeTest() throws Exception { - image.getSize(); - } - - @Test - public void setSizeTest() throws Exception { - image.setSize(12345L); - } - - @Test - public void getVirtualSizeTest() throws Exception { - image.getVirtualSize(); - } - - @Test - public void setVirtualSizeTest() throws Exception { - image.setVirtualSize(1234L); - } - - @Test - public void getChecksumTest() throws Exception { - image.getChecksum(); - } - - @Test - public void setChecksumTest() throws Exception { - image.setChecksum("ABC"); - } - - @Test - public void getCreatedAtTest() throws Exception { - image.getCreatedAt(); - } - - @Test - public void setCreatedAtTest() throws Exception { - image.setCreatedAt(new GregorianCalendar()); - } - - @Test - public void getUpdatedAtTest() throws Exception { - image.getUpdatedAt(); - } - - @Test - public void setUpdatedAt() throws Exception { - image.setUpdatedAt(new GregorianCalendar()); - } - - @Test - public void getDeletedAtTest() throws Exception { - image.getDeletedAt(); - } - - @Test - public void setDeletedAtTest() throws Exception { - image.setDeletedAt(new GregorianCalendar()); - } - - @Test - public void getStatus() throws Exception { - image.getStatus(); - } - - @Test - public void setStatusTest() throws Exception { - image.setStatus("status"); - } - - @Test - public void isPublicTest() throws Exception { - image.isPublic(); - } - - @Test - public void setPublicTest() throws Exception { - image.setPublic(true); - } - - @Test - public void getMinRamTest() throws Exception { - image.getMinRam(); - } - - @Test - public void setMinRamTest() throws Exception { - image.setMinRam(256); - } - - @Test - public void getMinDiskTest() throws Exception { - image.getMinDisk(); - } - - @Test - public void setMinDiskTest() throws Exception { - image.setMinDisk(8); - } - - @Test - public void getOwnerTest() throws Exception { - image.getOwner(); - } - - @Test - public void setOwnerTest() throws Exception { - image.setOwner("onap"); - } - - @Test - public void isDeletedTest() throws Exception { - image.isDeleted(); - } - - @Test - public void setDeletedTest() throws Exception { - image.setDeleted(true); - } - - @Test - public void isProtectedTest() throws Exception { - image.isProtected(); - } - - @Test - public void setProtectedTest() throws Exception { - image.setProtected(true); - } - - @Test - public void getPropertiesTest() throws Exception { - image.getProperties(); - } - -} \ No newline at end of file + private static final String EOL = System.lineSeparator(); + + private static final String JSON_FULL = "{" + EOL + + " \"image\" : {" + EOL + + " \"id\" : \"id\"," + EOL + + " \"uri\" : \"uri\"," + EOL + + " \"name\" : \"name\"," + EOL + + " \"size\" : 43," + EOL + + " \"checksum\" : \"checksum\"," + EOL + + " \"status\" : \"status\"," + EOL + + " \"owner\" : \"owner\"," + EOL + + " \"properties\" : {" + EOL + + " \"properties-k1\" : \"properties-v1\"," + EOL + + " \"properties-k2\" : \"properties-v2\"" + EOL + + " }," + EOL + + " \"public\" : false," + EOL + + " \"deleted\" : false," + EOL + + " \"protected\" : true," + EOL + + " \"disk_format\" : \"diskformat\"," + EOL + + " \"container_format\" : \"containerformat\"," + EOL + + " \"virtual_size\" : 18," + EOL + + " \"created_at\" : 1486296000000," + EOL + + " \"updated_at\" : 1487592000000," + EOL + + " \"deleted_at\" : 1486209600000," + EOL + + " \"is_public\" : false," + EOL + + " \"min_ram\" : 62," + EOL + + " \"min_disk\" : 69" + EOL + + " }" + EOL + + "}"; + + private ObjectMapper objectMapper = new ObjectMapper() + .setSerializationInclusion(Inclusion.NON_NULL) + .enable(SerializationConfig.Feature.INDENT_OUTPUT) + .enable(SerializationConfig.Feature.WRAP_ROOT_VALUE) + .enable(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE) + .enable(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY); + + @Test + public void testSerialization() throws Exception { + System.out.println("CLASS: " + Image.class.getName()); + System.out.println("TEST JSON: " + JSON_FULL); + Image image = objectMapper.readValue(JSON_FULL, Image.class); + String json = objectMapper.writeValueAsString(image); + System.out.println("RE-SERIALIZED OBJECT: " + json); + JSONAssert.assertEquals(JSON_FULL, json, JSONCompareMode.LENIENT); + } + + @Test + public void testMethods() throws Exception { + Image image = objectMapper.readValue(JSON_FULL, Image.class); + image.toString(); + + String owner = image.getOwner(); + Assert.assertNotNull(owner); + image.setOwner(owner); + + String containerFormat = image.getContainerFormat(); + Assert.assertNotNull(containerFormat); + image.setContainerFormat(containerFormat); + + String uri = image.getUri(); + Assert.assertNotNull(uri); + image.setUri(uri); + + Calendar createdAt = image.getCreatedAt(); + Assert.assertNotNull(createdAt); + image.setCreatedAt(createdAt); + + Calendar deletedAt = image.getDeletedAt(); + Assert.assertNotNull(deletedAt); + image.setDeletedAt(deletedAt); + + Long size = image.getSize(); + Assert.assertNotNull(size); + image.setSize(size); + + Integer minRam = image.getMinRam(); + Assert.assertNotNull(minRam); + image.setMinRam(minRam); + + String diskFormat = image.getDiskFormat(); + Assert.assertNotNull(diskFormat); + image.setDiskFormat(diskFormat); + + String checksum = image.getChecksum(); + Assert.assertNotNull(checksum); + image.setChecksum(checksum); + + String name = image.getName(); + Assert.assertNotNull(name); + image.setName(name); + + String id = image.getId(); + Assert.assertNotNull(id); + image.setId(id); + + Long virtualSize = image.getVirtualSize(); + Assert.assertNotNull(virtualSize); + image.setVirtualSize(virtualSize); + + Map properties = image.getProperties(); + Assert.assertNotNull(properties); + Assert.assertEquals(2, properties.size()); + + Integer minDisk = image.getMinDisk(); + Assert.assertNotNull(minDisk); + image.setMinDisk(minDisk); + + String status = image.getStatus(); + Assert.assertNotNull(status); + image.setStatus(status); + + Calendar updatedAt = image.getUpdatedAt(); + Assert.assertNotNull(updatedAt); + image.setUpdatedAt(updatedAt); + } +} diff --git a/glance-model/src/test/java/com/woorea/openstack/glance/model/ImagesTest.java b/glance-model/src/test/java/com/woorea/openstack/glance/model/ImagesTest.java index 1dc02be..913fa01 100644 --- a/glance-model/src/test/java/com/woorea/openstack/glance/model/ImagesTest.java +++ b/glance-model/src/test/java/com/woorea/openstack/glance/model/ImagesTest.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,16 +17,105 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package com.woorea.openstack.glance.model; +import com.woorea.openstack.glance.model.Image; +import com.woorea.openstack.glance.model.Images; +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 ImagesTest { - Images images = new Images(); + private static final String EOL = System.lineSeparator(); + + private static final String JSON_FULL = "{" + EOL + + " \"images\" : [ {" + EOL + + " \"id\" : \"id\"," + EOL + + " \"uri\" : \"uri\"," + EOL + + " \"name\" : \"name\"," + EOL + + " \"size\" : 43," + EOL + + " \"checksum\" : \"checksum\"," + EOL + + " \"status\" : \"status\"," + EOL + + " \"owner\" : \"owner\"," + EOL + + " \"properties\" : {" + EOL + + " \"properties-k1\" : \"properties-v1\"," + EOL + + " \"properties-k2\" : \"properties-v2\"" + EOL + + " }," + EOL + + " \"public\" : false," + EOL + + " \"deleted\" : false," + EOL + + " \"protected\" : true," + EOL + + " \"disk_format\" : \"diskformat\"," + EOL + + " \"container_format\" : \"containerformat\"," + EOL + + " \"virtual_size\" : 18," + EOL + + " \"created_at\" : 1486296000000," + EOL + + " \"updated_at\" : 1487592000000," + EOL + + " \"deleted_at\" : 1486209600000," + EOL + + " \"is_public\" : false," + EOL + + " \"min_ram\" : 62," + EOL + + " \"min_disk\" : 69" + EOL + + " }, {" + EOL + + " \"id\" : \"id\"," + EOL + + " \"uri\" : \"uri\"," + EOL + + " \"name\" : \"name\"," + EOL + + " \"size\" : 43," + EOL + + " \"checksum\" : \"checksum\"," + EOL + + " \"status\" : \"status\"," + EOL + + " \"owner\" : \"owner\"," + EOL + + " \"properties\" : {" + EOL + + " \"properties-k1\" : \"properties-v1\"," + EOL + + " \"properties-k2\" : \"properties-v2\"" + EOL + + " }," + EOL + + " \"public\" : false," + EOL + + " \"deleted\" : false," + EOL + + " \"protected\" : true," + EOL + + " \"disk_format\" : \"diskformat\"," + EOL + + " \"container_format\" : \"containerformat\"," + EOL + + " \"virtual_size\" : 18," + EOL + + " \"created_at\" : 1486296000000," + EOL + + " \"updated_at\" : 1487592000000," + EOL + + " \"deleted_at\" : 1486209600000," + EOL + + " \"is_public\" : false," + EOL + + " \"min_ram\" : 62," + EOL + + " \"min_disk\" : 69" + EOL + + " } ]" + EOL + + "}"; + + 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 getListTest() throws Exception { - images.getList(); + public void testSerialization() throws Exception { + System.out.println("CLASS: " + Images.class.getName()); + System.out.println("TEST JSON: " + JSON_FULL); + Images images = objectMapper.readValue(JSON_FULL, Images.class); + String json = objectMapper.writeValueAsString(images); + 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 { + Images images = objectMapper.readValue(JSON_FULL, Images.class); + images.toString(); + + List list = images.getList(); + Assert.assertNotNull(list); + Assert.assertEquals(2, list.size()); + + int cnt = 0; + for (@SuppressWarnings("unused") Image x : images) { + ++cnt; + } + Assert.assertEquals(2, cnt); + } +} diff --git a/glance-model/src/test/java/com/woorea/openstack/glance/model/SharedImageTest.java b/glance-model/src/test/java/com/woorea/openstack/glance/model/SharedImageTest.java new file mode 100644 index 0000000..f1348ee --- /dev/null +++ b/glance-model/src/test/java/com/woorea/openstack/glance/model/SharedImageTest.java @@ -0,0 +1,61 @@ +/*- + * ============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.glance.model; + +import com.woorea.openstack.glance.model.SharedImage; +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 SharedImageTest { + + private static final String EOL = System.lineSeparator(); + + private static final String JSON_FULL = "{ }"; + + // FAIL_ON_EMPTY_BEANS set to false to conform to legacy behavior + private ObjectMapper objectMapper = new ObjectMapper() + .setSerializationInclusion(Inclusion.NON_NULL) + .enable(SerializationConfig.Feature.INDENT_OUTPUT) + .disable(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) + .enable(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY); + + @Test + public void testSerialization() throws Exception { + System.out.println("CLASS: " + SharedImage.class.getName()); + System.out.println("TEST JSON: " + JSON_FULL); + SharedImage sharedimage = objectMapper.readValue(JSON_FULL, SharedImage.class); + String json = objectMapper.writeValueAsString(sharedimage); + System.out.println("RE-SERIALIZED OBJECT: " + json); + JSONAssert.assertEquals(JSON_FULL, json, JSONCompareMode.LENIENT); + } + + @Test + public void testMethods() throws Exception { + SharedImage sharedimage = objectMapper.readValue(JSON_FULL, SharedImage.class); + sharedimage.toString(); + } +} diff --git a/glance-model/src/test/java/com/woorea/openstack/glance/model/SharedImagesTest.java b/glance-model/src/test/java/com/woorea/openstack/glance/model/SharedImagesTest.java index 9198300..f888fb2 100644 --- a/glance-model/src/test/java/com/woorea/openstack/glance/model/SharedImagesTest.java +++ b/glance-model/src/test/java/com/woorea/openstack/glance/model/SharedImagesTest.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,17 +17,59 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package com.woorea.openstack.glance.model; +import com.woorea.openstack.glance.model.SharedImage; +import com.woorea.openstack.glance.model.SharedImages; +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 SharedImagesTest { - SharedImages sharedImages = new SharedImages(); + private static final String EOL = System.lineSeparator(); + + private static final String JSON_FULL = "{" + EOL + + " \"shared_images\" : [ { }, { } ]" + EOL + + "}"; + + // FAIL_ON_EMPTY_BEANS set to false to conform to legacy behavior + private ObjectMapper objectMapper = new ObjectMapper() + .setSerializationInclusion(Inclusion.NON_NULL) + .enable(SerializationConfig.Feature.INDENT_OUTPUT) + .disable(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) + .enable(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY); @Test - public void getList() throws Exception { - sharedImages.getList(); + public void testSerialization() throws Exception { + System.out.println("CLASS: " + SharedImages.class.getName()); + System.out.println("TEST JSON: " + JSON_FULL); + SharedImages sharedimages = objectMapper.readValue(JSON_FULL, SharedImages.class); + String json = objectMapper.writeValueAsString(sharedimages); + 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 { + SharedImages sharedimages = objectMapper.readValue(JSON_FULL, SharedImages.class); + sharedimages.toString(); + + List list = sharedimages.getList(); + Assert.assertNotNull(list); + Assert.assertEquals(2, list.size()); + + int cnt = 0; + for (@SuppressWarnings("unused") SharedImage x : sharedimages) { + ++cnt; + } + Assert.assertEquals(2, cnt); + } +} -- cgit 1.2.3-korg