Skip to content

Commit

Permalink
Used generic TheoryData<>
Browse files Browse the repository at this point in the history
Pinpointed test error to non-unique label :|
  • Loading branch information
Atreyu committed Jan 25, 2025
1 parent f45d2e6 commit fa26b17
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 22 deletions.
9 changes: 2 additions & 7 deletions InkyCal.Utils.Tests/IPanelTests.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
Expand All @@ -20,12 +18,9 @@ public abstract class IPanelTests<T>(ITestOutputHelper output) where T : IPanelR

protected abstract T GetRenderer();

[SuppressMessage("Design", "CA1000:Do not declare static members on generic types", Justification = "Method for delivery test data")]
public static IEnumerable<object[]> DisplayModels()
public static TheoryData<DisplayModel> DisplayModels()
{
return Enum.GetValues(typeof(DisplayModel))
.Cast<DisplayModel>()
.Select(x => new object[] { x });
return new TheoryData<DisplayModel>(Enum.GetValues<DisplayModel>());
}

[SkippableTheory]
Expand Down
34 changes: 19 additions & 15 deletions InkyCal.Utils.Tests/TestCalendarPanelTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,18 @@ namespace InkyCal.Utils.Tests
[Serializable]
public class EventWrapper : Event, IXunitSerializable
{

public override string ToString()
{
return $"[{CalendarName}] {Start ?? (object)"No start"}-{End ?? (object)"No end"} \"{Summary}\"";
return $"[{CalendarName}] {Date} {Start ?? (object)"No start"}-{End ?? (object)"No end"} \"{Summary}\"";
}

void IXunitSerializable.Deserialize(IXunitSerializationInfo info)
{
CalendarName = info.GetValue<string>(nameof(CalendarName));
Summary = info.GetValue<string>(nameof(Summary));
Start = info.GetValue<TimeSpan?>(nameof(Start));
End = info.GetValue<TimeSpan?>(nameof(End));
Date = info.GetValue<DateTime>(nameof(Date));
}

void IXunitSerializable.Serialize(IXunitSerializationInfo info)
Expand All @@ -31,6 +34,7 @@ void IXunitSerializable.Serialize(IXunitSerializationInfo info)
info.AddValue(nameof(Summary), Summary);
info.AddValue(nameof(Start), Start);
info.AddValue(nameof(End), End);
info.AddValue(nameof(Date), Date);
}
}

Expand All @@ -44,29 +48,29 @@ protected override TestCalendarPanelRenderer GetRenderer()
return new TestCalendarPanelRenderer();
}

public static IEnumerable<object[]> DisplayModelsAndEvents()
public static TheoryData<DisplayModel, EventWrapper> DisplayModelsAndEvents()
{

var result = new List<object[]>();
var result = new TheoryData<DisplayModel, EventWrapper>();

var models = Enum.GetValues<DisplayModel>();

var models = Enum.GetValues(typeof(DisplayModel))
.Cast<DisplayModel>();

var events = new[] {
new EventWrapper() { CalendarName = "Regular calendar name", Summary="Regular Summary" },
new EventWrapper() { CalendarName = "ẞpecial calendar", Summary="Regular Summary" },
new EventWrapper() { CalendarName = "Regular calendar name", Summary="Specielles sümmary" },
new EventWrapper() { CalendarName = "Regular calendar name", Summary="ẞpecielles ẞümmary" },
new EventWrapper() { CalendarName = "Chinese event", Summary="我可以处理(但可能无法显示)汉字" },
new EventWrapper() { CalendarName = "Arabic event", Summary="يمكنني التعامل مع الأحرف الصينية (ولكن ربما لا أعرضها)" }
new EventWrapper() { CalendarName = "Regular calendar name", Date= DateTime.UtcNow, Summary="Regular Summary" },
new EventWrapper() { CalendarName = "ẞpecial calendar", Date= DateTime.UtcNow, Summary="Regular Summary" },
new EventWrapper() { CalendarName = "Regular calendar name", Date= DateTime.UtcNow, Summary="Specielles sümmary" },
new EventWrapper() { CalendarName = "Regular calendar name", Date= DateTime.UtcNow, Summary="ẞpecielles ẞümmary" },
new EventWrapper() { CalendarName = "Chinese event", Date= DateTime.UtcNow, Summary="我可以处理(但可能无法显示)汉字" },
new EventWrapper() { CalendarName = "Arabic event", Date= DateTime.UtcNow, Summary="يمكنني التعامل مع الأحرف الصينية (ولكن ربما لا أعرضها)" }
};


models.ToList().ForEach(m =>
{
events.ToList().ForEach(e =>
{
result.Add([m, e]);
result.Add(m, e);
});
});

Expand All @@ -75,7 +79,7 @@ public static IEnumerable<object[]> DisplayModelsAndEvents()

[Theory]
[MemberData(nameof(DisplayModelsAndEvents))]
public void TestDiaCritics(DisplayModel displayModel, EventWrapper calenderEvent)
public void TestDiaCritics(DisplayModel displayModel, EventWrapper eventWrapper)
{
//arrange
var filename = $"GetImageTest_{typeof(CalendarPanelRenderer).Name}_{displayModel}_Diacritics_{Guid.NewGuid()}.png";
Expand All @@ -102,7 +106,7 @@ public void TestDiaCritics(DisplayModel displayModel, EventWrapper calenderEvent
width: width,
height: height,
colors: colors,
new List<Event> { calenderEvent },
new List<Event> { eventWrapper },
string.Empty,
assertNoError
);
Expand Down

0 comments on commit fa26b17

Please sign in to comment.