public async Task WhenPostingVacancyApprovedFromFirstReviewMessage_ThenItShouldPostAMessageWithTheNewIconAndSuitableMessage()
        {
            var vacancyReference = 1000000001;
            var vacancyReview    = new VacancyReview {
                VacancyReference = vacancyReference, SubmissionCount = 1, VacancySnapshot = new Vacancy {
                    OwnerType = OwnerType.Employer
                }
            };
            var mockSlackClient = new Mock <ISlackClient>();

            mockSlackClient
            .Setup(c => c.PostAsync(
                       It.Is <SlackMessage>(s =>
                                            s.Text.Contains("has been approved") &&
                                            !s.Text.Contains(" (1st review)") &&
                                            s.Text.Contains(" (Employer)") &&
                                            s.Text.Contains(vacancyReference.ToString())),
                       It.Is <SlackVacancyNotificationType>(e => e.Equals(SlackVacancyNotificationType.Approved))))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var client = new SlackNotifyVacancyReviewUpdates(mockSlackClient.Object, Options.Create(new SlackConfiguration()));

            await client.VacancyReviewApproved(vacancyReview);

            mockSlackClient.Verify();
        }
Exemplo n.º 2
0
        public async Task WhenPostingVacancyReadyForReReviewMessage_ThenItShouldPostAMessageWithTheNewIconAndSuitableMessage()
        {
            var vacancyReference = 1000000001;
            var vacancyReview    = new VacancyReview {
                VacancyReference = vacancyReference, SubmissionCount = 2
            };
            var mockSlackClient = new Mock <ISlackClient>();

            mockSlackClient
            .Setup(c => c.Post(
                       It.Is <SlackMessage>(s =>
                                            s.Text.Contains("ready for review") &&
                                            s.Text.Contains(" (2nd submission)") &&
                                            s.Text.Contains(vacancyReference.ToString())
                                            ),
                       It.Is <Emojis>(e => e.Equals(Emojis.New))))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var client = new SlackNotifyVacancyReviewUpdates(mockSlackClient.Object);

            await client.VacancyReviewCreated(vacancyReview);

            mockSlackClient.Verify();
        }
        public async Task WhenPostingVacancyReferredMessage_ThenItShouldPostAMessageWithTheNewIconAndSuitableMessage()
        {
            var vacancyReference = 1000000001;

            var manualQaFieldIndicators = new List <ManualQaFieldIndicator>
            {
                new ManualQaFieldIndicator {
                    FieldIdentifier = "field1", IsChangeRequested = true
                },
                new ManualQaFieldIndicator {
                    FieldIdentifier = "field2", IsChangeRequested = false
                }
            };

            var automatedQaOutcomeIndicators = new List <RuleOutcomeIndicator>
            {
                new RuleOutcomeIndicator {
                    RuleOutcomeId = Guid.NewGuid(), IsReferred = true
                },
                new RuleOutcomeIndicator {
                    RuleOutcomeId = Guid.NewGuid(), IsReferred = false
                }
            };

            var vacancyReview = new VacancyReview
            {
                VacancyReference             = vacancyReference,
                ManualQaFieldIndicators      = manualQaFieldIndicators,
                AutomatedQaOutcomeIndicators = automatedQaOutcomeIndicators,
                VacancySnapshot = new Vacancy {
                    OwnerType = OwnerType.Employer
                }
            };

            var mockSlackClient = new Mock <ISlackClient>();

            mockSlackClient
            .Setup(c => c.PostAsync(
                       It.Is <SlackMessage>(s =>
                                            s.Text.Contains("has been referred") &&
                                            s.Text.Contains(" (2 issues)") &&
                                            s.Text.Contains(" (Employer)") &&
                                            s.Text.Contains(vacancyReference.ToString())),
                       It.Is <SlackVacancyNotificationType>(e => e.Equals(SlackVacancyNotificationType.Referred))))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var client = new SlackNotifyVacancyReviewUpdates(mockSlackClient.Object, Options.Create(new SlackConfiguration()));

            await client.VacancyReviewReferred(vacancyReview);

            mockSlackClient.Verify();
        }
Exemplo n.º 4
0
        public async Task WhenPostingVacancyApprovedFromFirstReviewMessage_ThenItShouldPostAMessageWithTheNewIconAndSuitableMessage()
        {
            var vacancyReference = 1000000001;
            var vacancyReview    = new VacancyReview {
                VacancyReference = vacancyReference, SubmissionCount = 1
            };
            var mockSlackClient = new Mock <ISlackClient>();

            mockSlackClient
            .Setup(c => c.Post(
                       It.Is <SlackMessage>(s =>
                                            s.Text.Contains("has been approved") &&
                                            !s.Text.Contains(" (1st review)") &&
                                            s.Text.Contains(vacancyReference.ToString())),
                       It.Is <Emojis>(e => e.Equals(Emojis.Approved))))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var client = new SlackNotifyVacancyReviewUpdates(mockSlackClient.Object);

            await client.VacancyReviewApproved(vacancyReview);

            mockSlackClient.Verify();
        }