コード例 #1
0
        public void CanOnlyRemindBillablePeople()
        {
            var clock = new ClockStub(
                new DateTimeOffset(
                    new DateTime(2019, 03, 01, 10, 30, 0)
                    )
                );

            Environment.SetEnvironmentVariable("NON_BILLABLE_PEOPLE", "[email protected],[email protected]");

            var getBillablePeople = new GetBillablePeople(_slackGateway, clock);

            var remindBillablePeople = new RemindBillablePeople(getBillablePeople, _sendReminder);

            remindBillablePeople.Execute(
                new RemindBillablePeopleRequest
            {
                Message = "Please make sure your timesheet is submitted by 13:30 today."
            }
                );

            _slackApi.ReceivedRequests.Count.Should().Be(3);

            _slackApi.ReceivedRequests.Should()
            .Contain(request => request.Url.ToString() == SlackApiAddress + SlackApiPostMessagePath);

            Environment.SetEnvironmentVariable("NON_BILLABLE_PEOPLE", null);
        }
コード例 #2
0
            public void SetUp()
            {
                _slackGatewaySpy = new SlackGatewaySpy();
                _clock           = new ClockStub(
                    new DateTimeOffset(
                        new DateTime(2019, 03, 01, 10, 30, 0)
                        )
                    );

                _getBillablePeople = new GetBillablePeople(_slackGatewaySpy, _clock);

                _slackGatewayStub = new SlackGatewayStub
                {
                    BillablePeople = new[]
                    {
                        new SlackBillablePerson
                        {
                            Email = "*****@*****.**",
                            Id    = "U8723"
                        },
                        new SlackBillablePerson
                        {
                            Email = "*****@*****.**",
                            Id    = "U9999"
                        },
                        new SlackBillablePerson
                        {
                            Email = "*****@*****.**",
                            Id    = "U9998"
                        }
                    }
                };

                _getBillablePeopleWithExclusions = new GetBillablePeople(_slackGatewayStub, _clock);
            }
コード例 #3
0
ファイル: Program.cs プロジェクト: madetech/the-wolves
        public ReminderRegistry()
        {
            var slackGateway = new SlackGateway(
                "https://slack.com/",
                Environment.GetEnvironmentVariable("SLACK_TOKEN")
                );

            var clock = new Clock();

            _getBillablePeople = new GetBillablePeople(slackGateway, clock);
            _sendReminder      = new SendReminder(slackGateway);

            CreateSchedule();
        }
コード例 #4
0
        public void CanRemindBillablePeopleEndOfTheMonth()
        {
            var clock = new ClockStub(
                new DateTimeOffset(
                    new DateTime(2019, 07, 31, 10, 30, 0)
                    )
                );

            var getBillablePeople = new GetBillablePeople(_slackGateway, clock);

            var remindBillablePeople = new RemindBillablePeople(getBillablePeople, _sendReminder);

            remindBillablePeople.Execute(
                new RemindBillablePeopleRequest
            {
                Message = "Please make sure your timesheet is submitted by 13:30 today."
            }
                );

            _slackApi.ReceivedRequests.Should()
            .Contain(request => request.RawUrl.ToString() == "/" + SlackApiUsersPath);
            _slackApi.ReceivedRequests.Count(request => request.RawUrl.ToString() == "/" + SlackApiPostMessagePath)
            .Should().Be(4);
        }
コード例 #5
0
        public void CanRemindBillablePeopleOnAFriday()
        {
            var clock = new ClockStub(
                new DateTimeOffset(
                    new DateTime(2019, 03, 01, 10, 30, 0)
                    )
                );

            var getBillablePeople = new GetBillablePeople(_slackGateway, clock);

            var remindBillablePeople = new RemindBillablePeople(getBillablePeople, _sendReminder);

            remindBillablePeople.Execute(
                new RemindBillablePeopleRequest
            {
                Message = "Please make sure your timesheet is submitted by 13:30 today."
            }
                );

            _slackApi.ReceivedRequests.Count.Should().Be(5);

            _slackApi.ReceivedRequests.Should()
            .Contain(request => request.Url.ToString() == SlackApiAddress + SlackApiPostMessagePath);
        }