test(contracts): round-trip provider status + degraded provenance
This commit is contained in:
@@ -1332,6 +1332,56 @@ public sealed class ProtobufContractRoundTripTests
|
|||||||
Assert.Equal(kind, parsed.Kind);
|
Assert.Equal(kind, parsed.Kind);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Verifies that an <see cref="AlarmFeedMessage"/> carrying the
|
||||||
|
/// <c>provider_status</c> payload case round-trips and resolves to
|
||||||
|
/// <see cref="AlarmFeedMessage.PayloadOneofCase.ProviderStatus"/>.
|
||||||
|
/// </summary>
|
||||||
|
[Fact]
|
||||||
|
public void Feed_RoundTripsProviderStatus()
|
||||||
|
{
|
||||||
|
var since = Timestamp.FromDateTime(new DateTime(2026, 6, 13, 9, 0, 0, DateTimeKind.Utc));
|
||||||
|
var original = new AlarmFeedMessage
|
||||||
|
{
|
||||||
|
ProviderStatus = new AlarmProviderStatus
|
||||||
|
{
|
||||||
|
Mode = AlarmProviderMode.Subtag,
|
||||||
|
Degraded = true,
|
||||||
|
Reason = "wnwrap poll failed 3x (HRESULT 0x80004005)",
|
||||||
|
Since = since,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
var parsed = AlarmFeedMessage.Parser.ParseFrom(original.ToByteArray());
|
||||||
|
|
||||||
|
Assert.Equal(original, parsed);
|
||||||
|
Assert.Equal(AlarmFeedMessage.PayloadOneofCase.ProviderStatus, parsed.PayloadCase);
|
||||||
|
Assert.True(parsed.ProviderStatus.Degraded);
|
||||||
|
Assert.Equal(AlarmProviderMode.Subtag, parsed.ProviderStatus.Mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Verifies that an <see cref="OnAlarmTransitionEvent"/> carrying the
|
||||||
|
/// new <c>degraded</c> and <c>source_provider</c> provenance fields
|
||||||
|
/// round-trips with their values preserved.
|
||||||
|
/// </summary>
|
||||||
|
[Fact]
|
||||||
|
public void Transition_RoundTripsDegradedProvenance()
|
||||||
|
{
|
||||||
|
var t = new OnAlarmTransitionEvent
|
||||||
|
{
|
||||||
|
AlarmFullReference = "Galaxy!Area.Tank01.Level.HiHi",
|
||||||
|
TransitionKind = AlarmTransitionKind.Raise,
|
||||||
|
Degraded = true,
|
||||||
|
SourceProvider = AlarmProviderMode.Subtag,
|
||||||
|
};
|
||||||
|
|
||||||
|
var parsed = OnAlarmTransitionEvent.Parser.ParseFrom(t.ToByteArray());
|
||||||
|
|
||||||
|
Assert.True(parsed.Degraded);
|
||||||
|
Assert.Equal(AlarmProviderMode.Subtag, parsed.SourceProvider);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Verifies that an <see cref="MxCommandReply"/> with kind
|
/// Verifies that an <see cref="MxCommandReply"/> with kind
|
||||||
/// <see cref="MxCommandKind.ReadBulk"/> and a populated
|
/// <see cref="MxCommandKind.ReadBulk"/> and a populated
|
||||||
|
|||||||
Reference in New Issue
Block a user