diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 86cfe36..1f39ff9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -26,7 +26,7 @@ jobs: - name: Build run: dotnet build --configuration Release --no-restore - name: Test - run: dotnet test --no-restore --verbosity normal --collect:"XPlat Code Coverage" + run: dotnet test --no-restore --verbosity normal - name: Upload a Build Artifact uses: actions/upload-artifact@v3.1.1 with: diff --git a/RDMSharp/RDM/Device/AbstractRDMDevice.cs b/RDMSharp/RDM/Device/AbstractRDMDevice.cs index d135ec8..0b73fd0 100644 --- a/RDMSharp/RDM/Device/AbstractRDMDevice.cs +++ b/RDMSharp/RDM/Device/AbstractRDMDevice.cs @@ -111,7 +111,7 @@ protected async Task ReceiveRDMMessage(RDMMessage rdmMessage) if ((rdmMessage.DestUID.IsBroadcast || rdmMessage.DestUID == UID) && !rdmMessage.Command.HasFlag(ERDM_Command.RESPONSE)) { - await SendRDMMessage(await processRequestMessage(rdmMessage)); + await SendRDMMessage(processRequestMessage(rdmMessage)); return; } @@ -153,13 +153,12 @@ private async Task collectAllParameters() await UpdateSlotDescriptions(); AllDataPulled = true; } - protected async Task processRequestMessage(RDMMessage rdmMessage) + protected RDMMessage processRequestMessage(RDMMessage rdmMessage) { - //await Task.Delay(200); var pm = pmManager.GetRDMParameterWrapperByID(rdmMessage.Parameter); object responseValue = null; parameterValues.TryGetValue(rdmMessage.Parameter, out responseValue); - RDMMessage? response = null; + RDMMessage response = null; if (rdmMessage.Command == ERDM_Command.GET_COMMAND) { switch (pm) diff --git a/RDMSharp/RDM/Device/RDMDeviceModel.cs b/RDMSharp/RDM/Device/RDMDeviceModel.cs index 7dd7fc9..5b6701c 100644 --- a/RDMSharp/RDM/Device/RDMDeviceModel.cs +++ b/RDMSharp/RDM/Device/RDMDeviceModel.cs @@ -93,7 +93,7 @@ public IReadOnlyCollection KnownNotSupportedParameters public event PropertyChangedEventHandler PropertyChanged; private readonly Func sendRdmFunktion; - protected RDMDeviceModel(RDMUID uid, RDMDeviceInfo deviceInfo, Func sendRdmFunktion) + internal RDMDeviceModel(RDMUID uid, RDMDeviceInfo deviceInfo, Func sendRdmFunktion) { this.sendRdmFunktion = sendRdmFunktion; DeviceInfo = deviceInfo; diff --git a/RDMSharp/RDM/EventTools.cs b/RDMSharp/RDM/EventTools.cs index 1f64643..0490aea 100644 --- a/RDMSharp/RDM/EventTools.cs +++ b/RDMSharp/RDM/EventTools.cs @@ -5,7 +5,7 @@ namespace RDMSharp { - internal static class EventTools + public static class EventTools { [DebuggerHidden] public static int InvokeFailSafe(this EventHandler @event, object sender, EventArgs args) diff --git a/RDMSharp/RDM/IPv4Address.cs b/RDMSharp/RDM/IPv4Address.cs index 4646e88..c27b58a 100644 --- a/RDMSharp/RDM/IPv4Address.cs +++ b/RDMSharp/RDM/IPv4Address.cs @@ -13,7 +13,7 @@ namespace RDMSharp public readonly byte B3; public readonly byte B4; - public static IPv4Address Default { get => new IPv4Address(0, 0, 0, 0); } + public static IPv4Address LocalHost { get => new IPv4Address(127, 0, 0, 1); } public IPv4Address(in byte block1, in byte block2, in byte block3, in byte block4) { @@ -26,6 +26,8 @@ public IPv4Address(in string ipAddress) : this() { Regex regex = new Regex(@"^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$"); var match = regex.Match(ipAddress); + if (!match.Success) + throw new FormatException("The given string is not a IPv4Address"); B1 = byte.Parse(match.Groups[1].Value); B2 = byte.Parse(match.Groups[2].Value); B3 = byte.Parse(match.Groups[3].Value); diff --git a/RDMSharp/RDM/MACAddress.cs b/RDMSharp/RDM/MACAddress.cs index 4e0a0aa..346f278 100644 --- a/RDMSharp/RDM/MACAddress.cs +++ b/RDMSharp/RDM/MACAddress.cs @@ -61,7 +61,7 @@ public MACAddress(in string macAddress) : this() B6 = byte.Parse(match.Groups[6].Value, System.Globalization.NumberStyles.HexNumber); } else - throw new Exception($"The given string\"{macAddress}\" is not matchable to any known MAC-Address format"); + throw new FormatException($"The given string\"{macAddress}\" is not matchable to any known MAC-Address format"); } public MACAddress(IEnumerable enumerable) @@ -93,45 +93,6 @@ public static implicit operator MACAddress(byte[] bytes) return new MACAddress(bytes); } - public static MACAddress Parse(string uid) - { - if (!uid.Contains(':')) return MACAddress.Empty; - string[] parts = uid.Split(':'); - if (parts.Length != 6) return MACAddress.Empty; - foreach (var part in parts) - if (part.Length != 2) return MACAddress.Empty; - - byte b1; - byte b2; - byte b3; - byte b4; - byte b5; - byte b6; - try - { - b1 = Convert.ToByte(parts[0], 16); - b2 = Convert.ToByte(parts[1], 16); - b3 = Convert.ToByte(parts[2], 16); - b4 = Convert.ToByte(parts[3], 16); - b5 = Convert.ToByte(parts[4], 16); - b6 = Convert.ToByte(parts[5], 16); - } - catch - { - return MACAddress.Empty; - } - return new MACAddress(b1, b2, b3, b4, b5, b6); - } - public IEnumerable ToBytes() - { - yield return this.B1; - yield return this.B2; - yield return this.B3; - yield return this.B4; - yield return this.B5; - yield return this.B6; - } - public static bool operator ==(MACAddress a, MACAddress b) { return a.Equals(b); diff --git a/RDMSharp/RDM/PayloadObject/GetHardwareAddressResponse.cs b/RDMSharp/RDM/PayloadObject/GetHardwareAddressResponse.cs index 24743e2..669ebb6 100644 --- a/RDMSharp/RDM/PayloadObject/GetHardwareAddressResponse.cs +++ b/RDMSharp/RDM/PayloadObject/GetHardwareAddressResponse.cs @@ -49,7 +49,7 @@ public override byte[] ToPayloadData() { List data = new List(); data.AddRange(Tools.ValueToData(this.InterfaceId)); - data.AddRange(this.HardwareAddress.ToBytes()); + data.AddRange((byte[])this.HardwareAddress); return data.ToArray(); } } diff --git a/RDMSharp/RDM/RDMMessage.cs b/RDMSharp/RDM/RDMMessage.cs index bef5f61..9df3f4b 100644 --- a/RDMSharp/RDM/RDMMessage.cs +++ b/RDMSharp/RDM/RDMMessage.cs @@ -1,4 +1,5 @@ -using RDMSharp.ParameterWrapper; +using Microsoft.Extensions.Logging; +using RDMSharp.ParameterWrapper; using System; using System.Collections.Generic; using System.Linq; @@ -7,7 +8,8 @@ namespace RDMSharp { public class RDMMessage : IEquatable - { + { + private static ILogger Logger = null; private byte[] _parameterData = new byte[0]; public RDMMessage() @@ -196,6 +198,9 @@ public object Value } catch (Exception ex) { +#if DEBUG + Logger?.LogError(string.Empty, ex); +#endif return null; } } @@ -266,6 +271,15 @@ public bool Equals(RDMMessage other) ResponseType == other.ResponseType && IsAck == other.IsAck && EqualityComparer.Default.Equals(Value, other.Value); + } + public static bool operator ==(RDMMessage a, RDMMessage b) + { + return a.Equals(b); + } + + public static bool operator !=(RDMMessage a, RDMMessage b) + { + return !a.Equals(b); } public override int GetHashCode() diff --git a/RDMSharpTests/Devices/Mock/SendReceivePipeline.cs b/RDMSharpTests/Devices/Mock/SendReceivePipeline.cs index 21a958a..7ea92a0 100644 --- a/RDMSharpTests/Devices/Mock/SendReceivePipeline.cs +++ b/RDMSharpTests/Devices/Mock/SendReceivePipeline.cs @@ -18,7 +18,7 @@ public static void RDMMessageSend(long identifyer, RDMMessage rdmMessage) Console.WriteLine(rdmMessage); #endif - RDMMessageRereived?.Invoke(null, new Tuple(identifyer,rdmMessage)); + RDMMessageRereived?.InvokeFailSafe(null, new Tuple(identifyer,rdmMessage)); } public static event EventHandler>? RDMMessageRereived; } diff --git a/RDMSharpTests/RDM/GetBackgroundQueuedStatusPolicyDescriptionResponseTest.cs b/RDMSharpTests/RDM/GetBackgroundQueuedStatusPolicyDescriptionResponseTest.cs index 5baad6c..7bb47ad 100644 --- a/RDMSharpTests/RDM/GetBackgroundQueuedStatusPolicyDescriptionResponseTest.cs +++ b/RDMSharpTests/RDM/GetBackgroundQueuedStatusPolicyDescriptionResponseTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() GetBackgroundQueuedStatusPolicyDescriptionResponse resultGetBackgroundQueuedStatusPolicyDescriptionResponse = GetBackgroundQueuedStatusPolicyDescriptionResponse.FromMessage(message); Assert.That(resultGetBackgroundQueuedStatusPolicyDescriptionResponse, Is.EqualTo(getBackgroundQueuedStatusPolicyDescriptionResponse)); + + var res = resultGetBackgroundQueuedStatusPolicyDescriptionResponse.ToString(); + var src = getBackgroundQueuedStatusPolicyDescriptionResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] public void DescriptionCharLimitTest() diff --git a/RDMSharpTests/RDM/GetBackgroundQueuedStatusPolicyResponseTest.cs b/RDMSharpTests/RDM/GetBackgroundQueuedStatusPolicyResponseTest.cs index 4a9df79..5660098 100644 --- a/RDMSharpTests/RDM/GetBackgroundQueuedStatusPolicyResponseTest.cs +++ b/RDMSharpTests/RDM/GetBackgroundQueuedStatusPolicyResponseTest.cs @@ -23,7 +23,13 @@ public void ToPayloadAndFromMessageTest() GetBackgroundQueuedStatusPolicyResponse resultGetBackgroundQueuedStatusPolicyResponse = GetBackgroundQueuedStatusPolicyResponse.FromMessage(message); - Assert.That(resultGetBackgroundQueuedStatusPolicyResponse, Is.EqualTo(getBackgroundQueuedStatusPolicyResponse)); + Assert.That(resultGetBackgroundQueuedStatusPolicyResponse, Is.EqualTo(getBackgroundQueuedStatusPolicyResponse)); + + var res = resultGetBackgroundQueuedStatusPolicyResponse.ToString(); + var src = getBackgroundQueuedStatusPolicyResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetBindingAndControlFieldsTest.cs b/RDMSharpTests/RDM/GetBindingAndControlFieldsTest.cs index 8bca6b0..06e23e7 100644 --- a/RDMSharpTests/RDM/GetBindingAndControlFieldsTest.cs +++ b/RDMSharpTests/RDM/GetBindingAndControlFieldsTest.cs @@ -23,7 +23,13 @@ public void ToPayloadAndFromMessageTest() GetBindingAndControlFieldsRequest resultGetBindingAndControlFieldsRequest = GetBindingAndControlFieldsRequest.FromMessage(message); - Assert.That(resultGetBindingAndControlFieldsRequest, Is.EqualTo(getBindingAndControlFieldsRequest)); + Assert.That(resultGetBindingAndControlFieldsRequest, Is.EqualTo(getBindingAndControlFieldsRequest)); + + var res = getBindingAndControlFieldsRequest.ToString(); + var src = resultGetBindingAndControlFieldsRequest.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); GetBindingAndControlFieldsResponse getBindingAndControlFieldsResponse = new GetBindingAndControlFieldsResponse(1, new RDMUID(1213, 34444), 1234, new RDMUID(542, 476436)); data = getBindingAndControlFieldsResponse.ToPayloadData(); @@ -38,7 +44,13 @@ public void ToPayloadAndFromMessageTest() GetBindingAndControlFieldsResponse resultGetBindingAndControlFieldsResponse = GetBindingAndControlFieldsResponse.FromMessage(message); - Assert.That(resultGetBindingAndControlFieldsResponse, Is.EqualTo(getBindingAndControlFieldsResponse)); + Assert.That(resultGetBindingAndControlFieldsResponse, Is.EqualTo(getBindingAndControlFieldsResponse)); + + res = getBindingAndControlFieldsResponse.ToString(); + src = resultGetBindingAndControlFieldsResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetBrokerStatusResponseTest.cs b/RDMSharpTests/RDM/GetBrokerStatusResponseTest.cs index 41d9af9..e2c20b4 100644 --- a/RDMSharpTests/RDM/GetBrokerStatusResponseTest.cs +++ b/RDMSharpTests/RDM/GetBrokerStatusResponseTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() GetBrokerStatusResponse resultGetBrokerStatusResponse = GetBrokerStatusResponse.FromMessage(message); Assert.That(resultGetBrokerStatusResponse, Is.EqualTo(getBrokerStatusResponse)); + + var res = resultGetBrokerStatusResponse.ToString(); + var src = getBrokerStatusResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetEndpointListResponseTest.cs b/RDMSharpTests/RDM/GetEndpointListResponseTest.cs index fc6c243..1027555 100644 --- a/RDMSharpTests/RDM/GetEndpointListResponseTest.cs +++ b/RDMSharpTests/RDM/GetEndpointListResponseTest.cs @@ -35,6 +35,12 @@ public void ToPayloadAndFromMessageTest() GetEndpointListResponse resultGetEndpointListResponse = GetEndpointListResponse.FromMessage(message); Assert.That(resultGetEndpointListResponse, Is.EqualTo(getEndpointListResponse)); + + var res = resultGetEndpointListResponse.ToString(); + var src = getEndpointListResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetEndpointResponderListChangeResponseTest.cs b/RDMSharpTests/RDM/GetEndpointResponderListChangeResponseTest.cs index fb6f689..cf88c76 100644 --- a/RDMSharpTests/RDM/GetEndpointResponderListChangeResponseTest.cs +++ b/RDMSharpTests/RDM/GetEndpointResponderListChangeResponseTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() GetEndpointResponderListChangeResponse resultGetEndpointResponderListChangeResponse = GetEndpointResponderListChangeResponse.FromMessage(message); Assert.That(resultGetEndpointResponderListChangeResponse, Is.EqualTo(getEndpointResponderListChangeResponse)); + + var res = resultGetEndpointResponderListChangeResponse.ToString(); + var src = getEndpointResponderListChangeResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetEndpointRespondersResponseTest.cs b/RDMSharpTests/RDM/GetEndpointRespondersResponseTest.cs index 120dde6..d45f518 100644 --- a/RDMSharpTests/RDM/GetEndpointRespondersResponseTest.cs +++ b/RDMSharpTests/RDM/GetEndpointRespondersResponseTest.cs @@ -31,6 +31,12 @@ public void ToPayloadAndFromMessageTest() GetEndpointRespondersResponse resultGetEndpointRespondersResponse = GetEndpointRespondersResponse.FromMessage(message); Assert.That(resultGetEndpointRespondersResponse, Is.EqualTo(getEndpointRespondersResponse)); + + var res = resultGetEndpointRespondersResponse.ToString(); + var src = getEndpointRespondersResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetEndpointTimingDescriptionResponseTest.cs b/RDMSharpTests/RDM/GetEndpointTimingDescriptionResponseTest.cs index 61a1c01..cd0ef5b 100644 --- a/RDMSharpTests/RDM/GetEndpointTimingDescriptionResponseTest.cs +++ b/RDMSharpTests/RDM/GetEndpointTimingDescriptionResponseTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() GetEndpointTimingDescriptionResponse resultGetEndpointTimingDescriptionResponse = GetEndpointTimingDescriptionResponse.FromMessage(message); Assert.That(resultGetEndpointTimingDescriptionResponse, Is.EqualTo(getGetEndpointTimingDescriptionResponse)); + + var res = resultGetEndpointTimingDescriptionResponse.ToString(); + var src = getGetEndpointTimingDescriptionResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] public void DescriptionCharLimitTest() diff --git a/RDMSharpTests/RDM/GetHardwareAddressResponseTest.cs b/RDMSharpTests/RDM/GetHardwareAddressResponseTest.cs index caddb6a..e564ac5 100644 --- a/RDMSharpTests/RDM/GetHardwareAddressResponseTest.cs +++ b/RDMSharpTests/RDM/GetHardwareAddressResponseTest.cs @@ -10,7 +10,7 @@ public void Setup() [Test] public void ToPayloadAndFromMessageTest() { - GetHardwareAddressResponse getHardwareAddressResponse = new GetHardwareAddressResponse(1, MACAddress.Parse("02:42:c0:a8:01:09")); + GetHardwareAddressResponse getHardwareAddressResponse = new GetHardwareAddressResponse(1, new MACAddress("02:42:c0:a8:01:09")); byte[] data = getHardwareAddressResponse.ToPayloadData(); RDMMessage message = new RDMMessage() @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() GetHardwareAddressResponse resultGetHardwareAddressResponse = GetHardwareAddressResponse.FromMessage(message); Assert.That(resultGetHardwareAddressResponse, Is.EqualTo(getHardwareAddressResponse)); + + var res = resultGetHardwareAddressResponse.ToString(); + var src = getHardwareAddressResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetIPv4CurrentAddressResponseTest.cs b/RDMSharpTests/RDM/GetIPv4CurrentAddressResponseTest.cs index fe93503..d2c6b5e 100644 --- a/RDMSharpTests/RDM/GetIPv4CurrentAddressResponseTest.cs +++ b/RDMSharpTests/RDM/GetIPv4CurrentAddressResponseTest.cs @@ -25,7 +25,13 @@ public void ToPayloadAndFromMessageTest() GetIPv4CurrentAddressResponse resultGetIPv4CurrentAddressResponse = GetIPv4CurrentAddressResponse.FromMessage(message); - Assert.That(resultGetIPv4CurrentAddressResponse, Is.EqualTo(getIPv4CurrentAddressResponse)); + Assert.That(resultGetIPv4CurrentAddressResponse, Is.EqualTo(getIPv4CurrentAddressResponse)); + + var res = resultGetIPv4CurrentAddressResponse.ToString(); + var src = getIPv4CurrentAddressResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetInterfaceListResponseTest.cs b/RDMSharpTests/RDM/GetInterfaceListResponseTest.cs index a377bf6..b647df1 100644 --- a/RDMSharpTests/RDM/GetInterfaceListResponseTest.cs +++ b/RDMSharpTests/RDM/GetInterfaceListResponseTest.cs @@ -35,6 +35,12 @@ public void ToPayloadAndFromMessageTest() GetInterfaceListResponse resultGetInterfaceListResponse = GetInterfaceListResponse.FromMessage(message); Assert.That(resultGetInterfaceListResponse, Is.EqualTo(getInterfaceListResponse)); + + var res = resultGetInterfaceListResponse.ToString(); + var src = getInterfaceListResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetInterfaceNameResponseTest.cs b/RDMSharpTests/RDM/GetInterfaceNameResponseTest.cs index 5ce53d9..81f8434 100644 --- a/RDMSharpTests/RDM/GetInterfaceNameResponseTest.cs +++ b/RDMSharpTests/RDM/GetInterfaceNameResponseTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() GetInterfaceNameResponse resultGetInterfaceNameResponse = GetInterfaceNameResponse.FromMessage(message); Assert.That(resultGetInterfaceNameResponse, Is.EqualTo(getInterfaceNameResponse)); + + var res = resultGetInterfaceNameResponse.ToString(); + var src = getInterfaceNameResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetSetComponentScopeTest.cs b/RDMSharpTests/RDM/GetSetComponentScopeTest.cs index 424446c..281a68c 100644 --- a/RDMSharpTests/RDM/GetSetComponentScopeTest.cs +++ b/RDMSharpTests/RDM/GetSetComponentScopeTest.cs @@ -42,6 +42,12 @@ public void ToPayloadAndFromMessageTest() resultSensorValue = GetSetComponentScope.FromMessage(message); Assert.That(resultSensorValue, Is.EqualTo(sensorValue)); + + var res = resultSensorValue.ToString(); + var src = sensorValue.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] public void DescriptionCharLimitTest() diff --git a/RDMSharpTests/RDM/GetSetDiscoveryStateTest.cs b/RDMSharpTests/RDM/GetSetDiscoveryStateTest.cs index fc77b40..3cf8e08 100644 --- a/RDMSharpTests/RDM/GetSetDiscoveryStateTest.cs +++ b/RDMSharpTests/RDM/GetSetDiscoveryStateTest.cs @@ -25,6 +25,12 @@ public void ToPayloadAndFromMessageTest() Assert.That(resultGetDiscoveryStateResponse, Is.EqualTo(getDiscoveryStateResponse)); + var res = resultGetDiscoveryStateResponse.ToString(); + var src = getDiscoveryStateResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); + SetDiscoveryStateRequest setDiscoveryStateRequest = new SetDiscoveryStateRequest(1, ERDM_DiscoveryState.INCREMENTAL); data = setDiscoveryStateRequest.ToPayloadData(); @@ -39,6 +45,12 @@ public void ToPayloadAndFromMessageTest() SetDiscoveryStateRequest resultSetDiscoveryStateRequest = SetDiscoveryStateRequest.FromMessage(message); Assert.That(resultSetDiscoveryStateRequest, Is.EqualTo(setDiscoveryStateRequest)); + + res = resultSetDiscoveryStateRequest.ToString(); + src = setDiscoveryStateRequest.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetSetEndpointBackgroundDiscoveryTest.cs b/RDMSharpTests/RDM/GetSetEndpointBackgroundDiscoveryTest.cs index 50d620e..fb4bca1 100644 --- a/RDMSharpTests/RDM/GetSetEndpointBackgroundDiscoveryTest.cs +++ b/RDMSharpTests/RDM/GetSetEndpointBackgroundDiscoveryTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() GetSetEndpointBackgroundDiscovery resultGetSetEndpointBackgroundDiscovery = GetSetEndpointBackgroundDiscovery.FromMessage(message); Assert.That(resultGetSetEndpointBackgroundDiscovery, Is.EqualTo(getSetEndpointBackgroundDiscovery)); + + var res = resultGetSetEndpointBackgroundDiscovery.ToString(); + var src = getSetEndpointBackgroundDiscovery.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetSetEndpointLabelTest.cs b/RDMSharpTests/RDM/GetSetEndpointLabelTest.cs index dfda955..20fd4db 100644 --- a/RDMSharpTests/RDM/GetSetEndpointLabelTest.cs +++ b/RDMSharpTests/RDM/GetSetEndpointLabelTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() GetSetEndpointLabel resultGetSetEndpointLabel = GetSetEndpointLabel.FromMessage(message); Assert.That(resultGetSetEndpointLabel, Is.EqualTo(getSetEndpointLabel)); + + var res = resultGetSetEndpointLabel.ToString(); + var src = getSetEndpointLabel.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] public void DescriptionCharLimitTest() diff --git a/RDMSharpTests/RDM/GetSetEndpointModeTest.cs b/RDMSharpTests/RDM/GetSetEndpointModeTest.cs index d4eb840..09411ce 100644 --- a/RDMSharpTests/RDM/GetSetEndpointModeTest.cs +++ b/RDMSharpTests/RDM/GetSetEndpointModeTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() GetSetEndpointMode resultGetSetEndpointMode = GetSetEndpointMode.FromMessage(message); Assert.That(resultGetSetEndpointMode, Is.EqualTo(getSetEndpointMode)); + + var res = resultGetSetEndpointMode.ToString(); + var src = getSetEndpointMode.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetSetEndpointRDMTrafficEnableTest.cs b/RDMSharpTests/RDM/GetSetEndpointRDMTrafficEnableTest.cs index 57140d9..c45210d 100644 --- a/RDMSharpTests/RDM/GetSetEndpointRDMTrafficEnableTest.cs +++ b/RDMSharpTests/RDM/GetSetEndpointRDMTrafficEnableTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() GetSetEndpointRDMTrafficEnable resultGetSetEndpointRDMTrafficEnable = GetSetEndpointRDMTrafficEnable.FromMessage(message); Assert.That(resultGetSetEndpointRDMTrafficEnable, Is.EqualTo(getSetEndpointRDMTrafficEnabled)); + + var res = resultGetSetEndpointRDMTrafficEnable.ToString(); + var src = getSetEndpointRDMTrafficEnabled.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetSetEndpointTimingTest.cs b/RDMSharpTests/RDM/GetSetEndpointTimingTest.cs index 186ea0e..58f370a 100644 --- a/RDMSharpTests/RDM/GetSetEndpointTimingTest.cs +++ b/RDMSharpTests/RDM/GetSetEndpointTimingTest.cs @@ -25,6 +25,12 @@ public void ToPayloadAndFromMessageTest() Assert.That(resultGetEndpointTimingResponse, Is.EqualTo(getEndpointTimingResponse)); + var res = resultGetEndpointTimingResponse.ToString(); + var src = getEndpointTimingResponse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); + SetEndpointTimingRequest setEndpointTimingRequest = new SetEndpointTimingRequest(1, 42); data = setEndpointTimingRequest.ToPayloadData(); @@ -39,6 +45,12 @@ public void ToPayloadAndFromMessageTest() SetEndpointTimingRequest resultSetEndpointTimingRequest = SetEndpointTimingRequest.FromMessage(message); Assert.That(resultSetEndpointTimingRequest, Is.EqualTo(setEndpointTimingRequest)); + + res = resultSetEndpointTimingRequest.ToString(); + src = setEndpointTimingRequest.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetSetEndpointToUniverseTest.cs b/RDMSharpTests/RDM/GetSetEndpointToUniverseTest.cs index 101e696..d3e4c7b 100644 --- a/RDMSharpTests/RDM/GetSetEndpointToUniverseTest.cs +++ b/RDMSharpTests/RDM/GetSetEndpointToUniverseTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() GetSetEndpointToUniverse resultGetSetEndpointToUniverse = GetSetEndpointToUniverse.FromMessage(message); Assert.That(resultGetSetEndpointToUniverse, Is.EqualTo(getSetEndpointToUniverse)); + + var res = resultGetSetEndpointToUniverse.ToString(); + var src = getSetEndpointToUniverse.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetSetIPV4_xxx_ModeTest.cs b/RDMSharpTests/RDM/GetSetIPV4_xxx_ModeTest.cs index 2a6830b..56e049c 100644 --- a/RDMSharpTests/RDM/GetSetIPV4_xxx_ModeTest.cs +++ b/RDMSharpTests/RDM/GetSetIPV4_xxx_ModeTest.cs @@ -21,9 +21,15 @@ public void ToPayloadAndFromMessageTest() ParameterData = data, }; - GetSetIPV4_xxx_Mode resultGetSetDHCPMode = GetSetIPV4_xxx_Mode.FromMessage(message); - + GetSetIPV4_xxx_Mode resultGetSetDHCPMode = GetSetIPV4_xxx_Mode.FromMessage(message); + Assert.That(resultGetSetDHCPMode, Is.EqualTo(getSetDHCPMode)); + + var res = resultGetSetDHCPMode.ToString(); + var src = getSetDHCPMode.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetSetIPv4DefaultRouteTest.cs b/RDMSharpTests/RDM/GetSetIPv4DefaultRouteTest.cs index 5329312..baa16c2 100644 --- a/RDMSharpTests/RDM/GetSetIPv4DefaultRouteTest.cs +++ b/RDMSharpTests/RDM/GetSetIPv4DefaultRouteTest.cs @@ -26,6 +26,12 @@ public void ToPayloadAndFromMessageTest() GetSetIPv4DefaultRoute resultGetSetIPv4DefaultRoute = GetSetIPv4DefaultRoute.FromMessage(message); Assert.That(resultGetSetIPv4DefaultRoute, Is.EqualTo(getSetIPv4DefaultRoute)); + + var res = resultGetSetIPv4DefaultRoute.ToString(); + var src = getSetIPv4DefaultRoute.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetSetIPv4NameServerTest.cs b/RDMSharpTests/RDM/GetSetIPv4NameServerTest.cs new file mode 100644 index 0000000..e1e1ca9 --- /dev/null +++ b/RDMSharpTests/RDM/GetSetIPv4NameServerTest.cs @@ -0,0 +1,37 @@ +using System.Net; + +namespace RDMSharpTest.RDM +{ + public class GetSetIPv4NameServerTest + { + [SetUp] + public void Setup() + { + } + + [Test] + public void ToPayloadAndFromMessageTest() + { + GetSetIPv4NameServer getSetIPv4NameServer = new GetSetIPv4NameServer(1, IPAddress.Parse("2.0.0.1")); + byte[] data = getSetIPv4NameServer.ToPayloadData(); + + RDMMessage message = new RDMMessage() + { + PortID_or_Responsetype = (byte)ERDM_ResponseType.ACK, + Command = ERDM_Command.GET_COMMAND_RESPONSE, + Parameter = ERDM_Parameter.DNS_IPV4_NAME_SERVER, + ParameterData = data, + }; + + GetSetIPv4NameServer resultGetSetIPv4NameServer = GetSetIPv4NameServer.FromMessage(message); + + Assert.That(resultGetSetIPv4NameServer, Is.EqualTo(getSetIPv4NameServer)); + + var res = resultGetSetIPv4NameServer.ToString(); + var src = getSetIPv4NameServer.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); + } + } +} \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetSetIPv4StaticAddressTest.cs b/RDMSharpTests/RDM/GetSetIPv4StaticAddressTest.cs index 3eb1463..c6dd2ff 100644 --- a/RDMSharpTests/RDM/GetSetIPv4StaticAddressTest.cs +++ b/RDMSharpTests/RDM/GetSetIPv4StaticAddressTest.cs @@ -26,6 +26,12 @@ public void ToPayloadAndFromMessageTest() GetSetIPv4StaticAddress resultGetSetIPv4StaticAddress = GetSetIPv4StaticAddress.FromMessage(message); Assert.That(resultGetSetIPv4StaticAddress, Is.EqualTo(getSetIPv4StaticAddress)); + + var res = resultGetSetIPv4StaticAddress.ToString(); + var src = getSetIPv4StaticAddress.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/GetSetIdentifyEndpointTest.cs b/RDMSharpTests/RDM/GetSetIdentifyEndpointTest.cs index 3843374..3cf087b 100644 --- a/RDMSharpTests/RDM/GetSetIdentifyEndpointTest.cs +++ b/RDMSharpTests/RDM/GetSetIdentifyEndpointTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() GetSetIdentifyEndpoint resultGetSetIPv4StaticAddress = GetSetIdentifyEndpoint.FromMessage(message); Assert.That(resultGetSetIPv4StaticAddress, Is.EqualTo(getSetIPv4StaticAddress)); + + var res = resultGetSetIPv4StaticAddress.ToString(); + var src = getSetIPv4StaticAddress.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/ParameterWrappersTest.cs b/RDMSharpTests/RDM/ParameterWrappersTest.cs index 0025f31..2329aa0 100644 --- a/RDMSharpTests/RDM/ParameterWrappersTest.cs +++ b/RDMSharpTests/RDM/ParameterWrappersTest.cs @@ -208,6 +208,9 @@ public void AssemblyListenerTest() Assert.That(pW.Description.EndsWith(" "), Is.False, $"{pW.Name} Description is not Vaild"); Assert.That(pW.Description.StartsWith(" "), Is.False, $"{pW.Name} Description is not Vaild"); Assert.That(pW.Description.EndsWith("."), Is.True, $"{pW.Name} Description should end with a \".\""); + var toString = pW.ToString(); + Assert.That(toString, Is.Not.Null); + Assert.That(toString.StartsWith("{"), Is.False); } foreach (ERDM_Parameter parameter in e1_20Parameters) diff --git a/RDMSharpTests/RDM/RDMCommunicationStatusTest.cs b/RDMSharpTests/RDM/RDMCommunicationStatusTest.cs index 7f1b5fc..2135c23 100644 --- a/RDMSharpTests/RDM/RDMCommunicationStatusTest.cs +++ b/RDMSharpTests/RDM/RDMCommunicationStatusTest.cs @@ -25,6 +25,12 @@ public void ToPayloadAndFromMessageTest() RDMCommunicationStatus resultCommunicationStatus = RDMCommunicationStatus.FromMessage(message); Assert.That(resultCommunicationStatus, Is.EqualTo(communicationStatus)); + + var res = resultCommunicationStatus.ToString(); + var src = communicationStatus.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMCurveDescriptionTest.cs b/RDMSharpTests/RDM/RDMCurveDescriptionTest.cs index 6ecffec..893de17 100644 --- a/RDMSharpTests/RDM/RDMCurveDescriptionTest.cs +++ b/RDMSharpTests/RDM/RDMCurveDescriptionTest.cs @@ -23,7 +23,13 @@ public void ToPayloadAndFromMessageTest() RDMCurveDescription resultCurveDescription = RDMCurveDescription.FromMessage(message); - Assert.That(curveDescription, Is.EqualTo(resultCurveDescription)); + Assert.That(resultCurveDescription, Is.EqualTo(curveDescription)); + + var res = resultCurveDescription.ToString(); + var src = curveDescription.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] public void DescriptionCharLimitTest() diff --git a/RDMSharpTests/RDM/RDMCurveTest.cs b/RDMSharpTests/RDM/RDMCurveTest.cs index 0e29d64..97c0e04 100644 --- a/RDMSharpTests/RDM/RDMCurveTest.cs +++ b/RDMSharpTests/RDM/RDMCurveTest.cs @@ -23,7 +23,13 @@ public void ToPayloadAndFromMessageTest() RDMCurve resultCurve = RDMCurve.FromMessage(message); - Assert.That(curve, Is.EqualTo(resultCurve)); + Assert.That(resultCurve, Is.EqualTo(curve)); + + var res = resultCurve.ToString(); + var src = curve.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMDMXBlockAddressTest.cs b/RDMSharpTests/RDM/RDMDMXBlockAddressTest.cs index 8490a8c..1d9e00d 100644 --- a/RDMSharpTests/RDM/RDMDMXBlockAddressTest.cs +++ b/RDMSharpTests/RDM/RDMDMXBlockAddressTest.cs @@ -25,6 +25,12 @@ public void ToPayloadAndFromMessageTest() RDMDMXBlockAddress resultDMXBlockAddress = RDMDMXBlockAddress.FromMessage(message); Assert.That(resultDMXBlockAddress, Is.EqualTo(dmxBlockAddress)); + + var res = resultDMXBlockAddress.ToString(); + var src = dmxBlockAddress.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMDMXPersonalityDescriptionTest.cs b/RDMSharpTests/RDM/RDMDMXPersonalityDescriptionTest.cs index ea7f030..b5dcb4e 100644 --- a/RDMSharpTests/RDM/RDMDMXPersonalityDescriptionTest.cs +++ b/RDMSharpTests/RDM/RDMDMXPersonalityDescriptionTest.cs @@ -23,7 +23,13 @@ public void ToPayloadAndFromMessageTest() RDMDMXPersonalityDescription resultRdmDmxPersonalityDescription = RDMDMXPersonalityDescription.FromMessage(message); - Assert.That(rdmDmxPersonalityDescription, Is.EqualTo(resultRdmDmxPersonalityDescription)); + Assert.That(resultRdmDmxPersonalityDescription, Is.EqualTo(rdmDmxPersonalityDescription)); + + var res = resultRdmDmxPersonalityDescription.ToString(); + var src = rdmDmxPersonalityDescription.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] diff --git a/RDMSharpTests/RDM/RDMDMXPersonalityTest.cs b/RDMSharpTests/RDM/RDMDMXPersonalityTest.cs index b14a7d4..5d6892d 100644 --- a/RDMSharpTests/RDM/RDMDMXPersonalityTest.cs +++ b/RDMSharpTests/RDM/RDMDMXPersonalityTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() RDMDMXPersonality resultRdmDmxPersonality = RDMDMXPersonality.FromMessage(message); Assert.That(resultRdmDmxPersonality, Is.EqualTo(rdmDmxPersonality)); + + var res = resultRdmDmxPersonality.ToString(); + var src = rdmDmxPersonality.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMDMX_xxxx_ModeTest.cs b/RDMSharpTests/RDM/RDMDMX_xxxx_ModeTest.cs index c8e6efb..0460f4c 100644 --- a/RDMSharpTests/RDM/RDMDMX_xxxx_ModeTest.cs +++ b/RDMSharpTests/RDM/RDMDMX_xxxx_ModeTest.cs @@ -25,6 +25,12 @@ public void ToPayloadAndFromMessageTest() RDMDMX_xxxx_Mode resultDMXFailMode = RDMDMX_xxxx_Mode.FromMessage(message); Assert.That(resultDMXFailMode, Is.EqualTo(dmxFailMode)); + + var res = resultDMXFailMode.ToString(); + var src = dmxFailMode.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMDeviceInfoTest.cs b/RDMSharpTests/RDM/RDMDeviceInfoTest.cs index 6088dae..59ea338 100644 --- a/RDMSharpTests/RDM/RDMDeviceInfoTest.cs +++ b/RDMSharpTests/RDM/RDMDeviceInfoTest.cs @@ -1,3 +1,5 @@ +using System.Security.Cryptography; + namespace RDMSharpTest.RDM { public class RDMDeviceInfoTest @@ -23,7 +25,13 @@ public void ToPayloadAndFromMessageTest() RDMDeviceInfo resultDeviceInfo = RDMDeviceInfo.FromMessage(message); - Assert.That(deviceInfo, Is.EqualTo(resultDeviceInfo)); + Assert.That(resultDeviceInfo, Is.EqualTo(deviceInfo)); + + var res = resultDeviceInfo.ToString(); + var src = deviceInfo.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMDimmerInfoTest.cs b/RDMSharpTests/RDM/RDMDimmerInfoTest.cs index 1a4a642..7c10240 100644 --- a/RDMSharpTests/RDM/RDMDimmerInfoTest.cs +++ b/RDMSharpTests/RDM/RDMDimmerInfoTest.cs @@ -23,7 +23,13 @@ public void ToPayloadAndFromMessageTest() RDMDimmerInfo resultDimmerInfo = RDMDimmerInfo.FromMessage(message); - Assert.That(dimmerInfo, Is.EqualTo(resultDimmerInfo)); + Assert.That(resultDimmerInfo, Is.EqualTo(dimmerInfo)); + + var res = resultDimmerInfo.ToString(); + var src = dimmerInfo.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMLockStateDescriptionTest.cs b/RDMSharpTests/RDM/RDMLockStateDescriptionTest.cs index 1eb1af1..f1fe5f8 100644 --- a/RDMSharpTests/RDM/RDMLockStateDescriptionTest.cs +++ b/RDMSharpTests/RDM/RDMLockStateDescriptionTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() RDMLockStateDescription resultLockStateDescription = RDMLockStateDescription.FromMessage(message); Assert.That(resultLockStateDescription, Is.EqualTo(lockStateDescription)); + + var res = resultLockStateDescription.ToString(); + var src = lockStateDescription.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] public void DescriptionCharLimitTest() diff --git a/RDMSharpTests/RDM/RDMLockStateTest.cs b/RDMSharpTests/RDM/RDMLockStateTest.cs index d3d1967..eaccf43 100644 --- a/RDMSharpTests/RDM/RDMLockStateTest.cs +++ b/RDMSharpTests/RDM/RDMLockStateTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() GetLockStateResponse resultLockState = GetLockStateResponse.FromMessage(message); Assert.That(resultLockState, Is.EqualTo(lockState)); + + var res = resultLockState.ToString(); + var src = lockState.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMMessageTest.cs b/RDMSharpTests/RDM/RDMMessageTest.cs index 669c6cb..268a109 100644 --- a/RDMSharpTests/RDM/RDMMessageTest.cs +++ b/RDMSharpTests/RDM/RDMMessageTest.cs @@ -140,7 +140,21 @@ public void RDMUID_Equals() { Assert.That(new RDMUID(), Is.EqualTo(RDMUID.Empty)); Assert.That(new RDMUID(0, 0), Is.EqualTo(RDMUID.Empty)); - Assert.That(new RDMUID(ushort.MaxValue, uint.MaxValue), Is.EqualTo(RDMUID.Broadcast)); + Assert.That(new RDMUID(0, 0), Is.Not.EqualTo(null)); + Assert.That(new RDMUID(0, 0), Is.Not.EqualTo(new RDMUID(0xFFFF, 0xABCDEF98))); + Assert.That(new RDMUID(ushort.MaxValue, uint.MaxValue), Is.EqualTo(RDMUID.Broadcast)); + + var uid = new RDMUID(0xFFFF, 0xABCDEF98); + Assert.That((object)uid, Is.EqualTo((object)new RDMUID(0xFFFF, 0xABCDEF98))); + Assert.That((object)uid, Is.Not.EqualTo((object)new RDMUID(0xF4FF, 0xABCD3F98))); + Assert.That((object)uid, Is.Not.EqualTo(null)); + + Assert.That(uid == new RDMUID(0xFFFF, 0xABCDEF98), Is.True); + Assert.That(uid != new RDMUID(0xFFFF, 0x4BCD3F98), Is.True); + Assert.That(new RDMUID(0xFFFF, 0x4BCD3F98) < new RDMUID(0xFFFF, 0xABCD3F98), Is.True); + Assert.That(new RDMUID(0xFFFF, 0x4BCD3F98) <= new RDMUID(0xFFFF, 0xABCD3F98), Is.True); + Assert.That(new RDMUID(0xFFFF, 0xFBCD3F98) > new RDMUID(0xFFFF, 0xABCD3F98), Is.True); + Assert.That(new RDMUID(0xFFFF, 0xFBCD3F98) >= new RDMUID(0xFFFF, 0xABCD3F98), Is.True); } } } diff --git a/RDMSharpTests/RDM/RDMMinimumLevelTest.cs b/RDMSharpTests/RDM/RDMMinimumLevelTest.cs index cfd6a9b..221e12c 100644 --- a/RDMSharpTests/RDM/RDMMinimumLevelTest.cs +++ b/RDMSharpTests/RDM/RDMMinimumLevelTest.cs @@ -23,7 +23,13 @@ public void ToPayloadAndFromMessageTest() RDMMinimumLevel resultMinimumLevel = RDMMinimumLevel.FromMessage(message); - Assert.That(minimumLevel, Is.EqualTo(resultMinimumLevel)); + Assert.That(resultMinimumLevel, Is.EqualTo(minimumLevel)); + + var res = resultMinimumLevel.ToString(); + var src = minimumLevel.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMModulationFrequencyDescriptionTest.cs b/RDMSharpTests/RDM/RDMModulationFrequencyDescriptionTest.cs index 0f01789..c50542f 100644 --- a/RDMSharpTests/RDM/RDMModulationFrequencyDescriptionTest.cs +++ b/RDMSharpTests/RDM/RDMModulationFrequencyDescriptionTest.cs @@ -21,9 +21,15 @@ public void ToPayloadAndFromMessageTestWithoutFrequency() ParameterData = data, }; - RDMModulationFrequencyDescription resultModulationFrequencyDescription = RDMModulationFrequencyDescription.FromMessage(message); + RDMModulationFrequencyDescription resultModulationFrequencyDescription = RDMModulationFrequencyDescription.FromMessage(message); + + Assert.That(resultModulationFrequencyDescription, Is.EqualTo(modulationFrequencyDescription)); - Assert.That(modulationFrequencyDescription, Is.EqualTo(resultModulationFrequencyDescription)); + var res = resultModulationFrequencyDescription.ToString(); + var src = modulationFrequencyDescription.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); modulationFrequencyDescription = new RDMModulationFrequencyDescription(1, uint.MaxValue, "Pseudo ModulationFrequency"); data = modulationFrequencyDescription.ToPayloadData(); @@ -38,7 +44,13 @@ public void ToPayloadAndFromMessageTestWithoutFrequency() resultModulationFrequencyDescription = RDMModulationFrequencyDescription.FromMessage(message); - Assert.That(modulationFrequencyDescription, Is.EqualTo(resultModulationFrequencyDescription)); + Assert.That(resultModulationFrequencyDescription, Is.EqualTo(modulationFrequencyDescription)); + + res = resultModulationFrequencyDescription.ToString(); + src = modulationFrequencyDescription.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] public void ToPayloadAndFromMessageTest() @@ -56,7 +68,13 @@ public void ToPayloadAndFromMessageTest() RDMModulationFrequencyDescription resultModulationFrequencyDescription = RDMModulationFrequencyDescription.FromMessage(message); - Assert.That(modulationFrequencyDescription, Is.EqualTo(resultModulationFrequencyDescription)); + Assert.That(resultModulationFrequencyDescription, Is.EqualTo(modulationFrequencyDescription)); + + var res = resultModulationFrequencyDescription.ToString(); + var src = modulationFrequencyDescription.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] public void DescriptionCharLimitTest() diff --git a/RDMSharpTests/RDM/RDMModulationFrequencyTest.cs b/RDMSharpTests/RDM/RDMModulationFrequencyTest.cs index 00f7ec6..96f77e8 100644 --- a/RDMSharpTests/RDM/RDMModulationFrequencyTest.cs +++ b/RDMSharpTests/RDM/RDMModulationFrequencyTest.cs @@ -23,7 +23,13 @@ public void ToPayloadAndFromMessageTest() RDMModulationFrequency resultModulationFrequency = RDMModulationFrequency.FromMessage(message); - Assert.That(modulationFrequency, Is.EqualTo(resultModulationFrequency)); + Assert.That(resultModulationFrequency, Is.EqualTo(modulationFrequency)); + + var res = resultModulationFrequency.ToString(); + var src = modulationFrequency.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMOutputResponseTimeDescriptionTest.cs b/RDMSharpTests/RDM/RDMOutputResponseTimeDescriptionTest.cs index 1df1d1e..44688bb 100644 --- a/RDMSharpTests/RDM/RDMOutputResponseTimeDescriptionTest.cs +++ b/RDMSharpTests/RDM/RDMOutputResponseTimeDescriptionTest.cs @@ -23,7 +23,13 @@ public void ToPayloadAndFromMessageTest() RDMOutputResponseTimeDescription resultOutputResponseTimeDescription = RDMOutputResponseTimeDescription.FromMessage(message); - Assert.That(outputResponseTimeDescription, Is.EqualTo(resultOutputResponseTimeDescription)); + Assert.That(resultOutputResponseTimeDescription, Is.EqualTo(outputResponseTimeDescription)); + + var res = resultOutputResponseTimeDescription.ToString(); + var src = outputResponseTimeDescription.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] public void DescriptionCharLimitTest() diff --git a/RDMSharpTests/RDM/RDMOutputResponseTimeTest.cs b/RDMSharpTests/RDM/RDMOutputResponseTimeTest.cs index 119a356..5e1ccd2 100644 --- a/RDMSharpTests/RDM/RDMOutputResponseTimeTest.cs +++ b/RDMSharpTests/RDM/RDMOutputResponseTimeTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() RDMOutputResponseTime resultOutputResponseTime = RDMOutputResponseTime.FromMessage(message); Assert.That(resultOutputResponseTime, Is.EqualTo(outputResponseTime)); + + var res = resultOutputResponseTime.ToString(); + var src = outputResponseTime.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMParameterDescriptionTest.cs b/RDMSharpTests/RDM/RDMParameterDescriptionTest.cs index 260aec8..22dd64b 100644 --- a/RDMSharpTests/RDM/RDMParameterDescriptionTest.cs +++ b/RDMSharpTests/RDM/RDMParameterDescriptionTest.cs @@ -23,7 +23,13 @@ public void ToPayloadAndFromMessageTest() RDMParameterDescription resultParameterDescription = RDMParameterDescription.FromMessage(message); - Assert.That(parameterDescription, Is.EqualTo(resultParameterDescription)); + Assert.That(resultParameterDescription, Is.EqualTo(parameterDescription)); + + var res = resultParameterDescription.ToString(); + var src = parameterDescription.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] diff --git a/RDMSharpTests/RDM/RDMPresetInfoTest.cs b/RDMSharpTests/RDM/RDMPresetInfoTest.cs index 64478a8..4e2148d 100644 --- a/RDMSharpTests/RDM/RDMPresetInfoTest.cs +++ b/RDMSharpTests/RDM/RDMPresetInfoTest.cs @@ -23,7 +23,13 @@ public void ToPayloadAndFromMessageTest() RDMPresetInfo resultPresetInfo = RDMPresetInfo.FromMessage(message); - Assert.That(presetInfo, Is.EqualTo(resultPresetInfo)); + Assert.That(resultPresetInfo, Is.EqualTo(presetInfo)); + + var res = resultPresetInfo.ToString(); + var src = presetInfo.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMPresetStatusTest.cs b/RDMSharpTests/RDM/RDMPresetStatusTest.cs index 516e35f..87f9b42 100644 --- a/RDMSharpTests/RDM/RDMPresetStatusTest.cs +++ b/RDMSharpTests/RDM/RDMPresetStatusTest.cs @@ -23,7 +23,13 @@ public void ToPayloadAndFromMessageTest() RDMPresetStatus resultPresetStatus = RDMPresetStatus.FromMessage(message); - Assert.That(presetStatus, Is.EqualTo(resultPresetStatus)); + Assert.That(resultPresetStatus, Is.EqualTo(presetStatus)); + + var res = resultPresetStatus.ToString(); + var src = presetStatus.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMProxiedDeviceCountTest.cs b/RDMSharpTests/RDM/RDMProxiedDeviceCountTest.cs index 71b1698..a96ad48 100644 --- a/RDMSharpTests/RDM/RDMProxiedDeviceCountTest.cs +++ b/RDMSharpTests/RDM/RDMProxiedDeviceCountTest.cs @@ -25,6 +25,12 @@ public void ToPayloadAndFromMessageTest() RDMProxiedDeviceCount resultProxiedDeviceCount = RDMProxiedDeviceCount.FromMessage(message); Assert.That(resultProxiedDeviceCount, Is.EqualTo(proxiedDeviceCount)); + + var res = resultProxiedDeviceCount.ToString(); + var src = proxiedDeviceCount.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMProxiedDevicesTest.cs b/RDMSharpTests/RDM/RDMProxiedDevicesTest.cs index f424312..06eb4ae 100644 --- a/RDMSharpTests/RDM/RDMProxiedDevicesTest.cs +++ b/RDMSharpTests/RDM/RDMProxiedDevicesTest.cs @@ -30,6 +30,12 @@ public void ToPayloadAndFromMessageTest() RDMProxiedDevices resultproxiedDevices = RDMProxiedDevices.FromMessage(message); Assert.That(resultproxiedDevices, Is.EqualTo(proxiedDevices)); + + var res = resultproxiedDevices.ToString(); + var src = proxiedDevices.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMRealTimeClockTest.cs b/RDMSharpTests/RDM/RDMRealTimeClockTest.cs index c85daff..1433a0f 100644 --- a/RDMSharpTests/RDM/RDMRealTimeClockTest.cs +++ b/RDMSharpTests/RDM/RDMRealTimeClockTest.cs @@ -25,6 +25,12 @@ public void ToPayloadAndFromMessageTest() RDMRealTimeClock resultRealTimeClock = RDMRealTimeClock.FromMessage(message); Assert.That(resultRealTimeClock, Is.EqualTo(realTimeClock)); + + var res = resultRealTimeClock.ToString(); + var src = realTimeClock.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMSelfTestDescriptionTest.cs b/RDMSharpTests/RDM/RDMSelfTestDescriptionTest.cs index 53c5cd3..efdcf9d 100644 --- a/RDMSharpTests/RDM/RDMSelfTestDescriptionTest.cs +++ b/RDMSharpTests/RDM/RDMSelfTestDescriptionTest.cs @@ -24,6 +24,12 @@ public void ToPayloadAndFromMessageTest() RDMSelfTestDescription resultSelfTestDescription = RDMSelfTestDescription.FromMessage(message); Assert.That(resultSelfTestDescription, Is.EqualTo(selfTestDescription)); + + var res = resultSelfTestDescription.ToString(); + var src = selfTestDescription.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] diff --git a/RDMSharpTests/RDM/RDMSensorDefinitionTest.cs b/RDMSharpTests/RDM/RDMSensorDefinitionTest.cs index 425c7b7..8f7bf26 100644 --- a/RDMSharpTests/RDM/RDMSensorDefinitionTest.cs +++ b/RDMSharpTests/RDM/RDMSensorDefinitionTest.cs @@ -25,6 +25,12 @@ public void ToPayloadAndFromMessageTest() RDMSensorDefinition resultSensorDefinition = RDMSensorDefinition.FromMessage(message); Assert.That(resultSensorDefinition, Is.EqualTo(sensorDefinition)); + + var res = resultSensorDefinition.ToString(); + var src = sensorDefinition.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] diff --git a/RDMSharpTests/RDM/RDMSensorValueTest.cs b/RDMSharpTests/RDM/RDMSensorValueTest.cs index 03cf366..47a7869 100644 --- a/RDMSharpTests/RDM/RDMSensorValueTest.cs +++ b/RDMSharpTests/RDM/RDMSensorValueTest.cs @@ -25,6 +25,12 @@ public void ToPayloadAndFromMessageTest() RDMSensorValue resultSensorValue = RDMSensorValue.FromMessage(message); Assert.That(resultSensorValue, Is.EqualTo(sensorValue)); + + var res = resultSensorValue.ToString(); + var src = sensorValue.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMSlotInfoTest.cs b/RDMSharpTests/RDM/RDMSlotInfoTest.cs index 0719be0..7dd4489 100644 --- a/RDMSharpTests/RDM/RDMSlotInfoTest.cs +++ b/RDMSharpTests/RDM/RDMSlotInfoTest.cs @@ -10,13 +10,19 @@ public void Setup() [Test] public void ToPayloadAndFromMessageTest() { - RDMSlotInfo statusMessage = new RDMSlotInfo(3, ERDM_SlotType.SEC_ROTATION, ERDM_SlotCategory.INTENSITY); + RDMSlotInfo slotInfo = new RDMSlotInfo(3, ERDM_SlotType.SEC_ROTATION, ERDM_SlotCategory.INTENSITY); - byte[] data = statusMessage.ToPayloadData(); + byte[] data = slotInfo.ToPayloadData(); - RDMSlotInfo resultStatusMessage = RDMSlotInfo.FromPayloadData(data); + RDMSlotInfo resultSlotInfo = RDMSlotInfo.FromPayloadData(data); - Assert.That(resultStatusMessage, Is.EqualTo(statusMessage)); + Assert.That(resultSlotInfo, Is.EqualTo(slotInfo)); + + var res = resultSlotInfo.ToString(); + var src = slotInfo.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/RDMStatusMessageTest.cs b/RDMSharpTests/RDM/RDMStatusMessageTest.cs index f5c0e2e..53daa04 100644 --- a/RDMSharpTests/RDM/RDMStatusMessageTest.cs +++ b/RDMSharpTests/RDM/RDMStatusMessageTest.cs @@ -17,6 +17,12 @@ public void ToPayloadAndFromMessageTest() RDMStatusMessage resultStatusMessage = RDMStatusMessage.FromPayloadData(data); Assert.That(resultStatusMessage, Is.EqualTo(statusMessage)); + + var res = resultStatusMessage.ToString(); + var src = statusMessage.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } } } \ No newline at end of file diff --git a/RDMSharpTests/RDM/TCPCommsEntryTest.cs b/RDMSharpTests/RDM/TCPCommsEntryTest.cs index ed4610d..0fddc8e 100644 --- a/RDMSharpTests/RDM/TCPCommsEntryTest.cs +++ b/RDMSharpTests/RDM/TCPCommsEntryTest.cs @@ -26,7 +26,15 @@ public void ToPayloadAndFromMessageTest() TCPCommsEntry resultTCPCommsEntryTest = TCPCommsEntry.FromMessage(message); - Assert.That(resultTCPCommsEntryTest, Is.EqualTo(tcpCommsEntryTest)); tcpCommsEntryTest = new TCPCommsEntry("Pseudo TCPCommsEntryTest", IPAddress.Parse("2001:db8:0:0:0:0:1428:57ab"), 2347, 99); + Assert.That(resultTCPCommsEntryTest, Is.EqualTo(tcpCommsEntryTest)); + + var res = resultTCPCommsEntryTest.ToString(); + var src = tcpCommsEntryTest.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); + + tcpCommsEntryTest = new TCPCommsEntry("Pseudo TCPCommsEntryTest", IPAddress.Parse("2001:db8:0:0:0:0:1428:57ab"), 2347, 99); data = tcpCommsEntryTest.ToPayloadData(); @@ -41,6 +49,12 @@ public void ToPayloadAndFromMessageTest() resultTCPCommsEntryTest = TCPCommsEntry.FromMessage(message); Assert.That(resultTCPCommsEntryTest, Is.EqualTo(tcpCommsEntryTest)); + + res = resultTCPCommsEntryTest.ToString(); + src = tcpCommsEntryTest.ToString(); + Assert.That(res, Is.Not.Null); + Assert.That(src, Is.Not.Null); + Assert.That(res, Is.EqualTo(src)); } [Test] public void DescriptionCharLimitTest() diff --git a/RDMSharpTests/TestManyObjects.cs b/RDMSharpTests/TestManyObjects.cs new file mode 100644 index 0000000..a8d5209 --- /dev/null +++ b/RDMSharpTests/TestManyObjects.cs @@ -0,0 +1,107 @@ +using System.Collections.Concurrent; +using System.Collections.Generic; + +namespace RDMSharpTest +{ + public class TestManyObjects + { + [SetUp] + public void Setup() + { + } + + [Test] + public void TestIPv4Address() + { + var address = IPv4Address.LocalHost; + Assert.That(address.ToString(), Is.EqualTo("127.0.0.1")); + Assert.That(address, Is.EqualTo(new IPv4Address(address.ToString()))); + Assert.Throws(typeof(FormatException), () => new IPv4Address("1.2.3.")); + + address = new IPv4Address(1, 1, 1, 1); + Assert.That(address, Is.EqualTo(new IPv4Address(new byte[] { 1, 1, 1, 1 }))); + Assert.Throws(typeof(ArgumentOutOfRangeException), () => new IPv4Address(new byte[] { 1 })); + Assert.That(address, Is.EqualTo(new IPv4Address(new List() { 1, 1, 1, 1 }))); + Assert.Throws(typeof(ArgumentOutOfRangeException), () => new IPv4Address(new List() { 1 })); + + byte[] bytes = new byte[] { 8, 7, 6, 5 }; + System.Net.IPAddress ip = new System.Net.IPAddress(bytes); + address = (IPv4Address)bytes; + Assert.That(ip, Is.EqualTo((System.Net.IPAddress)address)); + Assert.That(address, Is.EqualTo((IPv4Address)ip)); + + bytes = new byte[] { 1, 1, 1, 1 }; + Assert.That(bytes, Is.EqualTo((byte[])new IPv4Address(bytes))); + + Assert.That(new IPv4Address(3, 4, 5, 6) == new IPv4Address("3.4.5.6"), Is.True); + Assert.That(new IPv4Address(3, 4, 5, 6) != new IPv4Address("3.4.5.6"), Is.False); + Assert.That(((object)new IPv4Address(3, 4, 5, 6)).Equals(new IPv4Address("3.4.5.6")), Is.True); + Assert.That(((object)new IPv4Address(3, 4, 5, 6)).Equals("3"), Is.False); + + address = new IPv4Address(8, 8, 8, 8); + Assert.That(address, Is.Not.EqualTo(new IPv4Address(2, 3, 4, 5))); + Assert.That(address, Is.Not.EqualTo(new IPv4Address(8, 3, 4, 5))); + Assert.That(address, Is.Not.EqualTo(new IPv4Address(8, 8, 4, 5))); + Assert.That(address, Is.Not.EqualTo(new IPv4Address(8, 8, 8, 5))); + Assert.That(address, Is.EqualTo(new IPv4Address(8, 8, 8, 8))); + + ConcurrentDictionary dict = new ConcurrentDictionary(); + + for (byte i1 = 1; i1 < 246; i1 += 8) + for (byte i2 = 1; i2 < 246; i2 += 8) + for (byte i3 = 1; i3 < 246; i3 += 8) + for (byte i4 = 1; i4 < 246; i4 += 8) + { + address = new IPv4Address(i1, i2, i3, i4); + var res = dict.TryAdd(address, address.ToString()); + Assert.That(res, Is.True); + } + } + [Test] + public void TestMACAddress() + { + + var address = MACAddress.Empty; + Assert.That(address.ToString(), Is.EqualTo("00:00:00:00:00:00")); + var bytes = new byte[6] { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66 }; + address = new MACAddress(bytes); + Assert.That((byte[])address, Is.EqualTo(bytes)); + Assert.That((MACAddress)bytes, Is.EqualTo(address)); + Assert.Throws(typeof(ArgumentOutOfRangeException), () => new MACAddress(new byte[] { 1, 2, 3, 4, 5, 6, 7 })); + Assert.That(address, Is.EqualTo(new MACAddress(new List(bytes)))); + Assert.Throws(typeof(ArgumentOutOfRangeException), () => new MACAddress(new List() { 1, 2, 3, 4, 5 })); + Assert.That(address, Is.EqualTo(new MACAddress("11:22:33:44:55:66"))); + Assert.That(address, Is.EqualTo(new MACAddress("11-22-33-44-55-66"))); + Assert.That(address, Is.EqualTo(new MACAddress("1122.3344.5566"))); + Assert.That(address, Is.EqualTo(new MACAddress("112233445566"))); + Assert.Throws(typeof(FormatException), () => new MACAddress("0123456789AG")); + + Assert.That(new MACAddress(0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff) == new MACAddress("AA:BB:CC:DD:EE:FF"), Is.True); + Assert.That(new MACAddress(0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff) != new MACAddress("AA:BB:CC:DD:EE:FF"), Is.False); + Assert.That(((object)new MACAddress(0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff)).Equals(new MACAddress("aa:bb:cc:dD:Ee:fF")), Is.True); + Assert.That(((object)new MACAddress(0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff)).Equals("3"), Is.False); + + address = new MACAddress(8, 8, 8, 8, 8, 8); + Assert.That(address, Is.Not.EqualTo(new MACAddress(2, 3, 4, 5, 6, 7))); + Assert.That(address, Is.Not.EqualTo(new MACAddress(8, 3, 4, 5, 6, 7))); + Assert.That(address, Is.Not.EqualTo(new MACAddress(8, 8, 4, 5, 6, 7))); + Assert.That(address, Is.Not.EqualTo(new MACAddress(8, 8, 8, 5, 6, 7))); + Assert.That(address, Is.Not.EqualTo(new MACAddress(8, 8, 8, 8, 6, 7))); + Assert.That(address, Is.Not.EqualTo(new MACAddress(8, 8, 8, 8, 8, 7))); + Assert.That(address, Is.EqualTo(new MACAddress(8, 8, 8, 8, 8, 8))); + + ConcurrentDictionary dict = new ConcurrentDictionary(); + for (byte i1 = 1; i1 < 200; i1 += 24) + for (byte i2 = 1; i2 < 200; i2 += 24) + for (byte i3 = 1; i3 < 200; i3 += 24) + for (byte i4 = 1; i4 < 200; i4 += 24) + for (byte i5 = 1; i5 < 200; i5 += 24) + for (byte i6 = 1; i6 < 200; i6 += 24) + { + address = new MACAddress(i1, i2, i3, i4, i5, i6); + var res = dict.TryAdd(address, address.ToString()); + Assert.That(res, Is.True); + } + } + } +} \ No newline at end of file