示例#1
0
        public async Task Accept()
        {
            AcceptPurchaseOrder acceptPurchase = new AcceptPurchaseOrder
            {
                CustomerId      = CustomerId,
                PurchaseOrderId = Id,
                Items           = ItemLines.Select(il => new ItemLineRequest {
                    Description = il.Description, Type = il.Type
                }).ToList()
            };
            AcceptedPurchaseOrder response = await _Mediator.Send(acceptPurchase);

            Accepted = response.Accepted;
            if (response.Accepted)
            {
                ProcessedPurchaseOrder processedPurchaseOrder = new ProcessedPurchaseOrder
                {
                    CustomerId      = CustomerId,
                    PurchaseOrderId = Id,
                    Items           = ItemLines.Select(il => new ItemLineRequest {
                        Description = il.Description, Type = il.Type
                    }).ToList()
                };
                await _Mediator.Publish(processedPurchaseOrder);
            }
        }
示例#2
0
        public async Task PurchaseOrderIsAccepted()
        {
            AcceptedPurchaseOrder accepted = new AcceptedPurchaseOrder {
                Accepted = true
            };
            bool publishedAccepted = false;

            var mockMediator = new Mock <IMediator>();

            mockMediator.Setup(m => m.Send(It.IsAny <AcceptPurchaseOrder>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(accepted)
            .Verifiable("Sent AcceptPurchaseOrder command.");

            mockMediator.Setup(m => m.Publish(It.IsAny <ProcessedPurchaseOrder>(), It.IsAny <CancellationToken>()))
            .Returns(Task.CompletedTask)
            .Verifiable("Published ProcessedPurchase order notification.");

            PurchaseOrder sut = CreateTestPurchaseOrder(mockMediator.Object);

            await sut.Accept();

            mockMediator.Verify(m => m.Send(It.IsAny <AcceptPurchaseOrder>(), It.IsAny <CancellationToken>()), Times.Once());
            mockMediator.Verify(m => m.Publish(It.IsAny <ProcessedPurchaseOrder>(), It.IsAny <CancellationToken>()), Times.Once);
            sut.Accepted.ShouldBeTrue();
        }