Commit b79e900e authored by Dustin Jenkins's avatar Dustin Jenkins
Browse files

Story 1848: JsonInputter change to accomodate new array handling.

parent b4687045
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -100,9 +100,7 @@ public class JsonGroupWriter extends GroupWriter
            throw new WriterException("null group");
        }

        Element children = getElement(group);
        Element groupElement = new Element("group");
        groupElement.addContent(children);
        Element groupElement = getElement(group, true);
        Document document = new Document();
        document.setRootElement(groupElement);

+1 −3
Original line number Diff line number Diff line
@@ -103,9 +103,7 @@ public class JsonUserRequestWriter extends UserRequestWriter
            throw new WriterException("null UserRequest");
        }

        Element children = getElement(userRequest);
        Element userRequestElement = new Element("userRequest");
        userRequestElement.addContent(children);
        Element userRequestElement = getElement(userRequest);
        Document document = new Document();
        document.setRootElement(userRequestElement);

+1 −3
Original line number Diff line number Diff line
@@ -102,9 +102,7 @@ public class JsonUserWriter extends UserWriter
            throw new WriterException("null User");
        }

        Element children = getElement(user);
        Element userElement = new Element("user");
        userElement.addContent(children);
        Element userElement = getElement(user);
        Document document = new Document();
        document.setRootElement(userElement);

+59 −17
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.security.Principal;
import java.util.Date;
import java.util.*;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -95,12 +95,12 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;

/**
 *
 * @author jburke
 */
public class JsonGroupReaderWriterTest
{
    private static Logger log = Logger.getLogger(JsonGroupReaderWriterTest.class);
    private static Logger log = Logger
            .getLogger(JsonGroupReaderWriterTest.class);

    @BeforeClass
    public static void setUpClass()
@@ -118,7 +118,9 @@ public class JsonGroupReaderWriterTest
            Group g = reader.read(s);
            fail("null String should throw IllegalArgumentException");
        }
        catch (IllegalArgumentException e) {}
        catch (IllegalArgumentException e)
        {
        }

        try
        {
@@ -127,7 +129,9 @@ public class JsonGroupReaderWriterTest
            Group g = reader.read(in);
            fail("null InputStream should throw IOException");
        }
        catch (IOException e) {}
        catch (IOException e)
        {
        }

        try
        {
@@ -136,7 +140,9 @@ public class JsonGroupReaderWriterTest
            Group g = reader.read(r);
            fail("null element should throw ReaderException");
        }
        catch (IllegalArgumentException e) {}
        catch (IllegalArgumentException e)
        {
        }
    }

    @Test
@@ -149,7 +155,9 @@ public class JsonGroupReaderWriterTest
            writer.write(null, new StringBuilder());
            fail("null Group should throw WriterException");
        }
        catch (WriterException e) {}
        catch (WriterException e)
        {
        }
    }

    @Test
@@ -213,13 +221,47 @@ public class JsonGroupReaderWriterTest
        JsonGroupReader reader = new JsonGroupReader();
        Group actual = reader.read(json);

        // Sort them so the tests work in Java 8.
        // (List implementation changed)
        final List<GroupProperty> sortedExpectedProperties =
                new ArrayList<GroupProperty>(expected.getProperties());
        final List<GroupProperty> sortedActualProperties =
                new ArrayList<GroupProperty>(actual.getProperties());

        Collections.sort(sortedExpectedProperties,
                         new GroupPropertyComparator());
        Collections.sort(sortedActualProperties, new GroupPropertyComparator());

        assertNotNull(actual);
        assertEquals(expected, actual);
        assertEquals(expected.description, actual.description);
        assertEquals(expected.lastModified, actual.lastModified);
        assertEquals(expected.getProperties(), actual.getProperties());
        assertEquals("Properties don't match.", sortedExpectedProperties,
                     sortedActualProperties);
        assertEquals(expected.getGroupMembers(), actual.getGroupMembers());
        assertEquals(expected.getUserMembers(), actual.getUserMembers());
    }

    class GroupPropertyComparator implements Comparator<GroupProperty>
    {
        @Override
        public int compare(GroupProperty o1, GroupProperty o2)
        {
            final int keyComp = o1.getKey()
                    .compareTo(o2.getKey());
            final int result;

            if (keyComp == 0)
            {
                result = o1.getValue().toString().compareTo(
                        o2.getValue().toString());
            }
            else
            {
                result = keyComp;
            }

            return result;
        }
    }
}
+6 −37
Original line number Diff line number Diff line
@@ -94,43 +94,12 @@ public class JsonUserListReaderWriterTest

        testSubject.write(users, writer);

        final JSONObject expected = new JSONObject("{\r\n" +
                                                   "  \"@xmlns\" : \"\",\r\n" +
                                                   "\"users\": [\r\n" +
                                                   "  \r\n" +
                                                   "  {\r\n" +
                                                   "    \"userID\" : {\r\n" +
                                                   "      \"identity\" : {\r\n" +
                                                   "        \"@type\" : \"HTTP\",\r\n" +
                                                   "        \"$\" : 0\r\n" +
                                                   "      }\r\n" +
                                                   "    }\r\n" +
                                                   "  },\r\n" +
                                                   "  {\r\n" +
                                                   "    \"userID\" : {\r\n" +
                                                   "      \"identity\" : {\r\n" +
                                                   "        \"@type\" : \"HTTP\",\r\n" +
                                                   "        \"$\" : 1\r\n" +
                                                   "      }\r\n" +
                                                   "    }\r\n" +
                                                   "  },\r\n" +
                                                   "  {\r\n" +
                                                   "    \"userID\" : {\r\n" +
                                                   "      \"identity\" : {\r\n" +
                                                   "        \"@type\" : \"HTTP\",\r\n" +
                                                   "        \"$\" : 2\r\n" +
                                                   "      }\r\n" +
                                                   "    }\r\n" +
                                                   "  },\r\n" +
                                                   "  {\r\n" +
                                                   "    \"userID\" : {\r\n" +
                                                   "      \"identity\" : {\r\n" +
                                                   "        \"@type\" : \"HTTP\",\r\n" +
                                                   "        \"$\" : 3\r\n" +
                                                   "      }\r\n" +
                                                   "    }\r\n" +
                                                   "  }\r\n" +
                                                   "]}");
        final JSONObject expected =
                new JSONObject("{\"users\":{\"user\":[{\"userID\":" +
                               "{\"identity\":{\"$\":\"0\",\"@type\":\"HTTP\"}}}," +
                               "{\"userID\":{\"identity\":{\"$\":\"1\",\"@type\":\"HTTP\"}}}," +
                               "{\"userID\":{\"identity\":{\"$\":\"2\",\"@type\":\"HTTP\"}}}," +
                               "{\"userID\":{\"identity\":{\"$\":\"3\",\"@type\":\"HTTP\"}}}]}}");
        final JSONObject result = new JSONObject(writer.toString());

        JSONAssert.assertEquals(expected, result, true);