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); }
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'"); }
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); }
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(); }); }