org.skyscreamer.jsonassert
Enum JSONCompareMode

java.lang.Object
  extended by java.lang.Enum<JSONCompareMode>
      extended by org.skyscreamer.jsonassert.JSONCompareMode
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<JSONCompareMode>

public enum JSONCompareMode
extends java.lang.Enum<JSONCompareMode>

These different modes define different behavior for the comparison of JSON for testing. Each mode encapsulates two underlying behaviors: extensibility and strict ordering.

 ExtensibleStrict Ordering
STRICTnoyes
LENIENTyesno
NON_EXTENSIBLEnono
STRICT_ORDERyesyes

If extensbility not allowed, then all of the expected values must match in what's being tested, but any additional fields will cause the test to fail. When extensibility is allowed, all values must still match. For example, if you're expecting:

{id:1,name:"Carter"}

Then the following will pass when extensible, and will fail when not:

{id:1,name:"Carter",favoriteColor:"blue"}

If strict ordering is enabled, JSON arrays must be in strict sequence. For example, if you're expecting:

{id:1,friends:[{id:2},{id:3}]}

Then the following will fail strict ordering, but will otherwise pass:

{id:1,friends:[{id:3},{id:2}]}


Enum Constant Summary
LENIENT
          Lenient checking.
NON_EXTENSIBLE
          Non-extensible checking.
STRICT
          Strict checking.
STRICT_ORDER
          Strict order checking.
 
Method Summary
 boolean hasStrictOrder()
          Strict order required
 boolean isExtensible()
          Is extensible
static JSONCompareMode valueOf(java.lang.String name)
          Returns the enum constant of this type with the specified name.
static JSONCompareMode[] values()
          Returns an array containing the constants of this enum type, in the order they are declared.
 
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Enum Constant Detail

STRICT

public static final JSONCompareMode STRICT
Strict checking. Not extensible, and strict array ordering.


LENIENT

public static final JSONCompareMode LENIENT
Lenient checking. Extensible, and non-strict array ordering.


NON_EXTENSIBLE

public static final JSONCompareMode NON_EXTENSIBLE
Non-extensible checking. Not extensible, and non-strict array ordering.


STRICT_ORDER

public static final JSONCompareMode STRICT_ORDER
Strict order checking. Not extensible, but strict array ordering.

Method Detail

values

public static JSONCompareMode[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
for (JSONCompareMode c : JSONCompareMode.values())
    System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they are declared

valueOf

public static JSONCompareMode valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
java.lang.NullPointerException - if the argument is null

isExtensible

public boolean isExtensible()
Is extensible

Returns:
True if results can be extended from what's expected, otherwise false.

hasStrictOrder

public boolean hasStrictOrder()
Strict order required

Returns:
True if results require strict array ordering, otherwise false.