Skip to content

Commit

Permalink
More Coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
patrick-dmxc committed Mar 17, 2024
1 parent d771614 commit 7949980
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 5 deletions.
2 changes: 0 additions & 2 deletions RDMSharp/ParameterWrapper/AbstractRDMParameterWrapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -518,8 +518,6 @@ public abstract class AbstractRDMGetParameterWrapperEmptyRequestResponse : Abstr
{
public override sealed ERDM_CommandClass CommandClass => ERDM_CommandClass.GET;

public Type GetResponseType => throw new NotSupportedException(); //this is the cleanest way.... pgrote 08.12.2021

protected AbstractRDMGetParameterWrapperEmptyRequestResponse(in ERDM_Parameter parameter) : base(parameter)
{
}
Expand Down
9 changes: 7 additions & 2 deletions RDMSharp/RDM/PayloadObject/AbstractRDMPayloadObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace RDMSharp
{
public abstract class AbstractRDMPayloadObject : IRDMPayloadObject
public abstract class AbstractRDMPayloadObject : IRDMPayloadObject, IEquatable<IRDMPayloadObject>
{
public abstract byte[] ToPayloadData();

Expand All @@ -19,7 +19,12 @@ public override sealed bool Equals(object obj)
public override sealed int GetHashCode()
{
return ToPayloadData().GenerateHashCode();
}
}

public bool Equals(IRDMPayloadObject other)
{
return other.Equals(this);
}
}
public abstract class AbstractRDMPayloadObjectOneOf : AbstractRDMPayloadObject, IRDMPayloadObjectOneOf
{
Expand Down
55 changes: 54 additions & 1 deletion RDMSharpTests/RDM/ParameterWrappersTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using System.Collections.ObjectModel;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Text;
using System.Text.Json.Serialization;

Expand Down Expand Up @@ -298,6 +299,9 @@ private void TestParameterWrapperForwardBackwardSerialization(IEnumerable<IRDMPa
var data = getRequest.GetRequestObjectToParameterData(value);
var res = getRequest.GetRequestParameterDataToObject(data);
Assert.That(res, Is.EqualTo(value));

RDMMessage buildGetRequestMessage = getRequest.BuildGetRequestMessage(value);
Assert.That(buildGetRequestMessage, Is.Not.Null);
}
if (wrapper is IRDMGetParameterWrapperResponse getResponse)
{
Expand All @@ -309,6 +313,9 @@ private void TestParameterWrapperForwardBackwardSerialization(IEnumerable<IRDMPa
var data = getResponse.GetResponseObjectToParameterData(value);
var res = getResponse.GetResponseParameterDataToObject(data);
Assert.That(res, Is.EqualTo(value));

RDMMessage buildGetResponseMessage = getResponse.BuildGetResponseMessage(value);
Assert.That(buildGetResponseMessage, Is.Not.Null);
}
if (wrapper is IRDMSetParameterWrapperRequest setRequest)
{
Expand All @@ -320,6 +327,9 @@ private void TestParameterWrapperForwardBackwardSerialization(IEnumerable<IRDMPa
var data = setRequest.SetRequestObjectToParameterData(value);
var res = setRequest.SetRequestParameterDataToObject(data);
Assert.That(res, Is.EqualTo(value));

RDMMessage buildSetRequestMessage = setRequest.BuildSetRequestMessage(value);
Assert.That(buildSetRequestMessage, Is.Not.Null);
}
if (wrapper is IRDMSetParameterWrapperResponse setResponse)
{
Expand All @@ -331,8 +341,51 @@ private void TestParameterWrapperForwardBackwardSerialization(IEnumerable<IRDMPa
var data = setResponse.SetResponseObjectToParameterData(value);
var res = setResponse.SetResponseParameterDataToObject(data);
Assert.That(res, Is.EqualTo(value));


RDMMessage buildSetResponseMessage = setResponse.BuildSetResponseMessage(value);
Assert.That(buildSetResponseMessage, Is.Not.Null);
}
if (wrapper is IRDMGetParameterWrapperWithEmptyGetRequest iGetParameterWrapperEmptyRequest)
{
tested++;
RDMMessage buildGetRequestMessage = iGetParameterWrapperEmptyRequest.BuildGetRequestMessage();
Assert.That(buildGetRequestMessage, Is.Not.Null);
}
if (wrapper is IRDMGetParameterWrapperWithEmptyGetResponse iGetParameterWrapperEmptyResponse)
{
tested++;
RDMMessage buildGetResponseMessage = iGetParameterWrapperEmptyResponse.BuildGetResponseMessage();
Assert.That(buildGetResponseMessage, Is.Not.Null);
}
if (wrapper is IRDMSetParameterWrapperWithEmptySetRequest iSetParameterWrapperEmptyRequest)
{
tested++;
RDMMessage buildSetRequestMessage = iSetParameterWrapperEmptyRequest.BuildSetRequestMessage();
Assert.That(buildSetRequestMessage, Is.Not.Null);
}
if (wrapper is IRDMSetParameterWrapperWithEmptySetResponse iSetParameterWrapperEmptyResponse)
{
tested++;
RDMMessage buildSetResponseMessage = iSetParameterWrapperEmptyResponse.BuildSetResponseMessage();
Assert.That(buildSetResponseMessage, Is.Not.Null);
}
if (wrapper is AbstractRDMParameterWrapper<Empty, Empty, Empty, Empty> abstractRDMParameterWrapperEmpty4)
{
tested++;
Assert.Throws(typeof(NotSupportedException), () => { abstractRDMParameterWrapperEmpty4.GetRequestObjectToParameterData(null); });
Assert.Throws(typeof(NotSupportedException), () => { abstractRDMParameterWrapperEmpty4.GetRequestParameterDataToObject(null); });

Assert.Throws(typeof(NotSupportedException), () => { abstractRDMParameterWrapperEmpty4.GetResponseObjectToParameterData(null); });
Assert.Throws(typeof(NotSupportedException), () => { abstractRDMParameterWrapperEmpty4.GetResponseParameterDataToObject(null); });

Assert.Throws(typeof(NotSupportedException), () => { abstractRDMParameterWrapperEmpty4.SetRequestObjectToParameterData(null); });
Assert.Throws(typeof(NotSupportedException), () => { abstractRDMParameterWrapperEmpty4.SetRequestParameterDataToObject(null); });

Assert.Throws(typeof(NotSupportedException), () => { abstractRDMParameterWrapperEmpty4.SetResponseObjectToParameterData(null); });
Assert.Throws(typeof(NotSupportedException), () => { abstractRDMParameterWrapperEmpty4.SetResponseParameterDataToObject(null); });
}
if (tested <= 1 && failIfNotSuitable)
if (tested <= 1 && failIfNotSuitable)
Assert.Fail($"{wrapper} is not using Interface");
}
object getValue(Type type)
Expand Down

0 comments on commit 7949980

Please sign in to comment.