feat: figure out TUnit data driven test
This commit is contained in:
@@ -47,56 +47,52 @@ public class UpdateValidatorTests
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public async Task Validate_WhenGivenValidUpdate_ItShouldReturnTrue()
|
[MethodDataSource(nameof(TestCases))]
|
||||||
|
public async Task Validate_WhenUpdate_ItShouldReturnExpectedResult(TestCase testCase)
|
||||||
{
|
{
|
||||||
var updateOne = new Update([75, 47, 61, 53, 29]);
|
var update = new Update(testCase.Pages);
|
||||||
var updateTwo = new Update([97,61,53,29,13]);
|
|
||||||
var updateThree = new Update([75,29,13]);
|
|
||||||
|
|
||||||
var validator = new UpdateValidator(_exampleRules);
|
var validator = new UpdateValidator(_exampleRules);
|
||||||
|
|
||||||
var resultOne = validator.Validate(updateOne);
|
var result = validator.Validate(update);
|
||||||
var resultTwo = validator.Validate(updateTwo);
|
|
||||||
var resultThree = validator.Validate(updateThree);
|
|
||||||
|
|
||||||
await Assert.That(resultOne).IsTrue();
|
await Assert.That(result).IsEquivalentTo(testCase.ExpectedValidateResult);
|
||||||
await Assert.That(resultTwo).IsTrue();
|
|
||||||
await Assert.That(resultThree).IsTrue();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public async Task Validate_WhenGivenInvalidUpdate_ItShouldReturnFalse()
|
[MethodDataSource(nameof(TestCases))]
|
||||||
|
public async Task Sort_WhenGivenUpdate_ItShouldReturnUpdateSorted(TestCase testCase)
|
||||||
{
|
{
|
||||||
var updateOne = new Update([75,97,47,61,53]);
|
var update = new Update(testCase.Pages);
|
||||||
var updateTwo = new Update([61,13,29]);
|
|
||||||
var updateThree = new Update([97,13,75,29,47]);
|
|
||||||
|
|
||||||
var validator = new UpdateValidator(_exampleRules);
|
var validator = new UpdateValidator(_exampleRules);
|
||||||
|
|
||||||
var resultOne = validator.Validate(updateOne);
|
var result = validator.Sort(update);
|
||||||
var resultTwo = validator.Validate(updateTwo);
|
|
||||||
var resultThree = validator.Validate(updateThree);
|
|
||||||
|
|
||||||
await Assert.That(resultOne).IsFalse();
|
|
||||||
await Assert.That(resultTwo).IsFalse();
|
|
||||||
await Assert.That(resultThree).IsFalse();
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
await Assert.That(result).IsEquivalentTo(new Update(testCase.SortedPages));
|
||||||
public async Task Sort_WhenGivenInvalidUpdate_ItShouldReturnNewUpdateSorted()
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<Func<TestCase>> TestCases()
|
||||||
{
|
{
|
||||||
var updateOne = new Update([75,97,47,61,53]);
|
yield return () =>
|
||||||
var updateTwo = new Update([61,13,29]);
|
{
|
||||||
var updateThree = new Update([97,13,75,29,47]);
|
List<int> pages = [ 75, 47, 61, 53, 29 ];
|
||||||
|
return new TestCase(pages, true, pages);
|
||||||
var validator = new UpdateValidator(_exampleRules);
|
};
|
||||||
|
yield return () =>
|
||||||
var resultOne = validator.Sort(updateOne);
|
{
|
||||||
var resultTwo = validator.Sort(updateTwo);
|
List<int> pages = [ 97,61,53,29,13 ];
|
||||||
var resultThree = validator.Sort(updateThree);
|
return new TestCase(pages, true, pages);
|
||||||
|
};
|
||||||
await Assert.That(resultOne).IsEquivalentTo(new Update([97,75,47,61,53]));
|
yield return () =>
|
||||||
await Assert.That(resultTwo).IsEquivalentTo(new Update([61,29,13]));
|
{
|
||||||
await Assert.That(resultThree).IsEquivalentTo(new Update([97,75,47,29,13]));
|
List<int> pages = [ 75,29,13 ];
|
||||||
|
return new TestCase(pages, true, pages);
|
||||||
|
};
|
||||||
|
yield return () => new TestCase([75,97,47,61,53], false, [97,75,47,61,53]);
|
||||||
|
yield return () => new TestCase([61,13,29], false, [61,29,13]);
|
||||||
|
yield return () => new TestCase([97,13,75,29,47], false, [97,75,47,29,13]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public record TestCase(List<int> Pages, bool ExpectedValidateResult, List<int> SortedPages);
|
||||||
}
|
}
|
||||||
@@ -22,8 +22,6 @@ class UpdateValidator
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: This is basically a bubble sort
|
|
||||||
//
|
|
||||||
public Update Sort(Update update)
|
public Update Sort(Update update)
|
||||||
{
|
{
|
||||||
var sortedUpdate = new Update(update.Pages.ToList());
|
var sortedUpdate = new Update(update.Pages.ToList());
|
||||||
|
|||||||
Reference in New Issue
Block a user