Example #1
0
        public void WhenInvoked_ItShouldReturnTheExpectedScore(string phrase, int expectedScore,
                                                               decimal weighting = 1.0m)
        {
            var rule = new VacancyBannedPhraseChecksRule(_bannedPhrasesProvider, ConsolidationOption.ConsolidateByField, weighting);

            var entity = TestVacancyBuilder.Create().SetDetails(phrase, string.Empty);

            var outcome = rule.EvaluateAsync(entity).Result;

            outcome.Score.Should().Be(expectedScore);
        }
Example #2
0
        public void ShouldReturnAnOverallConsolidatedNarrative()
        {
            var rule = new VacancyBannedPhraseChecksRule(_bannedPhrasesProvider, ConsolidationOption.ConsolidateByField);

            var skills = new[] { "Juggling", "Running", "driving license" };

            var entity = TestVacancyBuilder.Create()
                         .SetDetails("driving - license required", "must be over 18 years of age and hold a clean driving license, yes a driving license!")
                         .SetSkills(skills);

            var outcome = rule.EvaluateAsync(entity).Result;

            outcome.Narrative.Should().Contain("1 banned phrases 'driving license' found in 'Title'");
            outcome.Narrative.Should().Contain("3 banned phrases 'driving license,over 18' found in 'Description'");
            outcome.Narrative.Should().Contain("1 banned phrases 'driving license' found in 'Skills'");
        }
Example #3
0
        public void ShouldIgnoreNonAlphaNumericCharacters()
        {
            var sut = new VacancyBannedPhraseChecksRule(_bannedPhrasesProvider);

            var vacancy = new Fixture()
                          .Build <Vacancy>()
                          .With(v => v.Title,
                                @"Dolore school leavers �school"" leaver 5pm, shifts, may work evenings and weekends school")
                          .Create();

            var result = sut.EvaluateAsync(vacancy).Result;

            result.Details.First(d => d.Target == "Title");

            result.Score.Should().Be(100);
        }
Example #4
0
        public void WhenInvoked_ItShouldIncludeDetailsOfEachFieldOutcome()
        {
            var rule = new VacancyBannedPhraseChecksRule(_bannedPhrasesProvider);

            var skills = new[] { "Juggling", "Running", "driving license" };

            var entity = TestVacancyBuilder.Create()
                         .SetDetails("an apprenticeship", "must be over 18 years of age and hold a clean driving license")
                         .SetSkills(skills);

            var outcome = rule.EvaluateAsync(entity).Result;

            outcome.HasDetails.Should().BeTrue();

            Assert.All(outcome.Details, a =>
            {
                a.Target.Should().NotBeEmpty();
                a.Narrative.Should().NotBeEmpty();
            });
        }