Skip to content

Commit

Permalink
Fix Tests
Browse files Browse the repository at this point in the history
  • Loading branch information
patrick-dmxc committed Apr 4, 2024
1 parent c3e42d7 commit fe44d36
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 27 deletions.
23 changes: 5 additions & 18 deletions RDMSharp/RDM/Slot.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,37 +91,24 @@ public Slot(
{
}

#if DEBUG
public
#else
internal
#endif
void UpdateSlotInfo(RDMSlotInfo slotInfo)
internal void UpdateSlotInfo(RDMSlotInfo slotInfo)
{
if (this.SlotId != slotInfo.SlotOffset)
throw new InvalidOperationException($"The given {nameof(slotInfo)} has not the expected id of {this.SlotId} but {slotInfo.SlotOffset}");

this.Type = slotInfo.SlotType;
this.Category = slotInfo.SlotLabelId;
}
#if DEBUG
public
#else
internal
#endif
void UpdateSlotDescription(RDMSlotDescription slotDescription)

internal void UpdateSlotDescription(RDMSlotDescription slotDescription)
{
if (this.SlotId != slotDescription.SlotId)
throw new InvalidOperationException($"The given {nameof(slotDescription)} has not the expected id of {this.SlotId} but {slotDescription.SlotId}");

this.Description = slotDescription.Description;
}
#if DEBUG
public
#else
internal
#endif
void UpdateSlotDefaultValue(RDMDefaultSlotValue defaultSlotValue)

internal void UpdateSlotDefaultValue(RDMDefaultSlotValue defaultSlotValue)
{
if (this.SlotId != defaultSlotValue.SlotOffset)
throw new InvalidOperationException($"The given {nameof(defaultSlotValue)} has not the expected id of {this.SlotId} but {defaultSlotValue.SlotOffset}");
Expand Down
52 changes: 43 additions & 9 deletions RDMSharpTests/TestManyObjects.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Collections.Concurrent;
using System.Reflection;

namespace RDMSharpTests
{
Expand Down Expand Up @@ -208,17 +209,50 @@ public void TestSlot()
var slot = new Slot(1);
Assert.That(slot.SlotId, Is.EqualTo(1));

MethodInfo updateSlotDefaultValue = slot.GetType().GetMethod("UpdateSlotDefaultValue", BindingFlags.NonPublic | BindingFlags.Instance)!;
MethodInfo updateSlotInfo = slot.GetType().GetMethod("UpdateSlotInfo", BindingFlags.NonPublic | BindingFlags.Instance)!;
MethodInfo updateSlotDescription = slot.GetType().GetMethod("UpdateSlotDescription", BindingFlags.NonPublic | BindingFlags.Instance)!;
Assert.Multiple(() =>
{
Assert.Throws(typeof(InvalidOperationException), () => { slot.UpdateSlotDefaultValue(new RDMDefaultSlotValue(2)); });
Assert.Throws(typeof(InvalidOperationException), () => { slot.UpdateSlotInfo(new RDMSlotInfo(2)); });
Assert.Throws(typeof(InvalidOperationException), () => { slot.UpdateSlotDescription(new RDMSlotDescription(2)); });
Assert.Throws(typeof(InvalidOperationException), () =>
{
try
{
updateSlotDefaultValue.Invoke(slot, new object[] { new RDMDefaultSlotValue(2) });
}
catch (TargetInvocationException t)
{
throw t.InnerException;

Check warning on line 225 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.

Check warning on line 225 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.

Check warning on line 225 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.

Check warning on line 225 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.

Check warning on line 225 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.

Check warning on line 225 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.
}
});
Assert.Throws(typeof(InvalidOperationException), () =>
{
try
{
updateSlotInfo.Invoke(slot, new object[] { new RDMSlotInfo(2) });
}
catch (TargetInvocationException t)
{
throw t.InnerException;

Check warning on line 236 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.

Check warning on line 236 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.

Check warning on line 236 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.

Check warning on line 236 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.
}
});
Assert.Throws(typeof(InvalidOperationException), () =>
{
try
{
updateSlotDescription.Invoke(slot, new object[] { new RDMSlotDescription(2) });
}
catch (TargetInvocationException t)
{
throw t.InnerException;

Check warning on line 247 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.

Check warning on line 247 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.

Check warning on line 247 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.

Check warning on line 247 in RDMSharpTests/TestManyObjects.cs

View workflow job for this annotation

GitHub Actions / build

Thrown value may be null.
}
});
});
Assert.Multiple(() =>
{
Assert.DoesNotThrow(() => { slot.UpdateSlotDefaultValue(new RDMDefaultSlotValue(1, 200)); });
Assert.DoesNotThrow(() => { slot.UpdateSlotInfo(new RDMSlotInfo(1, ERDM_SlotType.SEC_TIMING, ERDM_SlotCategory.CIE_X)); });
Assert.DoesNotThrow(() => { slot.UpdateSlotDescription(new RDMSlotDescription(1, "rrrr")); });
Assert.DoesNotThrow(() => { updateSlotDefaultValue.Invoke(slot, new object[] { new RDMDefaultSlotValue(1, 200) }); });
Assert.DoesNotThrow(() => { updateSlotInfo.Invoke(slot, new object[] { new RDMSlotInfo(1, ERDM_SlotType.SEC_TIMING, ERDM_SlotCategory.CIE_X) }); });
Assert.DoesNotThrow(() => { updateSlotDescription.Invoke(slot, new object[] { new RDMSlotDescription(1, "rrrr") }); });
Assert.That(slot.DefaultValue, Is.EqualTo(200));
Assert.That(slot.Type, Is.EqualTo(ERDM_SlotType.SEC_TIMING));
Assert.That(slot.Category, Is.EqualTo(ERDM_SlotCategory.CIE_X));
Expand All @@ -230,9 +264,9 @@ public void TestSlot()
{
Assert.Multiple(() =>
{
Assert.DoesNotThrow(() => { slot.UpdateSlotDefaultValue(new RDMDefaultSlotValue(1, 100)); });
Assert.DoesNotThrow(() => { slot.UpdateSlotInfo(new RDMSlotInfo(1, ERDM_SlotType.PRIMARY, ERDM_SlotCategory.COLOR_SCROLL)); });
Assert.DoesNotThrow(() => { slot.UpdateSlotDescription(new RDMSlotDescription(1, "aaa")); });
Assert.DoesNotThrow(() => { updateSlotDefaultValue.Invoke(slot, new object[] { new RDMDefaultSlotValue(1, 100) }); });
Assert.DoesNotThrow(() => { updateSlotInfo.Invoke(slot, new object[] { new RDMSlotInfo(1, ERDM_SlotType.PRIMARY, ERDM_SlotCategory.COLOR_SCROLL) }); });
Assert.DoesNotThrow(() => { updateSlotDescription.Invoke(slot, new object[] { new RDMSlotDescription(1, "aaa") }); });
Assert.That(fired, Is.EqualTo(4));
Assert.That(slot.DefaultValue, Is.EqualTo(100));
Assert.That(slot.Type, Is.EqualTo(ERDM_SlotType.PRIMARY));
Expand Down

0 comments on commit fe44d36

Please sign in to comment.