public void Eval_should_be_allowed_when_deadline_conditions_met(int deadlineDay, int tommorowDay, PassedDeadlineOffersMode deadlineMode)
        {
            var settings         = GetSettings(AprMode.DisplayOnly, deadlineMode);
            var deadlineDate     = new DateTime(2021, 1, deadlineDay);
            var tommorowDate     = new DateTime(2021, 1, tommorowDay);
            var deadline         = GetDeadline(deadlineDate);
            var dateTimeProvider = GetProvider(tommorowDate);
            var roomSet          = GetRoomContractSet(deadline, false);

            var allowed = RoomContractSetSettingsChecker.IsEvaluationAllowed(roomSet, deadlineDate.AddDays(1), settings, dateTimeProvider);

            Assert.True(allowed);
        }
        public void Eval_should_be_allowed_when_apr_conditions_met(AprMode aprMode, bool isRoomSetApr)
        {
            var settings         = GetSettings(aprMode, PassedDeadlineOffersMode.DisplayOnly);
            var deadlineDate     = new DateTime(2021, 1, 21);
            var tommorowDate     = new DateTime(2021, 1, 20);
            var deadline         = GetDeadline(deadlineDate);
            var dateTimeProvider = GetProvider(tommorowDate);
            var roomSet          = GetRoomContractSet(deadline, isRoomSetApr);

            var allowed = RoomContractSetSettingsChecker.IsEvaluationAllowed(roomSet, deadlineDate.AddDays(1), settings, dateTimeProvider);

            Assert.True(allowed);
        }
        [InlineData(21, 20, PassedDeadlineOffersMode.Hide, AprMode.Hide, true)]                    // Apr not ok, deadline ok
        public void Eval_should_not_be_allowed_when_any_condition_not_met(int deadlineDay, int tommorowDay, PassedDeadlineOffersMode deadlineMode,
                                                                          AprMode aprMode, bool isRoomSetApr)
        {
            var settings         = GetSettings(aprMode, deadlineMode);
            var deadlineDate     = new DateTime(2021, 1, deadlineDay);
            var tommorowDate     = new DateTime(2021, 1, tommorowDay);
            var deadline         = GetDeadline(deadlineDate);
            var dateTimeProvider = GetProvider(tommorowDate);
            var roomSet          = GetRoomContractSet(deadline, isRoomSetApr);

            var allowed = RoomContractSetSettingsChecker.IsEvaluationAllowed(roomSet, deadlineDate.AddDays(1), settings, dateTimeProvider);

            Assert.False(allowed);
        }
        [InlineData(19, 20, PassedDeadlineOffersMode.DisplayOnly, AprMode.DisplayOnly, true)]             // Both apr and deadline display only
        public void Display_should_be_allowed_but_eval_not_when_display_only_mode(int deadlineDay, int tommorowDay, PassedDeadlineOffersMode deadlineMode,
                                                                                  AprMode aprMode, bool isRoomSetApr)
        {
            var settings         = GetSettings(aprMode, deadlineMode);
            var deadlineDate     = new DateTime(2021, 1, deadlineDay);
            var tommorowDate     = new DateTime(2021, 1, tommorowDay);
            var deadline         = GetDeadline(deadlineDate);
            var dateTimeProvider = GetProvider(tommorowDate);
            var roomSet          = GetRoomContractSet(deadline, isRoomSetApr);

            var displayAllowed    = RoomContractSetSettingsChecker.IsDisplayAllowed(roomSet, deadlineDate.AddDays(1), settings, dateTimeProvider);
            var evaluationAllowed = RoomContractSetSettingsChecker.IsEvaluationAllowed(roomSet, deadlineDate.AddDays(1), settings, dateTimeProvider);

            Assert.True(displayAllowed);
            Assert.False(evaluationAllowed);
        }