Fix tests by parsing the created JSON reply
[Sone.git] / src / main / java / net / pterodactylus / sone / web / ajax / JsonReturnObject.java
index 6161616..45bbb4f 100644 (file)
@@ -6,8 +6,8 @@ package net.pterodactylus.sone.web.ajax;
 
 import java.util.Map;
 
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonUnwrapped;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.BooleanNode;
 import com.fasterxml.jackson.databind.node.IntNode;
@@ -27,7 +27,6 @@ public class JsonReturnObject {
        private final boolean success;
 
        /** The returned values. */
-       @JsonUnwrapped
        private final Map<String, JsonNode> content = Maps.newHashMap();
 
        /**
@@ -67,6 +66,16 @@ public class JsonReturnObject {
                return content.get(key);
        }
 
+       /**
+        * Returns the content of this object for serialization.
+        *
+        * @return The content of this object
+        */
+       @JsonAnyGetter
+       public Map<String, JsonNode> getContent() {
+               return content;
+       }
+
        //
        // ACTIONS
        //
@@ -107,7 +116,7 @@ public class JsonReturnObject {
         * @return This JSON return object
         */
        public JsonReturnObject put(String key, String value) {
-               return put(key, new TextNode(value));
+               return put(key, TextNode.valueOf(value));
        }
 
        /**
@@ -124,4 +133,18 @@ public class JsonReturnObject {
                return this;
        }
 
+       @Override
+       public int hashCode() {
+               return Boolean.valueOf(success).hashCode() ^ content.hashCode();
+       }
+
+       @Override
+       public boolean equals(Object object) {
+               if ((object == null) || (object.getClass() != getClass())) {
+                       return false;
+               }
+               JsonReturnObject other = (JsonReturnObject) object;
+               return (success == other.success) && content.equals(other.content);
+       }
+
 }