diff --git a/app/src/test/java/com/example/cosmosclient/Component.java b/app/src/test/java/com/example/cosmosclient/Component.java new file mode 100644 index 0000000..e831836 --- /dev/null +++ b/app/src/test/java/com/example/cosmosclient/Component.java @@ -0,0 +1,25 @@ +package com.example.cosmosclient; + +public class Component { + private String id; + + public Component() { + } + + public Component(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean equals(Object other) { + if (!(other instanceof Component)) return false; + return id.equals(((Component)other).id); + } +} diff --git a/app/src/test/java/com/example/cosmosclient/Container.java b/app/src/test/java/com/example/cosmosclient/Container.java new file mode 100644 index 0000000..ec49ea4 --- /dev/null +++ b/app/src/test/java/com/example/cosmosclient/Container.java @@ -0,0 +1,40 @@ +package com.example.cosmosclient; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +import java.util.ArrayList; + +public class Container { + private ArrayList components = new ArrayList<>(); + + public ArrayList getComponents() { + return components; + } + + public void setComponents(ArrayList components) { + this.components = components; + } + + public void addComponent(Component c) { + components.add(c); + } + + public Component getComponent(int index) { + return components.get(index); + } + + public void removeComponent(int index) { + components.remove(index); + } + + @JsonIgnore + public int getComponentsCount() { + return components.size(); + } + + @Override + public boolean equals(Object other) { + if (!(other instanceof Container)) return false; + return components.equals(((Container)other).components); + } +} diff --git a/app/src/test/java/com/example/cosmosclient/Container2.java b/app/src/test/java/com/example/cosmosclient/Container2.java new file mode 100644 index 0000000..30edbba --- /dev/null +++ b/app/src/test/java/com/example/cosmosclient/Container2.java @@ -0,0 +1,41 @@ +package com.example.cosmosclient; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +import java.util.ArrayList; +import java.util.HashMap; + +public class Container2 { + private HashMap components = new HashMap<>(); + + public HashMap getComponents() { + return components; + } + + public void setComponents(HashMap components) { + this.components = components; + } + + public void putComponent(String key, Component c) { + components.put(key, c); + } + + public Component getComponent(int index) { + return components.get(index); + } + + public void removeComponent(int index) { + components.remove(index); + } + + @JsonIgnore + public int getComponentsCount() { + return components.size(); + } + + @Override + public boolean equals(Object other) { + if (!(other instanceof Container2)) return false; + return components.equals(((Container2)other).components); + } +} diff --git a/app/src/test/java/com/example/cosmosclient/JacksonTest.java b/app/src/test/java/com/example/cosmosclient/JacksonTest.java new file mode 100644 index 0000000..d4c9efd --- /dev/null +++ b/app/src/test/java/com/example/cosmosclient/JacksonTest.java @@ -0,0 +1,55 @@ +package com.example.cosmosclient; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.junit.Test; + +import java.io.IOException; + +import static junit.framework.TestCase.assertEquals; + +public class JacksonTest { + @Test + public void jacksonTest() { + Container srcContainer = new Container(); + srcContainer.addComponent(new Component("A")); + srcContainer.addComponent(new Component("B")); + srcContainer.addComponent(new Component("C")); + ObjectMapper om = new ObjectMapper(); + try { + String containerJSON = om.writeValueAsString(srcContainer); + System.out.println(containerJSON); + + ObjectMapper mo = new ObjectMapper(); + Container dstContainer = mo.readValue(containerJSON, Container.class); + + System.out.println(om.writeValueAsString(dstContainer)); + assertEquals(srcContainer, dstContainer); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + Container2 srcContainer2 = new Container2(); + srcContainer2.putComponent("X", new Component("A")); + srcContainer2.putComponent("Y", new Component("B")); + srcContainer2.putComponent("Z", new Component("C")); + ObjectMapper om2 = new ObjectMapper(); + try { + String containerJSON2 = om2.writeValueAsString(srcContainer2); + System.out.println(containerJSON2); + + ObjectMapper mo2 = new ObjectMapper(); + Container2 dstContainer2 = mo2.readValue(containerJSON2, Container2.class); + + System.out.println(om2.writeValueAsString(dstContainer2)); + assertEquals(srcContainer2, dstContainer2); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } +}