Thanks, based on that Info I was able to fix that bug. Replaced the hashmap with a treemap.
On 5/19/08 4:47 PM, "Dave Smith" <[EMAIL PROTECTED]> wrote: > I'm seeing a failure in BeanXmlConverterTest.testMapsToXml when running via > Maven, but not when running in Eclipse. In the failure case, item2 precedes > item1 in the generated XML. I'm guessing the issue is in the test, which is > assuming order when iterating over the contents of a map. > > On Mon, May 19, 2008 at 9:26 AM, <[EMAIL PROTECTED]> wrote: > >> Author: doll >> Date: Mon May 19 09:26:35 2008 >> New Revision: 657853 >> >> URL: http://svn.apache.org/viewvc?rev=657853&view=rev >> Log: >> Added more tests for the opensocial util package. >> >> >> Added: >> >> >> incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/soci >> al/opensocial/util/BeanXmlConverterTest.java >> Modified: >> incubator/shindig/trunk/java/social-api/pom.xml >> >> >> incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/soci >> al/opensocial/util/BeanJsonConverterTest.java >> >> Modified: incubator/shindig/trunk/java/social-api/pom.xml >> URL: >> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/pom.xml? >> rev=657853&r1=657852&r2=657853&view=diff >> >> =============================================================================>> = >> --- incubator/shindig/trunk/java/social-api/pom.xml (original) >> +++ incubator/shindig/trunk/java/social-api/pom.xml Mon May 19 09:26:35 >> 2008 >> @@ -72,6 +72,10 @@ >> <artifactId>abdera-client</artifactId> >> </dependency> >> <dependency> >> + <artifactId>commons-lang</artifactId> >> + <groupId>commons-lang</groupId> >> + </dependency> >> + <dependency> >> <artifactId>commons-betwixt</artifactId> >> <groupId>commons-betwixt</groupId> >> </dependency> >> >> Modified: >> incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/soci >> al/opensocial/util/BeanJsonConverterTest.java >> URL: >> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test >> /java/org/apache/shindig/social/opensocial/util/BeanJsonConverterTest.java?re >> v=657853&r1=657852&r2=657853&view=diff >> >> =============================================================================>> = >> --- >> incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/soci >> al/opensocial/util/BeanJsonConverterTest.java >> (original) >> +++ >> incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/soci >> al/opensocial/util/BeanJsonConverterTest.java >> Mon May 19 09:26:35 2008 >> @@ -17,24 +17,22 @@ >> */ >> package org.apache.shindig.social.opensocial.util; >> >> -import org.apache.shindig.social.opensocial.model.Person; >> import org.apache.shindig.social.opensocial.model.Activity; >> -import org.apache.shindig.social.opensocial.model.Name; >> -import org.apache.shindig.social.opensocial.model.Phone; >> import org.apache.shindig.social.opensocial.model.Address; >> import org.apache.shindig.social.opensocial.model.Email; >> import org.apache.shindig.social.opensocial.model.MediaItem; >> -import org.apache.shindig.social.ResponseItem; >> - >> -import org.json.JSONObject; >> -import org.json.JSONArray; >> +import org.apache.shindig.social.opensocial.model.Name; >> +import org.apache.shindig.social.opensocial.model.Person; >> +import org.apache.shindig.social.opensocial.model.Phone; >> >> import junit.framework.TestCase; >> +import org.json.JSONArray; >> +import org.json.JSONObject; >> >> -import java.util.List; >> import java.util.ArrayList; >> -import java.util.Map; >> import java.util.HashMap; >> +import java.util.List; >> +import java.util.Map; >> >> public class BeanJsonConverterTest extends TestCase { >> private Person johnDoe; >> @@ -179,4 +177,12 @@ >> assertEquals("2", ((JSONObject) jsonArray.get(1)).getString("value")); >> } >> >> + public void testArrayToJson() throws Exception { >> + String[] colors = {"blue", "green", "aquamarine"}; >> + JSONArray jsonArray = (JSONArray) >> beanJsonConverter.convertToJson(colors); >> + >> + assertEquals(colors.length, jsonArray.length()); >> + assertEquals(colors[0], jsonArray.get(0)); >> + } >> + >> } >> >> Added: >> incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/soci >> al/opensocial/util/BeanXmlConverterTest.java >> URL: >> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test >> /java/org/apache/shindig/social/opensocial/util/BeanXmlConverterTest.java?rev >> =657853&view=auto >> >> =============================================================================>> = >> --- >> incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/soci >> al/opensocial/util/BeanXmlConverterTest.java >> (added) >> +++ >> incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/soci >> al/opensocial/util/BeanXmlConverterTest.java >> Mon May 19 09:26:35 2008 >> @@ -0,0 +1,156 @@ >> +/* >> + * Licensed to the Apache Software Foundation (ASF) under one >> + * or more contributor license agreements. See the NOTICE file >> + * distributed with this work for additional information >> + * regarding copyright ownership. The ASF licenses this file >> + * to you 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. >> + */ >> +package org.apache.shindig.social.opensocial.util; >> + >> +import org.apache.shindig.social.opensocial.model.Activity; >> +import org.apache.shindig.social.opensocial.model.Address; >> +import org.apache.shindig.social.opensocial.model.Email; >> +import org.apache.shindig.social.opensocial.model.MediaItem; >> +import org.apache.shindig.social.opensocial.model.Name; >> +import org.apache.shindig.social.opensocial.model.Person; >> +import org.apache.shindig.social.opensocial.model.Phone; >> + >> +import junit.framework.TestCase; >> +import org.apache.commons.lang.StringUtils; >> + >> +import java.util.ArrayList; >> +import java.util.HashMap; >> +import java.util.List; >> +import java.util.Map; >> + >> +public class BeanXmlConverterTest extends TestCase { >> + private Person johnDoe; >> + private Activity activity; >> + >> + private BeanXmlConverter beanXmlConverter; >> + >> + @Override >> + public void setUp() throws Exception { >> + super.setUp(); >> + johnDoe = new Person("johnDoeId", new Name("John Doe")); >> + List<Phone> phones = new ArrayList<Phone>(); >> + phones.add(new Phone("+33H000000000", "home")); >> + phones.add(new Phone("+33M000000000", "mobile")); >> + phones.add(new Phone("+33W000000000", "work")); >> + johnDoe.setPhoneNumbers(phones); >> + >> + List<Address> addresses = new ArrayList<Address>(); >> + addresses.add(new Address("My home address")); >> + johnDoe.setAddresses(addresses); >> + >> + List<Email> emails = new ArrayList<Email>(); >> + emails.add(new Email("[EMAIL PROTECTED]", "work")); >> + emails.add(new Email("[EMAIL PROTECTED]", "home")); >> + johnDoe.setEmails(emails); >> + >> + activity = new Activity("activityId", johnDoe.getId()); >> + >> + List<MediaItem> mediaItems = new ArrayList<MediaItem>(); >> + mediaItems.add(new MediaItem("image/jpg", MediaItem.Type.IMAGE, >> + "http://foo.bar")); >> + activity.setMediaItems(mediaItems); >> + >> + beanXmlConverter = new BeanXmlConverter(); >> + } >> + >> + public static class SimplePerson { >> + private String id; >> + private String name; >> + >> + public SimplePerson(String id, String name) { >> + this.id = id; >> + this.name = name; >> + } >> + >> + public String getId() { >> + return id; >> + } >> + >> + public String getName() { >> + return name; >> + } >> + } >> + >> + public void testToXmlOnSimpleClass() throws Exception { >> + SimplePerson cassie = new SimplePerson("5", "robot"); >> + String xml = beanXmlConverter.convertToXml(cassie); >> + >> + assertEquals("<beanxmlconvertertest$simpleperson>" >> + + "<id>5</id>" >> + + "<name>robot</name>" >> + + "</beanxmlconvertertest$simpleperson>", >> + StringUtils.deleteWhitespace(xml)); >> + } >> + >> + public void testPersonToXml() throws Exception { >> + String xml = beanXmlConverter.convertToXml(johnDoe); >> + // TODO: Make the person xml stop returning empty elements! >> + // This test is too messy with them >> + } >> + >> + public void testActivityToXml() throws Exception { >> + String xml = beanXmlConverter.convertToXml(activity); >> + // TODO: Make the activity xml stop returning empty elements! >> + } >> + >> + public void testMapsToXml() throws Exception { >> + // This is the structure our app data currently takes >> + Map<String, Map<String, String>> map = >> + new HashMap<String, Map<String, String>>(); >> + >> + Map<String, String> item1Map = new HashMap<String, String>(); >> + item1Map.put("value", "1"); >> + map.put("item1", item1Map); >> + >> + Map<String, String> item2Map = new HashMap<String, String>(); >> + item2Map.put("value", "2"); >> + map.put("item2", item2Map); >> + >> + String xml = beanXmlConverter.convertToXml(map); >> + >> + // TODO: I don't believe this is the output we are looking for for app >> + // data... we will probably have to tweak this. >> + String expectedXml = >> + "<hashmap>" + >> + "<empty>false</empty>" + >> + "<entry>" + >> + "<key>item1</key>" + >> + "<value>" + >> + "<empty>false</empty>" + >> + "<entry>" + >> + "<key>value</key>" + >> + "<value>1</value>" + >> + "</entry>" + >> + "</value>" + >> + "</entry>" + >> + "<entry>" + >> + "<key>item2</key>" + >> + "<value>" + >> + "<empty>false</empty>" + >> + "<entry>" + >> + "<key>value</key>" + >> + "<value>2</value>" + >> + "</entry>" + >> + "</value>" + >> + "</entry>" + >> + "</hashmap>"; >> + >> + assertEquals(expectedXml, StringUtils.deleteWhitespace(xml)); >> + } >> + >> +} >> \ No newline at end of file >> >> >>

