public void ExampleUsageWithAlgorithm(MyDomain.PageEnum page, bool isLoggedOn, bool isAdmin, string inData) { // # Arragen. var sut = new MyDomain(); // # Act. var res = sut.Authorise(page, isLoggedOn, isAdmin); // # Assert. // The assertion is sieved through an algorithm working the same way as production code // preferably without being a copy. if (page == MyDomain.PageEnum.LandingPage) { res.Should().BeTrue(inData); } else if (isLoggedOn && page == MyDomain.PageEnum.AdminPage) { res.Should().Be(isAdmin, inData); } else if (page == MyDomain.PageEnum.ContentPage) { res.Should().Be(isLoggedOn, inData); } else { res.Should().BeFalse(inData); } }
public void ExampleUsageWithData(MyDomain.PageEnum page, bool isLoggedOn, bool isAdmin, string inDataString) { // # Arrange. var sut = new MyDomain(); // # Act. var res = sut.Authorise(page, isLoggedOn, isAdmin); // # Assert. var isMatch = AllValidData() .Any(data => data.IsMatch(page, isLoggedOn, isAdmin)); if (isMatch) { res.Should().BeTrue(inDataString); } else { res.Should().BeFalse(inDataString); } }