diff options
author | crupest <crupest@outlook.com> | 2021-02-12 22:39:57 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-12 22:39:57 +0800 |
commit | 94eba6cda12010c8657f0e7c5e6977a8d3b46e8c (patch) | |
tree | d6638f60df77ed97fc70f1750f90019c2bb9e9c1 /BackEnd/Timeline.Tests/XUnitHelper.cs | |
parent | a759460ad757922e761a07504bcdea7eeaa07860 (diff) | |
parent | 83910122bfd0aa9bd207b6d5f631774415312716 (diff) | |
download | timeline-94eba6cda12010c8657f0e7c5e6977a8d3b46e8c.tar.gz timeline-94eba6cda12010c8657f0e7c5e6977a8d3b46e8c.tar.bz2 timeline-94eba6cda12010c8657f0e7c5e6977a8d3b46e8c.zip |
Merge pull request #267 from crupest/backend
春节大换血 Spring festival big change.
Diffstat (limited to 'BackEnd/Timeline.Tests/XUnitHelper.cs')
-rw-r--r-- | BackEnd/Timeline.Tests/XUnitHelper.cs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/BackEnd/Timeline.Tests/XUnitHelper.cs b/BackEnd/Timeline.Tests/XUnitHelper.cs new file mode 100644 index 00000000..a2812ad3 --- /dev/null +++ b/BackEnd/Timeline.Tests/XUnitHelper.cs @@ -0,0 +1,44 @@ +using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace Timeline.Tests
+{
+ public static class XUnitHelper
+ {
+ public static IEnumerable<object?[]> ComposeTestData(params IEnumerable<object?[]>[] testDatas)
+ {
+ return ComposeTestData(new ArraySegment<IEnumerable<object?[]>>(testDatas));
+ }
+
+ public static IEnumerable<object?[]> ComposeTestData(ArraySegment<IEnumerable<object?[]>> testDatas)
+ {
+ if (testDatas.Count == 0)
+ throw new ArgumentException("Test data list can't be empty.", nameof(testDatas));
+
+ if (testDatas.Count == 1)
+ {
+ foreach (var d in testDatas[0])
+ yield return d;
+ }
+ else
+ {
+ foreach (var head in testDatas[0])
+ foreach (var rest in ComposeTestData(testDatas.Slice(1)))
+ yield return head.Concat(rest).ToArray();
+ }
+ }
+
+ public static IEnumerable<object?[]> AppendTestData(this IEnumerable<object?[]> origin, params IEnumerable<object?>[] toAppend)
+ {
+ IEnumerable<object?[]> result = origin;
+
+ foreach (var oneToAppend in toAppend)
+ {
+ result = ComposeTestData(result, oneToAppend.Select(testData => new object?[] { testData }));
+ }
+
+ return result;
+ }
+ }
+}
|