33 lines
1.4 KiB
C#
33 lines
1.4 KiB
C#
using FinalFactory.Rendezvous.Contracts;
|
|
using FinalFactory.Rendezvous.Server.State;
|
|
|
|
namespace FinalFactory.Rendezvous.Tests.State;
|
|
|
|
public sealed class StoreResultMappingTests
|
|
{
|
|
[Fact]
|
|
public void EveryStoreResultHasOneSharedContractErrorMapping()
|
|
{
|
|
Dictionary<StoreResultCode, RendezvousErrorCode> expected = new()
|
|
{
|
|
[StoreResultCode.Success] = RendezvousErrorCode.None,
|
|
[StoreResultCode.NotFound] = RendezvousErrorCode.NotFound,
|
|
[StoreResultCode.Expired] = RendezvousErrorCode.Expired,
|
|
[StoreResultCode.Revoked] = RendezvousErrorCode.Forbidden,
|
|
[StoreResultCode.Conflict] = RendezvousErrorCode.Conflict,
|
|
[StoreResultCode.CapacityExceeded] = RendezvousErrorCode.CapacityExceeded,
|
|
[StoreResultCode.Draining] = RendezvousErrorCode.ServiceUnavailable,
|
|
[StoreResultCode.ReplayRejected] = RendezvousErrorCode.ReplayRejected,
|
|
[StoreResultCode.ServiceUnavailable] = RendezvousErrorCode.ServiceUnavailable,
|
|
[StoreResultCode.StaleHost] = RendezvousErrorCode.StaleHost,
|
|
[StoreResultCode.IncompatibleProtocol] = RendezvousErrorCode.IncompatibleProtocol,
|
|
};
|
|
|
|
Assert.Equal(Enum.GetValues<StoreResultCode>().Length, expected.Count);
|
|
foreach (KeyValuePair<StoreResultCode, RendezvousErrorCode> item in expected)
|
|
{
|
|
Assert.Equal(item.Value, item.Key.ToContractError());
|
|
}
|
|
}
|
|
}
|