コード例 #1
0
        public void Delete_Selected_Parcel()
        {
            var options = Utils.GetOptions(nameof(Delete_Selected_Parcel));

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Parcels.AddRange(Utils.SeedParcels());
                arrangeContext.Customers.AddRange(Utils.SeedCustomers());
                arrangeContext.Statuses.AddRange(Utils.SeedStatuses());
                arrangeContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrangeContext.Categories.AddRange(Utils.SeedCategories());
                arrangeContext.Shipments.AddRange(Utils.SeedShipments());
                arrangeContext.Addresses.AddRange(Utils.SeedAddresses());
                arrangeContext.Cities.AddRange(Utils.SeedCities());
                arrangeContext.SaveChanges();
            }

            using (var actContext = new DeliverItContext(options))
            {
                var sut    = new ParcelService(actContext);
                var result = sut.Delete(1);

                Assert.IsTrue(result);
            }
        }
コード例 #2
0
        public void ReturnUpdatedAddress()
        {
            var options       = Utils.GetOptions(nameof(ReturnUpdatedAddress));
            var newAddressDTO = new Mock <NewAddressDTO>().Object;

            newAddressDTO.StreetName  = "Orel";
            newAddressDTO.CityId      = 1;
            newAddressDTO.WarehouseId = 1;
            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.Addresses.AddRange(Utils.SeedAddresses());
                arrContext.Cities.AddRange(Utils.SeedCities());
                arrContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var sut     = new AddressService(actContext);
                var result  = sut.Update(1, newAddressDTO);
                var address = actContext.Addresses.FirstOrDefault(a => a.Id == 1);
                Assert.AreEqual(address.Id, result.Id);
                Assert.AreEqual(address.StreetName, result.Address.StreetName);
                Assert.AreEqual(address.CityID, result.Address.City.Id);
                Assert.AreEqual(address.Warehouse.Id, result.Address.Warehouse.Id);
                Assert.IsInstanceOfType(result, typeof(AddressDTO));
            }
        }
コード例 #3
0
ファイル: GetBy_Should.cs プロジェクト: AngelYankov/DeliverIT
        public void Return_Shipments_Warehouse3()
        {
            var    options = Utils.GetOptions(nameof(Return_Shipments_Warehouse3));
            string filter  = "warehouse";
            string value   = "1";

            var shipments = Utils.SeedShipments();

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Shipments.AddRange(shipments);
                arrangeContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrangeContext.Statuses.AddRange(Utils.SeedStatuses());
                arrangeContext.Addresses.AddRange(Utils.SeedAddresses());
                arrangeContext.SaveChanges();
            }

            using (var actContext = new DeliverItContext(options))
            {
                var sut      = new ShipmentService(actContext);
                var filtered = actContext.Shipments.Where(s => s.WarehouseId == int.Parse(value) && s.IsDeleted == false);
                var result   = sut.GetBy(filter, value);

                Assert.AreEqual(string.Join(",", filtered.Select(p => new ShipmentDTO(p))), string.Join(",", result));
            }
        }
コード例 #4
0
        public void ReturnFilteredEmployeesBy2Criteria()
        {
            var    options = Utils.GetOptions(nameof(ReturnFilteredEmployeesBy2Criteria));
            string filter  = "lastName";
            string value   = "shapkov";
            string order   = "desc";

            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.Employees.AddRange(Utils.SeedEmployees());
                arrContext.Addresses.AddRange(Utils.SeedAddresses());
                arrContext.Cities.AddRange(Utils.SeedCities());
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var mock     = new Mock <IAddressService>();
                var sut      = new EmployeeService(actContext, mock.Object);
                var result   = sut.SearchBy(filter, value, order);
                var filtered = actContext.Employees
                               .Where(c => c.LastName.Equals(value, StringComparison.OrdinalIgnoreCase))
                               .OrderByDescending(c => c.LastName);
                Assert.AreEqual(string.Join(", ", filtered.Select(c => new EmployeeDTO(c))), string.Join(", ", result));
            }
        }
コード例 #5
0
        public void ReturnCreatedCustomer()
        {
            var options       = Utils.GetOptions(nameof(ReturnCreatedCustomer));
            var newAddressDTO = new Mock <NewAddressDTO>().Object;

            newAddressDTO.StreetName = "Ivan Vazov";
            newAddressDTO.CityId     = 1;
            var address = new Mock <Address>().Object;

            address.StreetName = "Ivan Vazov";
            address.CityID     = 1;
            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.AddRange(Utils.SeedCities());
                arrContext.Addresses.Add(address);
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var sut    = new AddressService(actContext);
                var result = sut.Create(newAddressDTO);
                Assert.AreEqual(address.StreetName, result.Address.StreetName);
                Assert.AreEqual(address.City.Id, result.Address.City.Id);
                Assert.IsInstanceOfType(result, typeof(AddressDTO));
                Assert.AreEqual(actContext.Addresses.Count(), 2);
                Assert.IsTrue(address.City.Addresses.Contains(address));
            }
        }
コード例 #6
0
        public void Throws_When_ParcelsNotFound()
        {
            var    options  = Utils.GetOptions(nameof(Throws_When_ParcelsNotFound));
            string username = "******";
            string filter   = "test";

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Parcels.AddRange(Utils.SeedParcels());
                arrangeContext.Customers.AddRange(Utils.SeedCustomers());
                arrangeContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrangeContext.Categories.AddRange(Utils.SeedCategories());
                arrangeContext.Statuses.AddRange(Utils.SeedStatuses());
                arrangeContext.Shipments.AddRange(Utils.SeedShipments());
                arrangeContext.Addresses.AddRange(Utils.SeedAddresses());
                arrangeContext.Cities.AddRange(Utils.SeedCities());
                arrangeContext.SaveChanges();
            }

            using (var actContext = new DeliverItContext(options))
            {
                var sut = new ParcelService(actContext);

                Assert.ThrowsException <ArgumentNullException>(() => sut.GetCustomerParcels(username, filter));
            }
        }
コード例 #7
0
        public void ReturnCreatedWarehouse()
        {
            var options = Utils.GetOptions(nameof(ReturnCreatedWarehouse));

            var newWarehouseDTO = new Mock <NewWarehouseDTO>().Object;

            newWarehouseDTO.AddressId = 1;
            var warehouse = new Mock <Warehouse>().Object;

            warehouse.AddressId = 1;
            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.Addresses.AddRange(Utils.SeedAddresses());
                arrContext.Cities.AddRange(Utils.SeedCities());
                arrContext.Warehouses.Add(warehouse);
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var address     = actContext.Addresses.Include(a => a.City).FirstOrDefault(a => a.Id == 1);
                var mockService = new Mock <IAddressService>();
                mockService.Setup(a => a.Get(It.IsAny <int>())).Returns(new AddressDTO(address));
                var sut    = new WarehouseService(actContext, mockService.Object);
                var result = sut.Create(newWarehouseDTO);
                Assert.AreEqual(warehouse.Address.StreetName + ", " + warehouse.Address.City.Name, result.Address);
                Assert.IsInstanceOfType(result, typeof(WarehouseDTO));
                Assert.IsTrue(actContext.Warehouses.Contains(warehouse));
            }
        }
コード例 #8
0
ファイル: GetBy_Should.cs プロジェクト: AngelYankov/DeliverIT
        public void Return_Parcels_SortedBy_Arrival()
        {
            var options = Utils.GetOptions(nameof(Return_Parcels_SortedBy_Arrival));

            string filter1 = null;
            string value1  = null;
            string filter2 = null;
            string value2  = null;
            string sortBy1 = "arrival";
            string sortBy2 = null;
            string order   = "asc";

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Parcels.AddRange(Utils.SeedParcels());
                arrangeContext.Customers.AddRange(Utils.SeedCustomers());
                arrangeContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrangeContext.Categories.AddRange(Utils.SeedCategories());
                arrangeContext.Statuses.AddRange(Utils.SeedStatuses());
                arrangeContext.Shipments.AddRange(Utils.SeedShipments());
                arrangeContext.Addresses.AddRange(Utils.SeedAddresses());
                arrangeContext.Cities.AddRange(Utils.SeedCities());
                arrangeContext.SaveChanges();
            }

            using (var actContext = new DeliverItContext(options))
            {
                var sut      = new ParcelService(actContext);
                var filtered = actContext.Parcels.Where(p => p.IsDeleted == false).OrderBy(p => p.Shipment.Arrival);
                var result   = sut.GetBy(filter1, value1, filter2, value2, sortBy1, sortBy2, order);

                Assert.AreEqual(string.Join(",", filtered.Select(f => new ParcelDTO(f))), string.Join(",", result));
            }
        }
コード例 #9
0
        public void Return_CertainCustomerParcels_All()
        {
            var    options  = Utils.GetOptions(nameof(Return_CertainCustomerParcels_All));
            string username = "******";
            string filter   = null;

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Parcels.AddRange(Utils.SeedParcels());
                arrangeContext.Customers.AddRange(Utils.SeedCustomers());
                arrangeContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrangeContext.Categories.AddRange(Utils.SeedCategories());
                arrangeContext.Statuses.AddRange(Utils.SeedStatuses());
                arrangeContext.Shipments.AddRange(Utils.SeedShipments());
                arrangeContext.Addresses.AddRange(Utils.SeedAddresses());
                arrangeContext.Cities.AddRange(Utils.SeedCities());
                arrangeContext.SaveChanges();
            }

            using (var actContext = new DeliverItContext(options))
            {
                var sut      = new ParcelService(actContext);
                var filtered = actContext.Parcels.Where(p => (p.Customer.FirstName + "." + p.Customer.LastName) == username);
                var result   = sut.GetCustomerParcels(username, filter);

                Assert.AreEqual(string.Join(",", filtered.Select(f => new ParcelDTO(f))), string.Join(",", result));
            }
        }
コード例 #10
0
        public void Return_All_Parcels()
        {
            var options = Utils.GetOptions(nameof(Return_All_Parcels));
            var parcels = Utils.SeedParcels();

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Customers.AddRange(Utils.SeedCustomers());
                arrangeContext.Addresses.AddRange(Utils.SeedAddresses());
                arrangeContext.Cities.AddRange(Utils.SeedCities());
                arrangeContext.Categories.AddRange(Utils.SeedCategories());
                arrangeContext.Statuses.AddRange(Utils.SeedStatuses());
                arrangeContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrangeContext.Shipments.AddRange(Utils.SeedShipments());
                arrangeContext.Parcels.AddRange(parcels);
                arrangeContext.SaveChanges();
            }

            using (var actContext = new DeliverItContext(options))
            {
                var sut    = new ParcelService(actContext);
                var result = sut.GetAll().ToList();

                Assert.AreEqual(parcels.Count, result.Count);
                Assert.AreEqual(string.Join(",", parcels.Select(p => new ParcelDTO(p))), string.Join(",", result));
            }
        }
コード例 #11
0
ファイル: GetBy_Should.cs プロジェクト: AngelYankov/DeliverIT
        public void Throws_When_Invalid_FilterValue()
        {
            var options = Utils.GetOptions(nameof(Throws_When_Invalid_FilterValue));

            string filter1 = "category";
            string value1  = "test";
            string filter2 = null;
            string value2  = null;
            string sortBy1 = null;
            string sortBy2 = null;
            string order   = null;

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Parcels.AddRange(Utils.SeedParcels());
                arrangeContext.Customers.AddRange(Utils.SeedCustomers());
                arrangeContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrangeContext.Categories.AddRange(Utils.SeedCategories());
                arrangeContext.Statuses.AddRange(Utils.SeedStatuses());
                arrangeContext.Shipments.AddRange(Utils.SeedShipments());
                arrangeContext.Addresses.AddRange(Utils.SeedAddresses());
                arrangeContext.Cities.AddRange(Utils.SeedCities());
                arrangeContext.SaveChanges();
            }

            using (var actContext = new DeliverItContext(options))
            {
                var sut = new ParcelService(actContext);

                Assert.ThrowsException <ArgumentNullException>(() => sut.GetBy(filter1, value1, filter2, value2, sortBy1, sortBy2, order));
            }
        }
コード例 #12
0
        public void ReturnFilteredCustomersDesc()
        {
            var    options = Utils.GetOptions(nameof(ReturnFilteredCustomersDesc));
            string filter  = "lastName";
            string value   = "popov";
            string filter2 = "firstName";
            string value2  = "stefan";
            string order   = "desc";

            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.Customers.AddRange(Utils.SeedCustomers());
                arrContext.Addresses.AddRange(Utils.SeedAddresses());
                arrContext.Cities.AddRange(Utils.SeedCities());
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var mock     = new Mock <IAddressService>();
                var sut      = new CustomerService(actContext, mock.Object);
                var result   = sut.SearchBy(filter, value, filter2, value2, order);
                var filtered = actContext.Customers
                               .Where(c => c.IsDeleted == false && c.LastName.Equals(value, StringComparison.OrdinalIgnoreCase) && c.FirstName.Equals(value2, StringComparison.OrdinalIgnoreCase))
                               .OrderByDescending(c => c.LastName).ThenByDescending(c => c.FirstName);
                Assert.AreEqual(string.Join(", ", filtered.Select(c => new CustomerDTO(c))), string.Join(", ", result));
            }
        }
コード例 #13
0
        public UserControllerTests()
        {
            var config = new MapperConfiguration(
                cfg =>
            {
                cfg.AddProfile <TestMapperProfile>();
            });

            appSettings = Options.Create <AppSettings>(new AppSettings {
                Secret = "Thisisaverylonglongsecret"
            });
            var options = new DbContextOptionsBuilder <DeliverItContext>()
                          .UseInMemoryDatabase(databaseName: "Add_writes_to_database")
                          .Options;

            mapper      = config.CreateMapper();
            dbContext   = new DeliverItContext(options);
            userService = new UserService(dbContext);
            dbContext.Users.Add(new User
            {
                FirstName = "John",
                LastName  = "Doe",
                Email     = "*****@*****.**",
                Password  = "******",
                Address   = "Test Address",
                Phone     = "123456"
            });
            dbContext.SaveChanges();
        }
コード例 #14
0
        public PartnerControllerTests()
        {
            var config = new MapperConfiguration(
                cfg =>
            {
                cfg.AddProfile <TestMapperProfile>();
            });

            mapper = config.CreateMapper();
            var options = new DbContextOptionsBuilder <DeliverItContext>()
                          .UseInMemoryDatabase(databaseName: "Add_writes_to_database")
                          .Options;

            mapper         = config.CreateMapper();
            dbContext      = new DeliverItContext(options);
            partnerService = new PartnerService(dbContext);

            dbContext.Partners.Add(new Partner
            {
                Name     = "Ikea",
                Password = "******"
            });
            dbContext.SaveChanges();
            appSettings = Options.Create <AppSettings>(new AppSettings {
                Secret = "Thisisaverylonglongsecret"
            });
        }
コード例 #15
0
ファイル: Get_Should.cs プロジェクト: AngelYankov/DeliverIT
        public void Return_Correct_Shipment()
        {
            var options   = Utils.GetOptions(nameof(Return_Correct_Shipment));
            var shipments = Utils.SeedShipments();

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Shipments.AddRange(shipments);
                arrangeContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrangeContext.Statuses.AddRange(Utils.SeedStatuses());
                arrangeContext.Addresses.AddRange(Utils.SeedAddresses());
                arrangeContext.SaveChanges();
            }
            var shipmentDTO = new ShipmentDTO(shipments.First());

            using (var actContext = new DeliverItContext(options))
            {
                var sut    = new ShipmentService(actContext);
                var result = sut.Get(1);

                Assert.AreEqual(shipmentDTO.Id, result.Id);
                Assert.AreEqual(shipmentDTO.Status, result.Status);
                Assert.AreEqual(shipmentDTO.Warehouse, result.Warehouse);
                Assert.AreEqual(shipmentDTO.Departure, result.Departure);
                Assert.AreEqual(shipmentDTO.Arrival, result.Arrival);
            }
        }
コード例 #16
0
        public void Return_Updated_Shipment()
        {
            var options = Utils.GetOptions(nameof(Return_Updated_Shipment));

            var updateShipmentDTO = new Mock <UpdateShipmentDTO>().Object;

            updateShipmentDTO.WarehouseId = 1;
            updateShipmentDTO.StatusId    = 1;
            updateShipmentDTO.Departure   = DateTime.UtcNow.AddDays(1);
            updateShipmentDTO.Arrival     = DateTime.UtcNow.AddDays(2);

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Shipments.AddRange(Utils.SeedShipments());
                arrangeContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrangeContext.Statuses.AddRange(Utils.SeedStatuses());
                arrangeContext.Addresses.AddRange(Utils.SeedAddresses());
                arrangeContext.SaveChanges();
            }

            using (var actContext = new DeliverItContext(options))
            {
                var sut    = new ShipmentService(actContext);
                var result = sut.Update(1, updateShipmentDTO);

                Assert.AreEqual(updateShipmentDTO.StatusId, result.StatusId);
                Assert.AreEqual(updateShipmentDTO.WarehouseId, result.WarehouseId);
                Assert.AreEqual(updateShipmentDTO.Departure.ToString("dd.MMMM.yyyy"), result.Departure);
                Assert.AreEqual(updateShipmentDTO.Arrival.ToString("dd.MMMM.yyyy"), result.Arrival);
            }
        }
コード例 #17
0
        public void Return_Created_Shipment()
        {
            var options = Utils.GetOptions(nameof(Return_Created_Shipment));

            var newShipmentDTO = new Mock <NewShipmentDTO>().Object;

            newShipmentDTO.Id          = 1;
            newShipmentDTO.WarehouseId = 1;
            newShipmentDTO.StatusId    = 1;

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrangeContext.Statuses.AddRange(Utils.SeedStatuses());
                arrangeContext.Addresses.AddRange(Utils.SeedAddresses());
                arrangeContext.SaveChanges();
            }

            using (var actContext = new DeliverItContext(options))
            {
                var sut    = new ShipmentService(actContext);
                var result = sut.Create(newShipmentDTO);

                Assert.AreEqual(1, actContext.Shipments.ToList().Count());
                Assert.AreEqual(newShipmentDTO.Id, result.Id);
                Assert.AreEqual(newShipmentDTO.StatusId, result.StatusId);
                Assert.AreEqual(newShipmentDTO.WarehouseId, result.WarehouseId);
            }
        }
コード例 #18
0
        public void ReturnNewEmployee()
        {
            var options        = Utils.GetOptions(nameof(ReturnNewEmployee));
            var newEmployeeDTO = new Mock <NewEmployeeDTO>().Object;

            newEmployeeDTO.FirstName = "John";
            newEmployeeDTO.LastName  = "Smith";
            newEmployeeDTO.Email     = "*****@*****.**";
            newEmployeeDTO.AddressId = 1;
            var employee = new Mock <Employee>().Object;

            employee.FirstName = "John";
            employee.LastName  = "Smith";
            employee.Email     = "*****@*****.**";
            employee.AddressId = 1;
            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.Employees.Add(employee);
                arrContext.Addresses.AddRange(Utils.SeedAddresses());
                arrContext.Cities.AddRange(Utils.SeedCities());
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var sutHelp = new AddressService(actContext);
                var sut     = new EmployeeService(actContext, sutHelp);
                var result  = sut.Create(newEmployeeDTO);
                Assert.AreEqual(employee.FirstName, result.FirstName);
                Assert.AreEqual(employee.LastName, result.LastName);
                Assert.AreEqual(employee.Email, result.Email);
                Assert.AreEqual(employee.Address.StreetName + ", " + employee.Address.City.Name, result.Address);
                Assert.AreEqual(actContext.Employees.Count(), 2);
                Assert.IsInstanceOfType(result, typeof(EmployeeDTO));
            }
        }
コード例 #19
0
        public DeliveryServiceTests()
        {
            var options = new DbContextOptionsBuilder <DeliverItContext>()
                          .UseInMemoryDatabase(databaseName: "Add_writes_to_database")
                          .Options;

            dbContext       = new DeliverItContext(options);
            deliveryService = new DeliveryService(dbContext);
            dbContext.Deliveries.Add(new Delivery()
            {
                OrderId      = 1,
                Status       = DeliveryStatus.Created,
                AccessWindow = new AccessWindow
                {
                    StartTime = DateTime.Now,
                    EndTime   = DateTime.Now.AddHours(2)
                },
                Sender = new Partner
                {
                    Name = "Ikea"
                },
                Recipient = new User
                {
                    FirstName = "John",
                    LastName  = "Doe",
                    Email     = "*****@*****.**",
                    Address   = "Test Street, London",
                    Phone     = "0845345"
                }
            });
            dbContext.SaveChanges();
        }
コード例 #20
0
        public void Return_Correct_Parcel()
        {
            var options = Utils.GetOptions(nameof(Return_Correct_Parcel));
            var parcels = Utils.SeedParcels();

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Customers.AddRange(Utils.SeedCustomers());
                arrangeContext.Addresses.AddRange(Utils.SeedAddresses());
                arrangeContext.Cities.AddRange(Utils.SeedCities());
                arrangeContext.Statuses.AddRange(Utils.SeedStatuses());
                arrangeContext.Categories.AddRange(Utils.SeedCategories());
                arrangeContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrangeContext.Shipments.AddRange(Utils.SeedShipments());
                arrangeContext.Parcels.AddRange(parcels);
                arrangeContext.SaveChanges();
            }

            var parcelDTO = new ParcelDTO(parcels.First());

            using (var actContext = new DeliverItContext(options))
            {
                var sut    = new ParcelService(actContext);
                var result = sut.Get(1);

                Assert.AreEqual(parcelDTO.Id, result.Id);
                Assert.AreEqual(parcelDTO.Category, result.Category);
                Assert.AreEqual(parcelDTO.CustomerFirstName, result.CustomerFirstName);
                Assert.AreEqual(parcelDTO.CustomerLastName, result.CustomerLastName);
                Assert.AreEqual(parcelDTO.ParcelArrival, result.ParcelArrival);
                Assert.AreEqual(parcelDTO.WarehouseAddress, result.WarehouseAddress);
                Assert.AreEqual(parcelDTO.WarehouseCity, result.WarehouseCity);
                Assert.AreEqual(parcelDTO.Weight, result.Weight);
            }
        }
コード例 #21
0
        public void ReturnUpdatedCustomer()
        {
            var options           = Utils.GetOptions(nameof(ReturnUpdatedCustomer));
            var updateCustomerDTO = new Mock <UpdateCustomerDTO>().Object;

            updateCustomerDTO.FirstName = "John";
            updateCustomerDTO.LastName  = "Smith";
            updateCustomerDTO.Email     = "*****@*****.**";
            updateCustomerDTO.AddressId = 1;
            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.Customers.AddRange(Utils.SeedCustomers());
                arrContext.Addresses.AddRange(Utils.SeedAddresses());
                arrContext.Cities.AddRange(Utils.SeedCities());
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var sutHelp  = new AddressService(actContext);
                var sut      = new CustomerService(actContext, sutHelp);
                var result   = sut.Update(1, updateCustomerDTO);
                var customer = actContext.Customers.FirstOrDefault(c => c.Id == 1);

                Assert.AreEqual(customer.FirstName, result.FirstName);
                Assert.AreEqual(customer.LastName, result.LastName);
                Assert.AreEqual(customer.Email, result.Email);
                Assert.AreEqual(customer.Address.StreetName + ", " + customer.Address.City.Name, result.Address);
                Assert.IsInstanceOfType(result, typeof(CustomerDTO));
            }
        }
コード例 #22
0
        public void Throws_When_InputParcelWarehouseId_NotFound()
        {
            var options = Utils.GetOptions(nameof(Throws_When_InputParcelWarehouseId_NotFound));

            var newParcelDTO = new Mock <NewParcelDTO>().Object;

            newParcelDTO.Id          = 1;
            newParcelDTO.CategoryId  = 1;
            newParcelDTO.CustomerId  = 1;
            newParcelDTO.WarehouseId = 1;
            newParcelDTO.ShipmentId  = 1;
            newParcelDTO.Weight      = 1;

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Customers.AddRange(Utils.SeedCustomers());
                arrangeContext.Categories.AddRange(Utils.SeedCategories());
                arrangeContext.Shipments.AddRange(Utils.SeedShipments());
                arrangeContext.Statuses.AddRange(Utils.SeedStatuses());
                arrangeContext.Addresses.AddRange(Utils.SeedAddresses());
                arrangeContext.Cities.AddRange(Utils.SeedCities());
                arrangeContext.SaveChanges();
            }

            using (var actContext = new DeliverItContext(options))
            {
                var sut = new ParcelService(actContext);

                Assert.ThrowsException <ArgumentNullException>(() => sut.Create(newParcelDTO));
            }
        }
コード例 #23
0
        public void Throws_When_UpdateShipmentInputStatusId_NotFound()
        {
            var options = Utils.GetOptions(nameof(Throws_When_UpdateShipmentInputStatusId_NotFound));

            var updateShipmentDTO = new Mock <UpdateShipmentDTO>().Object;

            updateShipmentDTO.WarehouseId = 1;
            updateShipmentDTO.StatusId    = 1;
            updateShipmentDTO.Departure   = DateTime.UtcNow.AddDays(1);
            updateShipmentDTO.Arrival     = DateTime.UtcNow.AddDays(2);

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrangeContext.Addresses.AddRange(Utils.SeedAddresses());
                arrangeContext.SaveChanges();
            }

            using (var actContext = new DeliverItContext(options))
            {
                var sut = new ShipmentService(actContext);

                Assert.ThrowsException <ArgumentNullException>(() => sut.Update(1, updateShipmentDTO));
            }
        }
コード例 #24
0
        public void Throw_When_CategoryIsNotFound()
        {
            var options = Utils.GetOptions(nameof(Throw_When_CategoryIsNotFound));

            using (var actContext = new DeliverItContext(options))
            {
                var sut = new CategoryService(actContext);
                Assert.ThrowsException <ArgumentException>(() => sut.Delete(1));
            }
        }
コード例 #25
0
ファイル: Get_Should.cs プロジェクト: AngelYankov/DeliverIT
        public void Throw_When_InvalidId()
        {
            var options     = Utils.GetOptions(nameof(Throw_When_InvalidId));
            var mockService = new Mock <IAddressService>();

            using (var actContext = new DeliverItContext(options))
            {
                var sut = new WarehouseService(actContext, mockService.Object);
                Assert.ThrowsException <ArgumentException>(() => sut.Get(1));
            }
        }
コード例 #26
0
        public void Throw_When_InvalidWarehouseId()
        {
            var options = Utils.GetOptions(nameof(Throw_When_InvalidWarehouseId));

            using (var actContext = new DeliverItContext(options))
            {
                var sutHelp = new AddressService(actContext);
                var sut     = new WarehouseService(actContext, sutHelp);
                Assert.ThrowsException <ArgumentException>(() => sut.Update(5, new NewWarehouseDTO()));
            }
        }
コード例 #27
0
ファイル: Get_Should.cs プロジェクト: AngelYankov/DeliverIT
        public void Throw_When_StatusNotFound()
        {
            var options = Utils.GetOptions(nameof(Throw_When_StatusNotFound));

            using (var context = new DeliverItContext(options))
            {
                var sut = new StatusService(context);

                Assert.ThrowsException <ArgumentNullException>(() => sut.Get(1));
            }
        }
コード例 #28
0
        public void Delete_Throw_When_InvalidEmployeeId()
        {
            var options = Utils.GetOptions(nameof(Delete_Throw_When_InvalidEmployeeId));

            using (var actContext = new DeliverItContext(options))
            {
                var mock = new Mock <IAddressService>();
                var sut  = new EmployeeService(actContext, mock.Object);
                Assert.ThrowsException <ArgumentException>(() => sut.Delete(10));
            }
        }
コード例 #29
0
        public void Update_Throw_When_InvalidCustomerId()
        {
            var options = Utils.GetOptions(nameof(Update_Throw_When_InvalidCustomerId));

            using (var actContext = new DeliverItContext(options))
            {
                var mock = new Mock <IAddressService>();
                var sut  = new CustomerService(actContext, mock.Object);
                Assert.ThrowsException <ArgumentException>(() => sut.Update(10, new UpdateCustomerDTO()));
            }
        }
コード例 #30
0
        public void Throw_When_EmployeeIsNotFound()
        {
            var options = Utils.GetOptions(nameof(Throw_When_EmployeeIsNotFound));

            using (var actContext = new DeliverItContext(options))
            {
                var mock = new Mock <IAddressService>();
                var sut  = new EmployeeService(actContext, mock.Object);
                Assert.ThrowsException <ArgumentException>(() => sut.GetEmployee("123"));
            }
        }