1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package net.sf.json;
18
19 import java.util.HashMap;
20 import java.util.Map;
21
22 import junit.framework.TestCase;
23
24
25
26
27 public class TestJSONArrayEqualsHashCodeCompareTo extends TestCase {
28 private static JSONArray strings;
29 private static Map values = new HashMap();
30 private static JSONArray values1;
31 private static JSONArray values2;
32 private static JSONArray values3;
33
34 static{
35 values.put( "int.1", Integer.valueOf( "1" ) );
36 values.put( "int.2", Integer.valueOf( "2" ) );
37 values.put( "long.1", Long.valueOf( "1" ) );
38 values.put( "long.2", Long.valueOf( "2" ) );
39 values.put( "string.1", "1" );
40 values.put( "string.2", "2" );
41 values.put( "boolean.1", Boolean.TRUE );
42 values.put( "boolean.2", Boolean.FALSE );
43
44 strings = new JSONArray().element( "1" )
45 .element( "1" )
46 .element( "true" )
47 .element( "string" )
48 .element( "function(){ return this; }" )
49 .element( "[1,2,3]" );
50 values.put( "JSONArray.strings", strings );
51 values1 = new JSONArray().element( Integer.valueOf( "1" ) )
52 .element( Long.valueOf( "1" ) )
53 .element( Boolean.TRUE )
54 .element( "string" )
55 .element( new JSONFunction( "return this;" ) )
56 .element( JSONArray.fromObject( new int[] { 1, 2, 3 } ) );
57 values.put( "JSONArray.values.1", values1 );
58 values2 = new JSONArray().element( Integer.valueOf( "1" ) )
59 .element( Long.valueOf( "1" ) )
60 .element( Boolean.TRUE )
61 .element( "string" );
62 values.put( "JSONObject.values.2", values2 );
63 values3 = new JSONArray().element( Integer.valueOf( "2" ) )
64 .element( Long.valueOf( "2" ) )
65 .element( Boolean.FALSE )
66 .element( "string2" );
67 values.put( "JSONObject.values.3", values3 );
68 }
69
70 public static void main( String[] args ) {
71 junit.textui.TestRunner.run( TestJSONArrayEqualsHashCodeCompareTo.class );
72 }
73
74 public TestJSONArrayEqualsHashCodeCompareTo( String name ) {
75 super( name );
76 }
77
78 public void testCompareTo_different_size() {
79 assertEquals( -1, values2.compareTo( strings ) );
80 assertEquals( 1, strings.compareTo( values2 ) );
81 }
82
83 public void testCompareTo_null() {
84 assertEquals( -1, strings.compareTo( null ) );
85 }
86
87 public void testCompareTo_object() {
88 assertEquals( -1, strings.compareTo( new Object() ) );
89 }
90
91 public void testCompareTo_same_array() {
92 assertEquals( 0, strings.compareTo( strings ) );
93 }
94
95 public void testCompareTo_same_size_different_values() {
96 assertEquals( -1, values2.compareTo( values3 ) );
97 }
98
99 public void testCompareTo_same_size_similar_values() {
100 assertEquals( 0, strings.compareTo( values1 ) );
101 }
102
103 public void testEquals_different_elements_same_size() {
104 assertFalse( values2.equals( values3 ) );
105 assertFalse( values3.equals( values2 ) );
106 }
107
108 public void testEquals_null() {
109 assertFalse( strings.equals( null ) );
110 }
111
112 public void testEquals_object() {
113 assertFalse( strings.equals( new Object() ) );
114 }
115
116 public void testEquals_same_object() {
117 assertTrue( strings.equals( strings ) );
118 }
119
120 public void testEquals_same_size_similar_values() {
121 assertTrue( strings.equals( values1 ) );
122 }
123
124 public void testHashCode_different_elements_same_size() {
125 assertFalse( values2.hashCode() == values3.hashCode() );
126 }
127 }