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)); }
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)); }
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)); }