Exemple #1
0
        public void PickWinnerWhenACompetitionIsClosedThrowsException()
        {
            // Arrange
            Competition competition      = Stubs.StubCompetition(includeCorrectAnswers: true);
            var         competitionState = new ClosedState();

            // Act & Assert
            Assert.Throws <CompetitionClosedException>(() => competitionState.PickWinner(competition));
        }
Exemple #2
0
        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));
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }