Enum JSONCompareMode

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

public enum JSONCompareMode extends 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.

Behavior of JSONCompareMode
 ExtensibleStrict Ordering
STRICTnoyes
LENIENTyesno
NON_EXTENSIBLEnono
STRICT_ORDERyesyes

If extensibility 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 Details

    • 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. Extensible, and strict array ordering.
  • Method Details

    • values

      public static JSONCompareMode[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static JSONCompareMode valueOf(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:
      IllegalArgumentException - if this enum type has no constant with the specified name
      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.
    • withStrictOrdering

      public JSONCompareMode withStrictOrdering(boolean strictOrdering)
      Get the equivalent JSONCompareMode with or without strict ordering.
      Parameters:
      strictOrdering - if true, requires strict ordering of array elements
      Returns:
      the equivalent JSONCompareMode
    • withExtensible

      public JSONCompareMode withExtensible(boolean extensible)
      Get the equivalent JSONCompareMode with or without extensibility.
      Parameters:
      extensible - if true, allows keys in actual that don't appear in expected
      Returns:
      the equivalent JSONCompareMode