public void PickWinnerWhenACompetitionIsClosedThrowsException() { // Arrange Competition competition = Stubs.StubCompetition(includeCorrectAnswers: true); var competitionState = new ClosedState(); // Act & Assert Assert.Throws <CompetitionClosedException>(() => competitionState.PickWinner(competition)); }
public void CompetitionIsValid() { // Arrange Competition competition = Stubs.StubCompetition(); // Act bool isValid = competition.IsValid; // Assert Assert.IsTrue(isValid); }
public void TheNumberOfIncorrectAnswersIs9() { // Arrange Competition competition = Stubs.StubCompetition(); // Act int incorrectAnswerCount = competition.IncorrectEntrants.Count(); // Assert Assert.AreEqual(9, incorrectAnswerCount); }
/// <summary> /// Asserts the answer count. /// </summary> /// <param name="answer">The answer.</param> /// <param name="expectedCount">The expected count.</param> private static void AssertAnswerCount(CompetitionAnswer answer, int expectedCount) { // Arrange Competition competition = Stubs.StubCompetition(); // Act int count = competition.GetNumberOfEntrants(answer); // Assert Assert.AreEqual(expectedCount, count); }
/// <summary> /// Asserts the answer percentage. /// </summary> /// <param name="answer">The answer.</param> /// <param name="expectedPercentage">The expected percentage.</param> private static void AssertAnswerPercentage(CompetitionAnswer answer, decimal expectedPercentage) { // Arrange Competition competition = Stubs.StubCompetition(); // Act decimal percentage = competition.GetPercentageOfEntrants(answer); // Assert Assert.AreEqual(expectedPercentage, decimal.Round(percentage, 2)); }
public void PickWinnerWithNoCorrectAnswers() { // Arrange Competition competition = Stubs.StubCompetition(includeCorrectAnswers: false); var competitionState = new OpenState(); WinnerSelectedEvent winnerSelectedEvent = null; DomainEvents.Register <WinnerSelectedEvent>(evt => winnerSelectedEvent = evt); // Act competitionState.PickWinner(competition); // Assert Assert.IsNull(winnerSelectedEvent.Competition.Winner); Assert.AreEqual(CompetitionStatus.Closed, competition.State.Status); }
public void PickWinnerWhenTheCloseDateHasNotPassed() { // Arrange Competition competition = Stubs.StubCompetition(includeCorrectAnswers: false); competition.ClosingDate = DateTime.Now.AddMonths(1); // always ensure the data is in the future var competitionState = new OpenState(); WinnerSelectedEvent winnerSelectedEvent = null; DomainEvents.Register <WinnerSelectedEvent>(evt => winnerSelectedEvent = evt); // Act competitionState.PickWinner(competition); // Assert Assert.IsNull(winnerSelectedEvent); Assert.AreEqual(CompetitionStatus.Open, competition.State.Status); }