Example #1
0
 public void Create_ShouldCreateNewOrder()
 {
     using (var client = new NorthwindServiceClient())
     {
         var id       = client.CreateOrder(new OrderDto());
         var newOrder = client.GetDetailedOrder(id);
         newOrder.ShouldBeEquivalentTo(new { OrderID = id, Status = OrderStatus.New },
                                       opt => opt.ExcludingMissingMembers());
     }
 }
Example #2
0
        public void SetStatus_ShouldChangeStatusInValidScenarios()
        {
            using (var client = new NorthwindServiceClient())
            {
                //Arrange
                var id = client.CreateOrder(new OrderDto());

                //Act
                client.SetStatus(id, OrderStatus.InProgress);

                //Assert
                var orderFromDb = client.GetDetailedOrder(id);
                orderFromDb.Status.Should().Be(OrderStatus.InProgress, "Status should be changed from New to InProgress");

                //Act
                client.SetStatus(id, OrderStatus.Completed);

                //Assert
                var order2FromDb = client.GetDetailedOrder(id);
                order2FromDb.Status.Should().Be(OrderStatus.Completed, "Status should be changed from InProgress to Completed");
            }
        }
Example #3
0
        public void Delete_ShouldDeleteNewOrder()
        {
            using (var client = new NorthwindServiceClient())
            {
                //Arrange
                var id = client.CreateOrder(new OrderDto());

                //Act
                client.DeleteOrder(id);

                //Assert
                Assert.Throws <FaultException>(() => client.GetDetailedOrder(id));
            }
        }
Example #4
0
        public void Update_ShouldNotUpdateOrderDates()
        {
            var date = DateTime.Today;

            using (var client = new NorthwindServiceClient())
            {
                //Arrange
                var id           = client.CreateOrder(new OrderDto());
                var updatedOrder = new OrderDto {
                    OrderID = id, OrderDate = date
                };

                //Act
                client.UpdateOrder(updatedOrder);

                //Assert
                var orderFromDb = client.GetDetailedOrder(id);
                orderFromDb.OrderDate.Should().BeNull();
            }
        }
Example #5
0
        public void Update_ShouldUpdateOrder()
        {
            const string cityToUpdate = "SomeCityName";

            using (var client = new NorthwindServiceClient())
            {
                //Arrange
                var id           = client.CreateOrder(new OrderDto());
                var updatedOrder = new OrderDto {
                    OrderID = id, ShipCity = cityToUpdate
                };

                //Act
                client.UpdateOrder(updatedOrder);

                //Assert
                var orderFromDb = client.GetDetailedOrder(id);
                orderFromDb.ShipCity.Should().Be(cityToUpdate);
            }
        }
Example #6
0
        public void GetDetailedOrder_ShouldReturnExistingDetailedOrder()
        {
            const int id = 11000;

            //An entity from Northwind database
            var expected = new OrderDetailDto
            {
                OrderID         = id,
                CustomerID      = "RATTC",
                EmployeeID      = 2,
                OrderDate       = DateTime.Parse("1998-04-06 00:00:00.000"),
                RequiredDate    = DateTime.Parse("1998-05-04 00:00:00.000"),
                ShippedDate     = DateTime.Parse("1998-04-14 00:00:00.000"),
                ShipVia         = 3,
                Freight         = 55.12m,
                ShipName        = "Rattlesnake Canyon Grocery",
                ShipAddress     = "2817 Milton Dr.",
                ShipCity        = "Albuquerque",
                ShipRegion      = "NM",
                ShipPostalCode  = "87110",
                ShipCountry     = "USA",
                Status          = OrderStatus.Completed,
                ProductsInOrder = new[] {
                    new ProductDto
                    {
                        ProductID       = 4,
                        UnitPrice       = 22,
                        Quantity        = 25,
                        Discount        = 0.25f,
                        Discontinued    = false,
                        ProductName     = "Chef Anton\'s Cajun Seasoning",
                        SupplierID      = 2,
                        CategoryID      = 2,
                        QuantityPerUnit = "48 - 6 oz jars",
                        UnitsInStock    = 53,
                        UnitsOnOrder    = 0,
                        ReorderLevel    = 0
                    },
                    new ProductDto
                    {
                        ProductID       = 24,
                        UnitPrice       = 4.5m,
                        Quantity        = 30,
                        Discount        = 0.25f,
                        Discontinued    = true,
                        ProductName     = "Guarana Fantastica",
                        SupplierID      = 10,
                        CategoryID      = 1,
                        QuantityPerUnit = "12 - 355 ml cans",
                        UnitsInStock    = 20,
                        UnitsOnOrder    = 0,
                        ReorderLevel    = 0
                    },
                    new ProductDto
                    {
                        ProductID       = 77,
                        UnitPrice       = 13,
                        Quantity        = 30,
                        Discount        = 0,
                        Discontinued    = false,
                        ProductName     = "Original Frankfurter grune So?e",
                        SupplierID      = 12,
                        CategoryID      = 2,
                        QuantityPerUnit = "12 boxes",
                        UnitsInStock    = 32,
                        UnitsOnOrder    = 0,
                        ReorderLevel    = 15
                    }
                }
            };

            using (var client = new NorthwindServiceClient())
            {
                var result = client.GetDetailedOrder(id);
                result.ShouldBeEquivalentTo(expected,
                                            options => options.Excluding(ctx => ctx.SelectedMemberPath.EndsWith(nameof(ProductDto.ExtensionData))));
            }
        }