Example #1
0
        public void GivenScenarioListIsValidThenExceptionShouldNotBeThrown()
        {
            // Act
            Action action = () => RunsValidations.ValidateScenarios(_dummyScenarioList);

            // Assert
            action.Should().NotThrow();
        }
Example #2
0
        public void GivenValidListOfCampaignPassPriorityAndPassReferenceThenErrorMessageShouldBeEmpty()
        {
            // Act
            var result = RunsValidations.ValidateCampaignPassPriorities(_dummyCampaignPassPriorityList, _dummyPassReferenceList);

            // Assert
            _ = result.Should().BeEmpty();
        }
Example #3
0
        public void GivenScenarioIsValidThenErrorMessageShouldBeEmpty()
        {
            // Act
            var result = RunsValidations.ValidateScenario(_dummyScenario);

            // Assert
            _ = result.Should().BeEmpty();
        }
Example #4
0
        public void GivenASpecificDatepartValueWhenStartAndEndTimesArePassedInThenReturnMessageShouldReflectValidityOfPassedInTime
            (Dayparts daypart, TimeSpan runStartTime, TimeSpan runEndTime, TenantSettings tenantSettings, string passName, string expectedResult)
        {
            // Act
            var result = RunsValidations.ValidatePassSalesAreaPrioritiesDaypart(daypart, runStartTime, runEndTime, tenantSettings, passName);

            // Assert
            _ = result.Should().Be(expectedResult);
        }
Example #5
0
        public void GivenScenarioIsValidAndHasNoCampaignPassPrioritiesThenErrorMessageShouldBeEmpty()
        {
            // Arrange
            _dummyScenario.CampaignPassPriorities = null;

            // Act
            var result = RunsValidations.ValidateScenario(_dummyScenario);

            // Assert
            _ = result.Should().BeEmpty();
        }
Example #6
0
        public void GivenScenarioHasNoPassesThenErrorMessageShouldNotBeEmpty()
        {
            // Arrange
            _dummyScenario.Passes = null;

            // Act
            var result = RunsValidations.ValidateScenario(_dummyScenario);

            // Assert
            _ = result.Should().Contain($"Scenario: {_dummyScenario.Name} contains no passes, One or more passes is required.");
        }
Example #7
0
        public void GivenScenarioHasEmptyNameThenErrorMessageShouldNotBeEmpty()
        {
            // Arrange
            _dummyScenario.Name = string.Empty;

            // Act
            var result = RunsValidations.ValidateScenario(_dummyScenario);

            // Assert
            _ = result.Should().Contain("Scenario name is required.");
        }
Example #8
0
        public void GivenPassHasSomeSalesAreaPrioritiesRecordsAndRunSalesAreasListMatchesThemThenReturnMessageShouldBeEmpty()
        {
            // Arrange
            _dummyPassSalesAreaPriorityAllFalse.SalesAreaPriorities = _dummyRunSalesAreasPriority;

            // Act
            var result = RunsValidations.ValidatePassSalesAreaPriorities(_dummyRun, _dummyPass, _dummyTenantSettings, _dummyNotExcludedSalesAreas);

            // Assert
            _ = result.Should().BeEmpty();
        }
Example #9
0
        public void GivenScenarioHasDuplicatePassesThenErrorMessageShouldNotBeEmpty()
        {
            // Arrange
            _dummyPassReferenceList[1].Id = _dummyPassReferenceList[0].Id;
            _dummyScenario.Passes         = _dummyPassReferenceList;

            // Act
            var result = RunsValidations.ValidateScenario(_dummyScenario);

            // Assert
            _ = result.Should().Contain($"Scenario: {_dummyScenario.Name} contains duplicate passes.");
        }
Example #10
0
        public void GivenPassHasSomeSalesAreaPrioritiesRecordsAndRunSalesAreasListIsEmptyThenReturnMessageShouldBeCorrectError()
        {
            // Arrange
            _dummyPassSalesAreaPriorityAllFalse.SalesAreaPriorities = _dummyRunSalesAreasPriority;
            var    errorSalesAreas = string.Join(", ", _dummyRunSalesAreasPriority.Where(o => o.Priority != SalesAreaPriorityType.Exclude).Select(o => o.SalesArea));
            string passName        = RunsValidationsDummyData.PassName;

            // Act
            var result = RunsValidations.ValidatePassSalesAreaPriorities(_dummyRun, _dummyPass, _dummyTenantSettings, new List <string>());

            // Assert
            _ = result.Should().Be($"Pass: {passName}, contains SalesAreaPriorities for SalesArea(s):[{errorSalesAreas}] which are not found in the Run level SalesAreaPriorities{Environment.NewLine}");
        }
Example #11
0
        public void GivenAllValidInputsAndPassDayPartsTrueThenReturnMessageShouldBeEmpty(TimeSpan runStartTime, TimeSpan runEndTime, string expectedResult)
        {
            // Arrange
            _dummyRun.StartTime = runStartTime;
            _dummyRun.EndTime   = runEndTime;
            _dummyPass.PassSalesAreaPriorities = _dummyPassSalesAreaPriorityAllTrue;

            // Act
            var result = RunsValidations.ValidatePassSalesAreaPriorities(_dummyRun, _dummyPass, _dummyTenantSettings, _dummyNotExcludedSalesAreas);

            // Assert
            _ = result.Should().Be(expectedResult);
        }
Example #12
0
        public void GivenValidListOfCampaignPassPriorityWithInvalidItemAndValidListOfPassReferenceThenErrorMessageShouldNotBeEmpty()
        {
            // Arrange
            var presetGuid = Guid.NewGuid();

            _dummyCampaignPassPriorityList[1].Campaign.ExternalId = presetGuid.ToString();
            _dummyCampaignPassPriorityList[1].PassPriorities      = new List <PassPriority>();
            int itemsExpected = RunsValidationsDummyData.NumberOfItemsToCreate;

            // Act
            var result = RunsValidations.ValidateCampaignPassPriorities(_dummyCampaignPassPriorityList, _dummyPassReferenceList);

            // Assert
            _ = result.Should().Contain($"CampaignExternalId: {presetGuid} should contain {itemsExpected.ToString()} PassPriorities.");
        }
Example #13
0
        public void GivenRunAndPassTimesAndPassDayPartsFalseThenReturnMessageShouldReflectValidityOfPass(
            TimeSpan runStartTime, TimeSpan runEndTime,
            TimeSpan passStartTime, TimeSpan passEndTime,
            string expectedResult)
        {
            // Arrange
            _dummyRun.StartTime = runStartTime;
            _dummyRun.EndTime   = runEndTime;
            _dummyPass.PassSalesAreaPriorities.StartTime = passStartTime;
            _dummyPass.PassSalesAreaPriorities.EndTime   = passEndTime;

            // Act
            var result = RunsValidations.ValidatePassSalesAreaPriorities(_dummyRun, _dummyPass, _dummyTenantSettings, _dummyNotExcludedSalesAreas);

            // Assert
            _ = result.Should().Be(expectedResult);
        }
Example #14
0
        public void GivenAllDaypartFlagsAreTurnedOnInThePassWhenStartAndEndTimesAreStandardAirTimeThenReturnMessageShouldBeEmpty()
        {
            // Arrange
            var runStartTime = new TimeSpan(0, 6, 0, 0);
            var runEndTime   = new TimeSpan(1, 5, 59, 59);

            // Act
            var result = RunsValidations.ValidatePassSalesAreaPrioritiesDayparts(
                RunsValidationsDummyData.PassName,
                _dummyPassSalesAreaPriorityAllTrue,
                runStartTime,
                runEndTime,
                _dummyTenantSettings);

            // Assert
            _ = result.Should().BeEmpty();
        }
Example #15
0
        public void GivenValidListOfCampaignPassPriorityAndInvalidListOfPassReferenceThenErrorMessageShouldNotBeEmpty()
        {
            // Arrange
            _dummyPassReferenceList.RemoveAt(1);
            var expectedErrorMessage = new StringBuilder();

            foreach (var cpp in _dummyCampaignPassPriorityList)
            {
                _ = expectedErrorMessage.AppendLine($"CampaignExternalId: {cpp.Campaign.ExternalId} should contain {_dummyPassReferenceList.Count} PassPriorities.");
            }

            // Act
            var result = RunsValidations.ValidateCampaignPassPriorities(_dummyCampaignPassPriorityList, _dummyPassReferenceList);

            // Assert
            _ = result.Should().Be(expectedErrorMessage.ToString());
        }
Example #16
0
        public void GivenScenarioListHasInvalidItemsThenExceptionShouldBeThrownWithCorrectMessage()
        {
            // Arrange
            _dummyScenarioList[0].Name = string.Empty;
            _dummyScenario.Passes      = null;
            _dummyScenarioList.Add(_dummyScenario);

            var expectedErrorMessage = new StringBuilder();

            _ = expectedErrorMessage.Append("Scenario name is required.");
            _ = expectedErrorMessage.AppendLine($"Scenario: {_dummyScenario.Name} contains no passes, One or more passes is required.");

            // Act
            Action act = () => RunsValidations.ValidateScenarios(_dummyScenarioList);

            // Assert
            _ = act.Should().Throw <Exception>().WithMessage(expectedErrorMessage.ToString());
        }
Example #17
0
        public void GivenAllDaypartFlagsAreTurnedOffInThePassWhenStartAndEndTimesAreConstrictedThenReturnMessageShouldBeEmpty()
        {
            // Arrange
            _dummyPass.PassSalesAreaPriorities = _dummyPassSalesAreaPriorityAllFalse;
            var runStartTime = new TimeSpan(2, 0, 0);
            var runEndTime   = new TimeSpan(3, 0, 0);

            // Act
            var result = RunsValidations.ValidatePassSalesAreaPrioritiesDayparts(
                RunsValidationsDummyData.PassName,
                _dummyPassSalesAreaPriorityAllFalse,
                runStartTime,
                runEndTime,
                _dummyTenantSettings);

            // Assert
            _ = result.Should().BeEmpty();
        }
Example #18
0
        public void GivenAllDaypartFlagsAreTurnedOnInThePassWhenStartAndEndTimesAreConstrictedThenReturnMessageShouldBeACorrectError()
        {
            // Arrange
            var    runStartTime   = new TimeSpan(3, 0, 0);
            var    runEndTime     = new TimeSpan(4, 0, 0);
            string passName       = RunsValidationsDummyData.PassName;
            var    messageBuilder = new StringBuilder();

            _ = messageBuilder.AppendLine($"Pass: {passName}, SalesAreaPriorities {Dayparts.OffPeak.ToString()} daypart is not within run StartTime/EndTime");
            _ = messageBuilder.AppendLine($"Pass: {passName}, SalesAreaPriorities {Dayparts.Peak.ToString()} daypart is not within run StartTime/EndTime");
            _ = messageBuilder.AppendLine($"Pass: {passName}, SalesAreaPriorities {Dayparts.MidnightToDawn.ToString()} daypart is not within run StartTime/EndTime");

            // Act
            var result = RunsValidations.ValidatePassSalesAreaPrioritiesDayparts(
                passName,
                _dummyPassSalesAreaPriorityAllTrue,
                runStartTime,
                runEndTime,
                _dummyTenantSettings);

            // Assert
            _ = result.Should().Be(messageBuilder.ToString());
        }