public void OnCreation_SetsStartDate_ToTheDateOfTheFirstMatch()
        {
            // Arrange
            DateTime expected = _defaultProfile.MatchHistory.First().Date.Date;

            // Act
            RankPlotSettingViewModel vm = new RankPlotSettingViewModel(_defaultProfile);

            // Assert
            Assert.AreEqual(expected, vm.StartDate);
        }
        public void OnCreation_SetsEndDateTime_TheTheDateOfTheLastMatch()
        {
            // Arrange
            DateTime expected = _defaultProfile.MatchHistory.Last().Date.Date + new TimeSpan(23, 59, 59);

            // Act
            RankPlotSettingViewModel vm = new RankPlotSettingViewModel(_defaultProfile);

            // Assert
            Assert.AreEqual(expected, vm.EndDate);
        }
        public void SettingMaxDate_AlwaysMovesToEndOfTheGivenDate()
        {
            // Arrange
            RankPlotSettingViewModel vm = new RankPlotSettingViewModel(_defaultProfile);
            DateTime dt = new DateTime(2017, 02, 03, 03, 00, 00);

            // Act
            vm.MaxDate = dt;

            // Assert
            Assert.AreEqual(new DateTime(2017, 02, 03, 23, 59, 59), vm.MaxDate);
        }
        public void SettingMidDate_AlwaysMovesToMidnightOfThatDate()
        {
            // Arrange
            RankPlotSettingViewModel vm = new RankPlotSettingViewModel(_defaultProfile);
            DateTime dt = new DateTime(2017, 02, 03, 03, 00, 00);

            // Act
            vm.MinDate = dt;

            // Assert
            Assert.AreEqual(new DateTime(2017, 02, 03, 00, 00, 00), vm.MinDate);
        }
        public void OnCreation_IfMatchHistoryIsEmpty_SetsMaxAndEndToEndOfToday()
        {
            // Arrange
            DateTime expected     = DateTime.Today + new TimeSpan(23, 59, 59);
            IProfile emptyProfile = new Fixtures.EmptyProfile();

            // Act
            RankPlotSettingViewModel vm = new RankPlotSettingViewModel(emptyProfile);

            // Assert
            Assert.AreEqual(expected, vm.EndDate);
            Assert.AreEqual(expected, vm.MaxDate);
        }
        public void OnCreation_IfMatchHistoryIsEmpty_SetsMinAndStartToMidnightOfToday()
        {
            // Arrange
            DateTime expected     = DateTime.Today + new TimeSpan(0, 0, 0);
            IProfile emptyProfile = new Fixtures.EmptyProfile();

            // Act
            RankPlotSettingViewModel vm = new RankPlotSettingViewModel(emptyProfile);

            // Assert
            Assert.AreEqual(expected, vm.StartDate);
            Assert.AreEqual(expected, vm.MinDate);
        }
        public void OnCreation_SetsMinDate_ToMidnightOfFirstMatchInMatchHistory()
        {
            // Arrange
            DateTime expected =
                (_defaultProfile.MatchHistory.First().Date.Date)
                + new TimeSpan(0, 0, 0);

            // Act
            RankPlotSettingViewModel vm = new RankPlotSettingViewModel(_defaultProfile);

            // Assert
            Assert.AreEqual(expected, vm.MinDate);
        }
        public void ExtendDateRangeEnding_SetsTheEndDateTimeToTheEndOfTheGivenDate()
        {
            // Arrange
            RankPlotSettingViewModel vm = new RankPlotSettingViewModel(_defaultProfile);
            DateTime date      = new DateTime(2020, 01, 01);
            DateTime endOfDate = date.Date + new TimeSpan(23, 59, 59);

            // Act
            vm.ExtendDateRangeEnding(date);

            // Assert
            Assert.AreEqual(endOfDate, vm.EndDate);
        }
        public void OnProfileChange_RecalculatesTheDatesForTheNewProfile()
        {
            // Arrange
            RankPlotSettingViewModel vm = new RankPlotSettingViewModel(_defaultProfile);

            DateTime start = _alternateProfile.MatchHistory.First().Date.Date;
            DateTime min   = start.Date + new TimeSpan(0, 0, 0);
            DateTime end   = _alternateProfile.MatchHistory.Last().Date.Date + new TimeSpan(23, 59, 59);
            DateTime max   = end.Date + new TimeSpan(23, 59, 59);

            // Act
            vm.ChangeProfile(_alternateProfile);

            // Assert
            Assert.AreEqual(start, vm.StartDate);
            Assert.AreEqual(min, vm.MinDate);
            Assert.AreEqual(end, vm.EndDate);
            Assert.AreEqual(max, vm.MaxDate);
        }