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
>> 
>> 
>> 

Reply via email to