Exemplo n.º 1
0
        public static async Task UpdateAsync_InvokesAddOrUpdatePrimaryContact(
            [Frozen] Mock <IContactDetailsService> contactDetailsService,
            [Frozen] Mock <IOrderingPartyService> service,
            [Frozen] CallOffId callOffId,
            Order order,
            OrderingPartyModel model,
            OrderingPartyController controller)
        {
            var originalContact = order.OrderingPartyContact;

            service.Setup(o => o.GetOrder(callOffId)).ReturnsAsync(order);
            service.Setup(o => o.SetOrderingParty(order, It.IsAny <OrderingParty>(), It.IsAny <Contact>())).Callback(() =>
            {
                order.OrderingParty.Name    = model.Name;
                order.OrderingParty.OdsCode = model.OdsCode;
            });
            contactDetailsService.Setup(o => o.AddOrUpdatePrimaryContact(
                                            It.Is <Contact>(c => c == originalContact),
                                            It.Is <PrimaryContactModel>(c => c == model.PrimaryContact)))
            .Returns(order.OrderingPartyContact);

            await controller.UpdateAsync(callOffId, model);

            contactDetailsService.Verify(s => s.AddOrUpdatePrimaryContact(
                                             It.Is <Contact>(c => c == originalContact),
                                             It.Is <PrimaryContactModel>(c => c == model.PrimaryContact)));

            order.OrderingPartyContact.Should().BeEquivalentTo(originalContact);
        }
Exemplo n.º 2
0
 public void Constructor_Null_NullException()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         var _ = new OrderingPartyController(null);
     });
 }
Exemplo n.º 3
0
        public static async Task GetAsync_OrderDoesNotExist_ReturnsNotFound(
            CallOffId callOffId,
            OrderingPartyController controller)
        {
            var response = await controller.GetAsync(callOffId);

            response.Should().NotBeNull();
            response.Result.Should().BeOfType <NotFoundResult>();
        }
Exemplo n.º 4
0
        public static async Task GetAsync_InvokesGetOrder(
            [Frozen] Mock <IOrderingPartyService> service,
            [Frozen] CallOffId callOffId,
            Order order,
            OrderingPartyController controller)
        {
            service.Setup(o => o.GetOrder(callOffId)).ReturnsAsync(order);
            await controller.GetAsync(callOffId);

            service.Verify(o => o.GetOrder(callOffId));
        }
Exemplo n.º 5
0
        public static async Task UpdateAsync_OrderDoesNotExist_ReturnsNotFound(
            [Frozen] Mock <IOrderingPartyService> service,
            CallOffId callOffId,
            OrderingPartyModel model,
            OrderingPartyController controller)
        {
            service.Setup(o => o.GetOrder(callOffId)).ReturnsAsync((Order)null);

            var response = await controller.UpdateAsync(callOffId, model);

            response.Should().BeOfType <NotFoundResult>();
        }
Exemplo n.º 6
0
        public static async Task UpdateAsync_InvokesSetOrderingParty(
            [Frozen] Mock <IOrderingPartyService> service,
            [Frozen] CallOffId callOffId,
            Order order,
            OrderingPartyModel model,
            OrderingPartyController controller)
        {
            service.Setup(o => o.GetOrder(callOffId)).ReturnsAsync(order);
            service.Setup(o => o.SetOrderingParty(order, It.IsAny <OrderingParty>(), It.IsAny <Contact>())).Verifiable();

            await controller.UpdateAsync(callOffId, model);

            service.Verify(o => o.SetOrderingParty(order, It.IsAny <OrderingParty>(), It.IsAny <Contact>()), () => Times.AtMost(1));
        }
Exemplo n.º 7
0
        public static async Task GetAsync_OrderExists_ReturnsTheOrderingParty(
            [Frozen] Mock <IOrderingPartyService> service,
            [Frozen] CallOffId callOffId,
            Order order,
            OrderingPartyController controller)
        {
            order.OrderingParty.Should().NotBeNull();
            order.OrderingPartyContact.Should().NotBeNull();

            service.Setup(o => o.GetOrder(callOffId)).ReturnsAsync(order);

            var expectedValue = new OrderingPartyModel(order.OrderingParty, order.OrderingPartyContact);

            var response = await controller.GetAsync(callOffId);

            response.Value.Should().BeEquivalentTo(expectedValue);
        }
Exemplo n.º 8
0
        public static async Task UpdateAsync_SuccessfulUpdate_ReturnsNoContentResult(
            [Frozen] Mock <IOrderingPartyService> service,
            [Frozen] CallOffId callOffId,
            Order order,
            OrderingPartyModel model,
            OrderingPartyController controller)
        {
            service.Setup(o => o.GetOrder(callOffId)).ReturnsAsync(order);
            service.Setup(o => o.SetOrderingParty(order, It.IsAny <OrderingParty>(), It.IsAny <Contact>())).Callback(() =>
            {
                order.OrderingParty.Name    = model.Name;
                order.OrderingParty.OdsCode = model.OdsCode;
            });

            var result = await controller.UpdateAsync(callOffId, model);

            result.Should().BeOfType <NoContentResult>();
        }
Exemplo n.º 9
0
        public static async Task UpdateAsync_UpdatesOrderingParty(
            [Frozen] Mock <IOrderingPartyService> service,
            [Frozen] CallOffId callOffId,
            Order order,
            OrderingPartyModel model,
            OrderingPartyController controller)
        {
            order.OrderingParty.Should().NotBeEquivalentTo(model);
            service.Setup(o => o.GetOrder(callOffId)).ReturnsAsync(order);
            service.Setup(o => o.SetOrderingParty(order, It.IsAny <OrderingParty>(), It.IsAny <Contact>())).Callback(() =>
            {
                order.OrderingParty.Name    = model.Name;
                order.OrderingParty.OdsCode = model.OdsCode;
            });

            await controller.UpdateAsync(callOffId, model);

            order.OrderingParty.Should().BeEquivalentTo(
                model,
                o => o.Including(p => p.Name).Including(p => p.OdsCode));
        }
Exemplo n.º 10
0
 public static void UpdateAsync_ModelIsNull_ThrowsArgumentNullException(
     CallOffId callOffId,
     OrderingPartyController controller)
 {
     Assert.ThrowsAsync <ArgumentNullException>(async() => await controller.UpdateAsync(callOffId, null));
 }