Class JsonTestValue
A simple wrapper for a string that can be parsed as JSON for tests.
Inheritance
Implements
Namespace: LaunchDarkly.TestHelpers
Assembly: LaunchDarkly.TestHelpers.dll
Syntax
public sealed class JsonTestValue : ValueType, IEquatable<JsonTestValue>
Remarks
This type provides strong typing so that it is clear when test matchers apply to JSON values versus strings, and hides the implementation details of parsing and serialization which are not relevant to the test logic.
Properties
IsDefined
True if there is a value (that is, the original string was not a null reference).
Declaration
public bool IsDefined { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
NoValue
Shortcut for creating an undefined value, equivalent to JsonOf(null)
.
Declaration
public static JsonTestValue NoValue { get; }
Property Value
Type | Description |
---|---|
JsonTestValue |
Methods
Equals(JsonTestValue)
Compares two values for deep equality.
Declaration
public bool Equals(JsonTestValue other)
Parameters
Type | Name | Description |
---|---|---|
JsonTestValue | other | another JSON value |
Returns
Type | Description |
---|---|
System.Boolean | true if the values are deeply equal, or are both undefined |
Equals(Object)
Compares two values for deep equality.
Declaration
public override bool Equals(object obj)
Parameters
Type | Name | Description |
---|---|---|
System.Object | obj | another JSON value |
Returns
Type | Description |
---|---|
System.Boolean | true if the values are deeply equal, or are both undefined |
GetHashCode()
Declaration
public override int GetHashCode()
Returns
Type | Description |
---|---|
System.Int32 |
JsonFromValue(Object)
Creates a JsonTestValue
by serializing an arbitrary value to JSON.
Declaration
public static JsonTestValue JsonFromValue(object value)
Parameters
Type | Name | Description |
---|---|---|
System.Object | value | an arbitrary value |
Returns
Type | Description |
---|---|
JsonTestValue | a |
Remarks
For instance, JsonFromValue(true)
is equivalent to JsonOf("true")
.
This only works for types that are supported by System.Text.Json
's default
reflection-based serialization mechanism.
JsonOf(String)
Creates a JsonTestValue
from a string that should contain JSON.
Declaration
public static JsonTestValue JsonOf(string raw)
Parameters
Type | Name | Description |
---|---|---|
System.String | raw | the input string |
Returns
Type | Description |
---|---|
JsonTestValue | a |
Remarks
This method fails immediately for any string that is not well-formed JSON. However, if
it is a null reference, it returns an "undefined" instance that will return false
from IsDefined.
Exceptions
Type | Condition |
---|---|
System.FormatException | for malformed JSON |
Property(String)
If this value is a JSON object, return the value of the specified property or an undefined value if there is no such property.
Declaration
public JsonTestValue Property(string name)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | the property name |
Returns
Type | Description |
---|---|
JsonTestValue | the value, if any |
Exceptions
Type | Condition |
---|---|
Xunit.Sdk.XunitException | if the current value is not an object |
RequiredProperty(String)
If this value is a JSON object, return the value of the specified property.
Declaration
public JsonTestValue RequiredProperty(string name)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | the property name |
Returns
Type | Description |
---|---|
JsonTestValue | the value, if any |
Exceptions
Type | Condition |
---|---|
Xunit.Sdk.XunitException | if the current value is not an object or it has no such property |
ToString()
Returns the JSON as a string, or a "no value" message if undefined.
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
System.String |