示例#1
0
        public void SendSingleSmsNowFailure()
        {
            var sendOneMessageNow = new SendOneMessageNow();

            var smsService = MockRepository.GenerateMock <ISmsService>();
            var smsFailed  = new SmsFailed("sid", "code", "message", "moreinfo", "status");

            smsService.Expect(s => s.Send(sendOneMessageNow)).Return(smsFailed);

            Test.Initialize();
            Test.Saga <SmsActioner.SmsActioner>()
            .WithExternalDependencies(a => a.SmsService = smsService)
            .ExpectReplyToOriginator <MessageFailedSending>()
            .ExpectSendLocal <MessageFailedSending>()
            .When(a => a.Handle(sendOneMessageNow))
            .AssertSagaCompletionIs(true);
        }
示例#2
0
        public void SendSingleSmsNowQueuedThenFail()
        {
            var sendOneMessageNow = new SendOneMessageNow();

            var smsService = MockRepository.GenerateMock <ISmsService>();

            const string sid       = "12";
            var          smsQueued = new SmsQueued(sid);
            var          smsFailed = new SmsFailed(sid, "c", "m", "m", "s");

            smsService.Expect(s => s.Send(sendOneMessageNow)).Return(smsQueued);
            smsService.Expect(s => s.CheckStatus(smsQueued.Sid)).Return(smsFailed);

            Test.Initialize();
            Test.Saga <SmsActioner.SmsActioner>()
            .WithExternalDependencies(a => a.SmsService = smsService)
            .ExpectTimeoutToBeSetIn <SmsPendingTimeout>((timeoutMessage, timespan) => timespan == TimeSpan.FromSeconds(10))
            .When(a => a.Handle(sendOneMessageNow))
            .ExpectNotPublish <MessageSent>()
            .ExpectReplyToOriginator <MessageFailedSending>()
            .ExpectSendLocal <MessageFailedSending>()
            .WhenSagaTimesOut()
            .AssertSagaCompletionIs(true);
        }