test(contracts): round-trip provider status + degraded provenance

This commit is contained in:
Joseph Doherty
2026-06-13 08:56:13 -04:00
parent 1d85db7b4e
commit c16f016f0a
@@ -1332,6 +1332,56 @@ public sealed class ProtobufContractRoundTripTests
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>
/// Verifies that an <see cref="MxCommandReply"/> with kind
/// <see cref="MxCommandKind.ReadBulk"/> and a populated