Example #1
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));
            }
        }
Example #2
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);
            }
        }
Example #3
0
        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));
            }
        }
Example #4
0
        public void ReturnUpdatedEmployee()
        {
            var options           = Utils.GetOptions(nameof(ReturnUpdatedEmployee));
            var updateEmployeeDTO = new Mock <UpdateEmployeeDTO>().Object;

            updateEmployeeDTO.FirstName = "John";
            updateEmployeeDTO.LastName  = "Smith";
            updateEmployeeDTO.Email     = "*****@*****.**";
            updateEmployeeDTO.AddressId = 1;
            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 sutHelp  = new AddressService(actContext);
                var sut      = new EmployeeService(actContext, sutHelp);
                var result   = sut.Update(1, updateEmployeeDTO);
                var employee = actContext.Employees.FirstOrDefault(c => c.Id == 1);

                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.IsInstanceOfType(result, typeof(EmployeeDTO));
            }
        }
Example #5
0
        public void ReturnNewCustomer()
        {
            var options        = Utils.GetOptions(nameof(ReturnNewCustomer));
            var newCustomerDTO = new Mock <NewCustomerDTO>().Object;

            newCustomerDTO.FirstName = "John";
            newCustomerDTO.LastName  = "Smith";
            newCustomerDTO.Email     = "*****@*****.**";
            newCustomerDTO.AddressId = 1;
            var customer = new Mock <Customer>().Object;

            customer.FirstName = "John";
            customer.LastName  = "Smith";
            customer.Email     = "*****@*****.**";
            customer.AddressId = 1;
            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.Customers.Add(customer);
                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.Create(newCustomerDTO);
                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.AreEqual(actContext.Customers.Count(), 2);
                Assert.IsInstanceOfType(result, typeof(CustomerDTO));
            }
        }
Example #6
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));
            }
        }
Example #7
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);
            }
        }
Example #8
0
        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));
            }
        }
Example #9
0
        public void Throws_When_UpdateShipmentInputWarehouseId_NotFound()
        {
            var options = Utils.GetOptions(nameof(Throws_When_UpdateShipmentInputWarehouseId_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.Statuses.AddRange(Utils.SeedStatuses());
                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));
            }
        }
Example #10
0
        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));
            }
        }
Example #11
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));
            }
        }
Example #12
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();
        }
Example #13
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"
            });
        }
Example #14
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));
            }
        }
        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));
            }
        }
Example #16
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);
            }
        }
Example #17
0
        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);
            }
        }
Example #18
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));
            }
        }
Example #19
0
        public void Throws_When_UpdateInputShipmentId_NotFound()
        {
            var options = Utils.GetOptions(nameof(Throws_When_UpdateInputShipmentId_NotFound));

            var updateParcelDTO = new Mock <UpdateParcelDTO>().Object;

            updateParcelDTO.CategoryId  = 1;
            updateParcelDTO.CustomerId  = 1;
            updateParcelDTO.WarehouseId = 1;
            updateParcelDTO.ShipmentId  = 1;
            updateParcelDTO.Weight      = 1;

            using (var arrangeContext = new DeliverItContext(options))
            {
                arrangeContext.Parcels.AddRange(Utils.SeedParcels());
                arrangeContext.Customers.AddRange(Utils.SeedCustomers());
                arrangeContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrangeContext.Statuses.AddRange(Utils.SeedStatuses());
                arrangeContext.Categories.AddRange(Utils.SeedCategories());
                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.Update(1, updateParcelDTO));
            }
        }
        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));
            }
        }
Example #21
0
        /// <summary>
        /// Delete a customer.
        /// </summary>
        /// <param name="id">ID to search for.</param>
        /// <returns>Returns true or false if succesful or an appropriate error message.</returns>
        public bool Delete(int id)
        {
            var customer = FindCustomer(id);

            customer.IsDeleted = true;
            customer.DeletedOn = DateTime.UtcNow;
            dbContext.SaveChanges();
            return(customer.IsDeleted);
        }
Example #22
0
        public async void GetSingleDeliveryTest()
        {
            var delivery = new Delivery
            {
                OrderId      = 10,
                Status       = DeliveryStatus.Approved,
                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.Add(delivery);
            dbContext.SaveChanges();

            var controller = new DeliveryController(deliveryService, mapper);;

            controller.ControllerContext = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = new System.Security.Claims.ClaimsPrincipal(new ClaimsIdentity(new Claim[] {
                        new Claim(ClaimTypes.NameIdentifier, "1")
                    }))
                }
            };

            var response1 = await controller.Get(delivery.Id);

            var okResult1 = response1 as OkObjectResult;

            Assert.NotNull(okResult1);
            Assert.Equal(200, okResult1.StatusCode);
            Assert.NotNull(okResult1.Value);

            var delivery1 = okResult1.Value as DeliveryViewModel;

            Assert.Equal(delivery.Id, delivery1.Id);
        }
Example #23
0
        public PartnerServiceTests()
        {
            var options = new DbContextOptionsBuilder <DeliverItContext>()
                          .UseInMemoryDatabase(databaseName: "Add_writes_to_database")
                          .Options;

            dbContext      = new DeliverItContext(options);
            partnerService = new PartnerService(dbContext);
            dbContext.Partners.Add(new Partner
            {
                Name     = "Ikea",
                Password = "******"
            });
            dbContext.SaveChanges();
        }
Example #24
0
        public void ReturnNameOfAllCategories()
        {
            var options    = Utils.GetOptions(nameof(ReturnNameOfAllCategories));
            var categories = Utils.SeedCategories();

            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.Categories.AddRange(categories);
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var sut    = new CategoryService(actContext);
                var result = sut.GetAll();
                Assert.AreEqual(string.Join(",", actContext.Categories.Select(c => c.Name)), string.Join(",", result));
            }
        }
        public void ReturnCount()
        {
            var options = Utils.GetOptions(nameof(ReturnCount));

            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.Customers.AddRange(Utils.SeedCustomers());
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var mock   = new Mock <IAddressService>();
                var sut    = new CustomerService(actContext, mock.Object);
                var result = sut.GetAllCount();
                Assert.AreEqual(actContext.Customers.Count(), result);
            }
        }
Example #26
0
        public void ReturnUpdatedCategoryName()
        {
            var options    = Utils.GetOptions(nameof(ReturnUpdatedCategoryName));
            var categories = Utils.SeedCategories();

            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.Categories.AddRange(categories);
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var sut    = new CategoryService(actContext);
                var result = sut.Update(1, "Test category");
                Assert.AreEqual(actContext.Categories.First().Name, result);
            }
        }
Example #27
0
        public void Throw_When_InvalidCity()
        {
            var options       = Utils.GetOptions(nameof(Throw_When_InvalidCity));
            var newAddressDTO = new Mock <NewAddressDTO>().Object;

            newAddressDTO.StreetName = "Ivan Vazov";
            newAddressDTO.CityId     = 100;
            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.AddRange(Utils.SeedCities());
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var sut = new AddressService(actContext);
                Assert.ThrowsException <ArgumentException>(() => sut.Create(newAddressDTO));
            }
        }
Example #28
0
        public void ReturnTrueIfCategoryIsDeleted()
        {
            var options    = Utils.GetOptions(nameof(ReturnTrueIfCategoryIsDeleted));
            var categories = Utils.SeedCategories();

            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.Categories.AddRange(categories);
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var sut    = new CategoryService(actContext);
                var result = sut.Delete(1);
                Assert.AreEqual(actContext.Categories.Where(c => c.IsDeleted == false).Count(), 2);
                Assert.IsTrue(result);
            }
        }
Example #29
0
        public void Throw_When_AlreadyDeleted()
        {
            var options = Utils.GetOptions(nameof(Throw_When_AlreadyDeleted));
            var mock    = new Mock <IAddressService>();

            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.Warehouses.AddRange(Utils.SeedWarehouses());
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var sut       = new WarehouseService(actContext, mock.Object);
                var warehouse = actContext.Warehouses.First(w => w.Id == 1);
                warehouse.IsDeleted = true;
                Assert.ThrowsException <ArgumentException>(() => sut.Delete(1));
            }
        }
        public void ReturnEmployeeToVerify()
        {
            var options = Utils.GetOptions(nameof(ReturnEmployeeToVerify));

            using (var arrContext = new DeliverItContext(options))
            {
                arrContext.Employees.AddRange(Utils.SeedEmployees());
                arrContext.SaveChanges();
            }
            using (var actContext = new DeliverItContext(options))
            {
                var mock     = new Mock <IAddressService>();
                var sut      = new EmployeeService(actContext, mock.Object);
                var result   = sut.GetEmployee("petar.shapkov");
                var employee = actContext.Employees.First();
                Assert.AreEqual(employee, result);
            }
        }