Skip to content

Commit

Permalink
fix remaining tests/issues
Browse files Browse the repository at this point in the history
  • Loading branch information
mregen committed Oct 11, 2024
1 parent b404399 commit a588ce3
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 15 deletions.
12 changes: 2 additions & 10 deletions Stack/Opc.Ua.Core/Types/Encoders/JsonEncoder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1346,25 +1346,17 @@ public void WriteStatusCode(string fieldName, StatusCode value)
}

// Verbose and NonReversible
PushStructure(fieldName);
if (value != StatusCodes.Good)
{
PushStructure(fieldName);
WriteSimpleField("Code", value.Code.ToString(CultureInfo.InvariantCulture), EscapeOptions.NoFieldNameEscape);
string symbolicId = StatusCode.LookupSymbolicId(value.CodeBits);
if (!string.IsNullOrEmpty(symbolicId))
{
WriteSimpleField("Symbol", symbolicId, EscapeOptions.Quotes | EscapeOptions.NoFieldNameEscape);
}
PopStructure();
return;
}

// Verbose needs empty object
if (EncodingToUse == JsonEncodingType.Verbose)
{
PushStructure(fieldName);
PopStructure();
}
PopStructure();
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -374,13 +374,19 @@ private string BuildExpectedResponse(
if (jsonEncoding == JsonEncodingType.Compact || jsonEncoding == JsonEncodingType.Reversible)
{
oText = "0";
// default statuscode is not encoded
continue;
}
else if (jsonEncoding == JsonEncodingType.Verbose)
{
oText = "{}";
}
else
{
oText = "{\"Code\": 0,\"Symbol\":\"Good\"}";
// default statuscode is not encoded
continue;
}
continue;
}
else if (property.Name == "Guid")
{
Expand Down
9 changes: 5 additions & 4 deletions Tests/Opc.Ua.Core.Tests/Types/Encoders/JsonEncoderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ public class JsonEncoderTests : EncoderCommon
$"\"ns=88;b={s_byteString64}\"", null},

{ BuiltInType.StatusCode, new StatusCode(StatusCodes.Good), null, null, null, "{}"},
{ BuiltInType.StatusCode, new StatusCode(StatusCodes.Good), $"{StatusCodes.Good}", "", null, "{}", true},
{ BuiltInType.StatusCode, new StatusCode(StatusCodes.Good), $"{StatusCodes.Good}", "{}", null, "{}", true},
{ BuiltInType.StatusCode, new StatusCode(StatusCodes.BadBoundNotFound), $"{StatusCodes.BadBoundNotFound}",
$"{{\"Code\":{StatusCodes.BadBoundNotFound}, \"Symbol\":\"{nameof(StatusCodes.BadBoundNotFound)}\"}}"},
{ BuiltInType.StatusCode, new StatusCode(StatusCodes.BadCertificateInvalid),
Expand Down Expand Up @@ -353,8 +353,8 @@ public class JsonEncoderTests : EncoderCommon
{ BuiltInType.DataValue, new DataValue(), "{}", null},
{ BuiltInType.DataValue, new DataValue(StatusCodes.Good), "{}", null},
{ BuiltInType.DataValue, new DataValue(StatusCodes.BadNotWritable),
$"{StatusCodes.BadNotWritable}",
$"{{\"Code\":{StatusCodes.BadNotWritable}, \"Symbol\":\"{nameof(StatusCodes.BadNotWritable)}\"}}"},
$"{{\"StatusCode\":{StatusCodes.BadNotWritable}}}",
$"{{\"StatusCode\":{{\"Code\":{StatusCodes.BadNotWritable}, \"Symbol\":\"{nameof(StatusCodes.BadNotWritable)}\"}}}}"},

{ BuiltInType.Enumeration, (TestEnumType) 0, "0", "\"0\""},
{ BuiltInType.Enumeration, TestEnumType.Three, TestEnumType.Three.ToString("d"), $"\"{TestEnumType.Three}_{TestEnumType.Three.ToString("d")}\""},
Expand Down Expand Up @@ -1192,10 +1192,11 @@ public void NotWellFormedUriInExpandedNodeId2String()
[Theory]
public void DataValueWithStatusCodes(
JsonEncodingType jsonEncodingType,
[ValueSource(nameof(GoodAndBadStatusCodes))] StatusCode statusCodeVariant,
[ValueSource(nameof(GoodAndBadStatusCodes))] StatusCode statusCode)
{
var dataValue = new DataValue() {
Value = new Variant(12345),
Value = new Variant(statusCodeVariant),
ServerTimestamp = DateTime.UtcNow,
StatusCode = statusCode
};
Expand Down

0 comments on commit a588ce3

Please sign in to comment.