public void TestThat_VotesPerHour_UsesTheDataObtainedFromTheDataProvider_ToCreateTheChartData()
        {
            var votes = new[] {new DateTimeVoteModel()};
            var dataProvider = new DataProviderBuilder().WithVotesPerHour(votes).Build();
            var chartDataConverter = new ChartDataConverterBuilder().Build();
            var controller = new VotingControllerBuilder()
                                    .WithDataProvider(dataProvider)
                                    .WithChartDataConverter(chartDataConverter)
                                    .Build();

            controller.VotesPerHour();

            chartDataConverter.Received().ToChartData(votes, Arg.Any<Func<DateTimeVoteModel, long>>());
        }
        public void TestThat_VotesPerDay_UsesTheDataObtainedFromTheDataProvider_ToCreateTheChartData()
        {
            var votes = new[] { new DayOfWeekVoteModel() };
            var dataProvider = new DataProviderBuilder().WithVotesPerDay(votes).Build();
            var chartDataConverter = new ChartDataConverterBuilder().Build();
            var controller = new VotingControllerBuilder()
                                    .WithDataProvider(dataProvider)
                                    .WithChartDataConverter(chartDataConverter)
                                    .Build();

            controller.VotesPerDay();

            chartDataConverter.Received().ToChartData(votes);
        }
        public void TestThat_VotesPerHour_PassesTheCorrectChartDataToTheView()
        {
            long[][] chartData = new long[2][];
            var chartDataConverter = new ChartDataConverterBuilder().WithChartDataPerHour(chartData).Build();
            var controller = new VotingControllerBuilder().WithChartDataConverter(chartDataConverter).Build();

            var model = controller.VotesPerHour().GetViewModel<long[][]>();

            CollectionAssert.AreEquivalent(chartData, model);
        }
        public void TestThat_NumberOfUsersWhoHaveCastXVotes_UsesTheDataObtainedFromTheDataProvider_ToCreateTheChartData()
        {
            var voteCounts = new[] {new NumberOfUsersWithVotesModel()};
            var dataProvider = new DataProviderBuilder().WithNumberOfVotesCastCounts(voteCounts).Build();
            var chartDataConverter = new ChartDataConverterBuilder().Build();
            var controller = new VotingControllerBuilder().WithDataProvider(dataProvider)
                                    .WithChartDataConverter(chartDataConverter)
                                    .Build();

            controller.NumberOfUsersWhoHaveCastXVotes();

            chartDataConverter.Received().ToChartData(voteCounts);
        }