示例#1
0
        public async Task CanNotifyAnOrderNotApproved()
        {
            var order   = CreateTestOrder(true);
            var context = CreateMockDurableOrchestrationContext(order, "Rejected");

            var orderResult = await OrchestratorFunctions.ProcessOrder(context.Object, mockLogger);

            context.Verify(c => c.CallActivityAsync("A_SaveOrderToDatabase", order), Times.Once);
            context.Verify(c => c.CallActivityAsync("A_RequestOrderApproval", order), Times.Once);
            context.Verify(c => c.CallActivityAsync("A_SendNotApprovedEmail", order), Times.Once);

            Assert.That(orderResult, Is.EqualTo(new OrderResult {
                Status = "NotApproved"
            }).Using <OrderResult, OrderResult>(CompareOrderResult));
        }
示例#2
0
        public async Task SendsProblemEmailOnFailureToTranscode()
        {
            var order   = CreateTestOrder(false);
            var context = CreateMockDurableOrchestrationContext(order, null, true);

            var orderResult = await OrchestratorFunctions.ProcessOrder(context.Object, mockLogger);

            context.Verify(c => c.CallActivityAsync("A_SaveOrderToDatabase", order), Times.Once);
            context.Verify(c => c.CallActivityAsync("A_RequestOrderApproval", order), Times.Never);
            context.Verify(c => c.CallActivityWithRetryAsync("A_SendProblemEmail", It.IsAny <RetryOptions>(), order), Times.Once);

            Assert.That(orderResult, Is.EqualTo(new OrderResult {
                Status = "Problem"
            }).Using <OrderResult, OrderResult>(CompareOrderResult));
        }
示例#3
0
        public async Task CanSuccessfullyProcessAnOrderWithApproval()
        {
            var order   = CreateTestOrder(true);
            var context = CreateMockDurableOrchestrationContext(order, "Approved");

            var orderResult = await OrchestratorFunctions.ProcessOrder(context.Object, mockLogger);

            context.Verify(c => c.CallActivityAsync("A_SaveOrderToDatabase", order), Times.Once);
            context.Verify(c => c.CallActivityAsync("A_RequestOrderApproval", order), Times.Once);
            context.Verify(c => c.CallActivityAsync <string>("A_CreatePersonalizedPdf", It.IsAny <object>()), Times.Once);

            context.Verify(c => c.CallActivityWithRetryAsync("A_SendOrderConfirmationEmail",
                                                             It.IsAny <RetryOptions>(),
                                                             It.IsAny <object>()), Times.Once);

            Assert.That(orderResult, Is.EqualTo(new OrderResult {
                Status = "Success", Downloads = new[] { "example.pdf" }
            }).Using <OrderResult, OrderResult>(CompareOrderResult));
        }