public async System.Threading.Tasks.Task SuppliersDeleteItemAsync()
        {
            //Arrange
            //init
            var controller = new NorthwindWeb.Controllers.SuppliersController();
            var db         = new NorthwindDatabase();
            //create Suppliers
            var Suppliers = new Suppliers()
            {
                CompanyName = "TestSuppliersCreate",
                ContactName = "contact",
            };

            db.Entry(Suppliers).State = System.Data.Entity.EntityState.Added;
            db.SaveChanges();
            //detach Suppliers from db
            db.Entry(Suppliers).State = System.Data.Entity.EntityState.Detached;
            db.SaveChanges();

            //Act
            //run controller action
            await controller.DeleteConfirmed(Suppliers.SupplierID);

            controller.Dispose();

            //Assert
            //this will throw a InvalidOperationException
            var actualSuppliers = db.Suppliers.Where(x => x.SupplierID == Suppliers.SupplierID).First();
        }
        public async Task CategoryEditEdits()
        {
            //Arrange
            Categories categoriesTest = new Categories()
            {
                CategoryName = "foto"
            };
            await _categoriesControllerTest.Create(categoriesTest);

            db.Entry(categoriesTest).State = System.Data.Entity.EntityState.Added;

            var expectedCategory = db.Categories.Find(categoriesTest.CategoryID);

            db.Dispose();
            categoriesTest.CategoryName = "video";
            db = new NorthwindDatabase();

            //Act
            await _categoriesControllerTest.Edit(categoriesTest);

            db.Entry(categoriesTest).State = System.Data.Entity.EntityState.Modified;
            var actualCategory = db.Categories.Find(categoriesTest.CategoryID);

            //Assert
            Assert.AreEqual(expectedCategory, actualCategory);


            var category = db.Categories.Where(c => (c.CategoryName == "video") || (c.CategoryName == "foto"));

            db.Categories.RemoveRange(category);
            db.SaveChanges();
        }
Esempio n. 3
0
        public async System.Threading.Tasks.Task ProductCreateItemAsync()
        {
            //Arrange
            var controller         = new ProductController();
            var db                 = new NorthwindDatabase();
            int productCountBefore = db.Products.Count();
            var product            = new Products()
            {
                CategoryID      = 4,
                ProductName     = "TestProductCreate",
                Discontinued    = false,
                QuantityPerUnit = "1",
                UnitPrice       = 1,
                UnitsInStock    = 1,
                ReorderLevel    = 0,
                SupplierID      = 1,
                UnitsOnOrder    = 0
            };

            //Act
            await controller.Create(product, null);

            //Assert
            Assert.AreEqual(productCountBefore + 1, db.Products.Count());
            db.Entry(db.Products.Where(x => x.ProductName == product.ProductName).First()).State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();
            controller.Dispose();
            db.Dispose();
        }
Esempio n. 4
0
        public async System.Threading.Tasks.Task RegionEditEdits()
        {
            //Arrange
            Region regionTest = new Region()
            {
                RegionID = 100, RegionDescription = "Aici"
            };
            await _regionsControllerTest.Create(regionTest);

            db.Entry(regionTest).State = System.Data.Entity.EntityState.Added;

            var expectedRegion = db.Regions.Find(regionTest.RegionID);

            db.Dispose();
            regionTest.RegionDescription = "Acolo";
            db = new NorthwindDatabase();

            //Act
            await _regionsControllerTest.Edit(regionTest);

            db.Entry(regionTest).State = System.Data.Entity.EntityState.Modified;
            var actualRegion = db.Regions.Find(regionTest.RegionID);

            //Assert
            Assert.AreEqual(expectedRegion, actualRegion);


            var region = db.Regions.Where(r => (r.RegionDescription == "Aici") || (r.RegionDescription == "Acolo"));

            db.Regions.RemoveRange(region);
            db.SaveChanges();
        }
        public async Task OrdersReturnsEditEdits()
        {
            //Arrange
            Orders orderTest = new Orders()
            {
                OrderID = 222, EmployeeID = 3
            };
            await _ordersControllerUnderTest.Create(orderTest);

            db.Entry(orderTest).State = System.Data.Entity.EntityState.Added;

            var expectedOrder = db.Orders.Find(orderTest.OrderID);

            db.Dispose();
            orderTest.EmployeeID = 4;
            db = new NorthwindDatabase();

            //Act
            await _ordersControllerUnderTest.Edit(orderTest);

            db.Entry(orderTest).State = System.Data.Entity.EntityState.Modified;
            var actualOrder = db.Orders.Find(orderTest.OrderID);

            //Assert
            Assert.AreEqual(expectedOrder, actualOrder);


            var orders = db.Orders.Where(o => o.OrderID == orderTest.OrderID && o.EmployeeID == orderTest.EmployeeID);

            db.Orders.RemoveRange(orders);
            db.SaveChanges();
        }
Esempio n. 6
0
        public async Task CustomersReturnsEditEdits()
        {
            //Arrange
            var expectedCustomer = new Customers()
            {
                CustomerID = "ZZZZZ", CompanyName = "test"
            };

            db.Customers.Add(expectedCustomer);
            db.SaveChanges();
            db.Entry(expectedCustomer).State = System.Data.Entity.EntityState.Added;

            db.Dispose();
            expectedCustomer.CompanyName = "test2";
            db = new NorthwindDatabase();

            //Act
            await _customersControllerUnderTest.Edit(expectedCustomer);

            db.Entry(expectedCustomer).State = System.Data.Entity.EntityState.Modified;
            var actualCustomer = db.Customers.Find(expectedCustomer.CustomerID);

            //Assert
            Assert.AreEqual(expectedCustomer.CustomerID, actualCustomer.CustomerID);


            var customerss = db.Customers.Where(c => c.CompanyName == expectedCustomer.CompanyName || c.CompanyName == actualCustomer.CompanyName);

            db.Customers.RemoveRange(customerss);
            db.SaveChanges();
        }
        public async System.Threading.Tasks.Task EmployeesEditEditsAsync()
        {
            //Arrange
            Employees employeeTest = new Employees()
            {
                LastName = "test1", FirstName = "test1"
            };
            await _EmployeesControllerUnderTest.Create(employeeTest);

            _db.Entry(employeeTest).State = System.Data.Entity.EntityState.Added;

            var expectedEmployee = _db.Employees.Find(employeeTest.EmployeeID);

            _db.Dispose();
            employeeTest.LastName  = "test2";
            employeeTest.FirstName = "test2";
            _db = new NorthwindDatabase();

            //Act
            await _EmployeesControllerUnderTest.Edit(employeeTest);

            _db.Entry(employeeTest).State = System.Data.Entity.EntityState.Modified;
            var actualEmployee = _db.Employees.Find(employeeTest.EmployeeID);

            //Assert
            Assert.AreEqual(expectedEmployee, actualEmployee);

            DeleteTestFromDb();
        }
Esempio n. 8
0
        public void ContactCreateItem()
        {
            //Arrange
            var controller = new NorthwindWeb.Controllers.ContactController();
            var db         = new NorthwindDatabase();

            NorthwindWeb.Models.Persons person = new NorthwindWeb.Models.Persons()
            {
                ID        = db.Persons.Count() + 1,
                FirstName = "test1223",
                LastName  = "123331111",
                Email     = "*****@*****.**",
                Comment   = "Buna!"
            };

            //Act
            var result = controller.Index(person);

            //Assert
            Assert.IsNotNull(result);

            db.Entry(person).State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();
            db.Dispose();
        }
Esempio n. 9
0
        public async Task ShipperEditEdits()
        {
            //Arrange
            Shippers shipperTest = new Shippers()
            {
                CompanyName = "Express", Phone = "0240-111-111"
            };
            await _shippersControllerTest.Create(shipperTest);

            db.Entry(shipperTest).State = System.Data.Entity.EntityState.Added;

            var expectedShipper = db.Shippers.Find(shipperTest.ShipperID);

            db.Dispose();
            shipperTest.CompanyName = "Nero Express";
            shipperTest.Phone       = "0240-222-222";
            db = new NorthwindDatabase();

            //Act
            await _shippersControllerTest.Edit(shipperTest);

            db.Entry(shipperTest).State = System.Data.Entity.EntityState.Modified;
            var actualShipper = db.Shippers.Find(shipperTest.ShipperID);

            //Assert
            Assert.AreEqual(expectedShipper, actualShipper);


            var shipper = db.Shippers.Where(s => (s.CompanyName == "Express" && s.Phone == "0240-111-111") || (s.CompanyName == "Nero Express" && s.Phone == "0240-222-222"));

            db.Shippers.RemoveRange(shipper);
            db.SaveChanges();
        }
Esempio n. 10
0
        public async Task <ActionResult> Edit([Bind(Include = "CustomerID,CompanyName,ContactName,ContactTitle,Address,City,Region,PostalCode,Country,Phone,Fax")] Customers customers)
        {
            if (ModelState.IsValid)
            {
                db.Entry(customers).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(customers));
        }
Esempio n. 11
0
        public async Task <ActionResult> Edit([Bind(Include = "ShipperID,CompanyName,Phone")] Shippers shippers)
        {
            if (ModelState.IsValid)
            {
                db.Entry(shippers).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(shippers));
        }
        public async Task <ActionResult> Edit([Bind(Include = "RegionID,RegionDescription")] Region region)
        {
            if (ModelState.IsValid)
            {
                db.Entry(region).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(region));
        }
Esempio n. 13
0
        public async Task <ActionResult> Edit([Bind(Include = "SupplierID,CompanyName,ContactName,ContactTitle,Address,City,Region,PostalCode,Country,Phone,Fax,HomePage")] Suppliers suppliers)
        {//if inputs data correspond to the model
            if (ModelState.IsValid)
            {
                db.Entry(suppliers).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(suppliers));
        }
        public async Task <ActionResult> Edit([Bind(Include = "EmployeeID,LastName,FirstName,Title,TitleOfCourtesy,BirthDate,HireDate,Address,City,Region,PostalCode,Country,HomePhone,Extension,Notes,ReportsTo")] Employees employees)
        {
            if (ModelState.IsValid)
            {
                db.Entry(employees).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.ReportsTo = new SelectList(db.Employees, "EmployeeID", "LastName", employees.ReportsTo);
            return(View(employees));
        }
        public async System.Threading.Tasks.Task SuppliersEditItemAsync()
        {
            //Arrange
            //init
            var controller = new NorthwindWeb.Controllers.SuppliersController();
            var db         = new NorthwindDatabase();
            //create Suppliers
            var Suppliers = new Suppliers()
            {
                CompanyName = "TestSuppliersCreate",
                ContactName = "contact",
            };

            db.Entry(Suppliers).State = System.Data.Entity.EntityState.Added;
            db.SaveChanges();
            //detach Suppliers from db
            db.Entry(Suppliers).State = System.Data.Entity.EntityState.Detached;
            db.SaveChanges();
            //edit name of Suppliers
            string name         = Suppliers.CompanyName;
            string nameExpected = "test1223";

            Suppliers.CompanyName = nameExpected;

            //Act
            //run controller action
            await controller.Edit(Suppliers);

            controller.Dispose();
            string actual = db.Suppliers.Where(x => x.SupplierID == Suppliers.SupplierID).First().CompanyName;

            //Assert
            //check and delete Suppliers
            Assert.AreEqual(nameExpected, actual);
            Suppliers                 = db.Suppliers.Where(x => x.SupplierID == Suppliers.SupplierID).First();
            Suppliers.CompanyName     = name;
            db.Entry(Suppliers).State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();
            db.Dispose();
        }
Esempio n. 16
0
        public async Task <ActionResult> Edit([Bind("ProductID,ProductName,SupplierID,CategoryID,QuantityPerUnit,UnitPrice,UnitsInStock,UnitsOnOrder,ReorderLevel,Discontinued")] Products products, IFormFile ProductImage)
        {
            try
            {
                if (!((ProductImage == null) || ProductImage.ContentType.Contains("image")))
                {
                    throw new ArgumentException("The provided file is not an image");
                }
                if (ModelState.IsValid && !(String.IsNullOrEmpty(products.ProductName)))
                {
                    db.Entry(products).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    if (ProductImage != null)
                    {
                        string path = System.IO.Path.Combine(Startup._hostingEnvironment.WebRootPath + ($"Images/{db.Categories.Where(x => x.CategoryID == products.CategoryID).FirstOrDefault().CategoryName}/"), $"{products.ProductID}.jpg");
                        using (var fileStream = new FileStream(path, FileMode.Create))
                        {
                            await ProductImage.CopyToAsync(fileStream);
                        }
                    }
                }
                ViewBag.CategoryID = new SelectList(db.Categories, "CategoryID", "CategoryName", products.CategoryID);
                ViewBag.SupplierID = new SelectList(db.Suppliers, "SupplierID", "CompanyName", products.SupplierID);
                return(View(products));
            }
            catch (NullReferenceException e)
            {
                //todo
                //logger.Error(e.ToString());
                throw new NullReferenceException("Imaginea nu a putut fi gasita");
            }
            catch (DbUpdateException e)
            {
                //todo
                //logger.Error(e.ToString());
                throw new DbUpdateException("Nu s-au putut efectua modificatile", new Exception());
            }
            catch (ArgumentException e)
            {
                //
                //logger.Error(e.ToString());
                throw new ArgumentException("Fisierul ales nu este o imagine");
            }
            catch (Exception e)
            {
                //if something else goes wrong
                //todo
                //logger.Error(e.ToString());
                throw new Exception("Ceva nu a mers bine, va rugam reincercati. Daca problema persista contactati un administrator.");
            }
        }
Esempio n. 17
0
        public async System.Threading.Tasks.Task ProductEditItemAsync()
        {
            //Arrange
            //init
            var controller = new ProductController();
            var db         = new NorthwindDatabase();
            //create product
            var product = new Products()
            {
                ProductName = "test", CategoryID = 1, SupplierID = 1
            };

            db.Entry(product).State = System.Data.Entity.EntityState.Added;
            db.SaveChanges();
            //detach product from db
            db.Entry(product).State = System.Data.Entity.EntityState.Detached;
            db.SaveChanges();
            //edit name of product
            string name         = product.ProductName;
            string nameExpected = "test12232";

            product.ProductName = nameExpected;

            //Act
            //run controller action
            await controller.Edit(product, null);

            controller.Dispose();
            string actual = db.Products.Where(x => x.ProductID == product.ProductID).First().ProductName;

            //Assert
            //check and delete product
            Assert.AreEqual(nameExpected, actual);
            product                 = db.Products.Where(x => x.ProductID == product.ProductID).First();
            product.ProductName     = name;
            db.Entry(product).State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();
            db.Dispose();
        }
        public async Task <ActionResult> Edit([Bind(Include = "TerritoryID,TerritoryDescription,RegionID")] Territories territories)
        {
            if (ModelState.IsValid)
            {
                db.Entry(territories).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Details", "Regions", new { id = Convert.ToInt32(TempData["RegionID"]) }));
            }

            ViewBag.RegionID = new SelectList(db.Regions, "RegionID", "RegionDescription", territories.RegionID);
            return(View(territories));
        }
Esempio n. 19
0
        public async Task <ActionResult> Edit([Bind(Include = "OrderID,CustomerID,EmployeeID,OrderDate,RequiredDate,ShippedDate,ShipVia,Freight,ShipName,ShipAddress,ShipCity,ShipRegion,ShipPostalCode,ShipCountry")] Orders orders)
        {
            if (ModelState.IsValid)
            {
                db.Entry(orders).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.CustomerID = new SelectList(db.Customers, "CustomerID", "CompanyName", orders.CustomerID);
            ViewBag.EmployeeID = new SelectList(db.Employees, "EmployeeID", "LastName", orders.EmployeeID);
            ViewBag.ShipVia    = new SelectList(db.Shippers, "ShipperID", "CompanyName", orders.ShipVia);
            return(View(orders));
        }
Esempio n. 20
0
        public async Task <ActionResult> Edit([Bind(Include = "OrderID,ProductID,Quantity,Discount")] Order_Details order_Details)
        {
            order_Details.UnitPrice = db.Products.Find(order_Details.ProductID).UnitPrice ?? 0;
            if (ModelState.IsValid)
            {
                db.Entry(order_Details).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Details", "Orders", new { id = order_Details.OrderID }));
            }
            ViewBag.OrderID   = new SelectList(db.Orders, "OrderID", "CustomerID", order_Details.OrderID);
            ViewBag.ProductID = new SelectList(db.Products, "ProductID", "ProductName", order_Details.ProductID);
            return(View(order_Details));
        }
        public async Task <ActionResult> Edit([Bind("CategoryID,CategoryName,Description")] Categories categories)
        {
            if (!ModelState.IsValid)
            {
                return(View(categories));
            }
            if (db.Categories.Where(c => (c.CategoryName == categories.CategoryName) && (c.CategoryID != categories.CategoryID)).Count() != 0)
            {
                ModelState.AddModelError("CategoryName", "Numele de categorie este deja folosit");
                return(View(categories));
            }
            db.Entry(categories).State = EntityState.Modified;
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Esempio n. 22
0
        public async Task <ActionResult> Edit([Bind(Include = "ProductID,ProductName,SupplierID,CategoryID,QuantityPerUnit,UnitPrice,UnitsInStock,UnitsOnOrder,ReorderLevel,Discontinued")] Products products, HttpPostedFileBase ProductImage)
        {
            try
            {
                if (!((ProductImage == null) || ProductImage.ContentType.Contains("image")))
                {
                    throw new ArgumentException("The provided file is not an image");
                }
                if (ModelState.IsValid && !(String.IsNullOrEmpty(products.ProductName)))
                {
                    db.Entry(products).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    if (ProductImage != null)
                    {
                        string path = System.IO.Path.Combine(Server.MapPath($"~/images/{db.Categories.Where(x => x.CategoryID == products.CategoryID).FirstOrDefault().CategoryName}/"), $"{products.ProductID}.jpg");
                        System.IO.File.Delete(path);
                        ProductImage.SaveAs(path);
                    }
                }
                ViewBag.CategoryID = new SelectList(db.Categories, "CategoryID", "CategoryName", products.CategoryID);
                ViewBag.SupplierID = new SelectList(db.Suppliers, "SupplierID", "CompanyName", products.SupplierID);
                return(View(products));
            }
            catch (NullReferenceException e)
            {
                logger.Error(e.ToString());
                throw new NullReferenceException("Imaginea nu a putut fi gasita");
            }
            catch (System.Data.Entity.Infrastructure.DbUpdateException e)
            {
                logger.Error(e.ToString());
                throw new System.Data.Entity.Infrastructure.DbUpdateException("Nu s-au putut efectua modificatile");
            }
            catch (ArgumentException e)
            {
                logger.Error(e.ToString());
                throw new ArgumentException("Fisierul ales nu este o imagine");
            }
            catch (Exception e)
            {
                //if something else goes wrong
                logger.Error(e.ToString());
                throw new Exception("Ceva nu a mers bine, va rugam reincercati. Daca problema persista contactati un administrator.");
            }
        }
        public async Task OrderDetailReturnsEditEdits()
        {
            //Arrange
            Orders OrderTest = new Orders()
            {
                OrderID = 22, CustomerID = "ALFKI", EmployeeID = 3
            };
            Order_Details detailsTest = new Order_Details()
            {
                ProductID = 20, UnitPrice = 23, Quantity = 12, Discount = 1, Order = OrderTest
            };
            await _detailsControllerUnderTest.Create(detailsTest, OrderTest.OrderID);

            db.Entry(detailsTest).State = System.Data.Entity.EntityState.Added;

            var expectedDetails = db.Order_Details.Find(detailsTest.OrderID, detailsTest.ProductID);

            db.Dispose();
            detailsTest.UnitPrice = 43;
            detailsTest.Quantity  = 22;
            db = new NorthwindDatabase();

            //Act
            await _detailsControllerUnderTest.Edit(detailsTest);

            db.Entry(detailsTest).State = System.Data.Entity.EntityState.Modified;
            var actualDetails = db.Order_Details.Find(detailsTest.OrderID, detailsTest.ProductID);

            //Assert
            Assert.AreEqual(expectedDetails, actualDetails);


            var details = db.Order_Details.Where(o => o.OrderID == detailsTest.OrderID && o.ProductID == detailsTest.ProductID && o.UnitPrice == detailsTest.UnitPrice && o.Quantity == detailsTest.Quantity && o.Discount == detailsTest.Discount);
            var orders  = db.Orders.Find(OrderTest.OrderID);

            foreach (var orderdet in details)
            {
                db.Order_Details.Remove(orderdet);
            }

            db.Orders.Remove(orders);
            db.SaveChanges();
        }
        public async System.Threading.Tasks.Task SuppliersCreateItemAsync()
        {
            //Arrange
            var controller           = new NorthwindWeb.Controllers.SuppliersController();
            var db                   = new NorthwindDatabase();
            int SuppliersCountBefore = db.Suppliers.Count();
            var Suppliers            = new Suppliers()
            {
                CompanyName = "TestSuppliersCreate",
                ContactName = "contact",
            };

            //Act
            await controller.Create(Suppliers);

            //Assert
            Assert.AreEqual(SuppliersCountBefore + 1, db.Suppliers.Count());
            db.Entry(Suppliers).State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();
            controller.Dispose();
            db.Dispose();
        }
Esempio n. 25
0
        public async Task TerritoryEditEdits()
        {
            //Arrange
            Region regionTest = new Region()
            {
                RegionID = 100, RegionDescription = "test"
            };
            Territories territoryTest = new Territories()
            {
                TerritoryID = "102", TerritoryDescription = "Aici", Region = regionTest
            };
            await _territoriesControllerTest.Create(territoryTest, regionTest.RegionID);

            db.Entry(territoryTest).State = System.Data.Entity.EntityState.Added;

            var expectedTerritory = db.Territories.Find(territoryTest.TerritoryID);

            db.Dispose();
            territoryTest.TerritoryDescription = "Acolo";
            db = new NorthwindDatabase();
            //Act
            await _territoriesControllerTest.Edit(territoryTest);

            db.Entry(territoryTest).State = System.Data.Entity.EntityState.Modified;
            var actualTerritory = db.Territories.Find(territoryTest.TerritoryID);

            //Assert
            Assert.AreEqual(expectedTerritory, actualTerritory);


            var territory = db.Territories.Where(t => (t.TerritoryDescription == "Aici") || (t.TerritoryDescription == "Acolo"));

            db.Territories.RemoveRange(territory);
            var regions = db.Regions.Where(t => t.RegionDescription.Contains(regionTest.RegionDescription));

            db.Regions.RemoveRange(regions);
            db.SaveChanges();
        }
Esempio n. 26
0
        public async System.Threading.Tasks.Task ProductDeleteItemAsync()
        {
            //Arrange
            var controller = new ProductController();
            var db         = new NorthwindDatabase();
            //create product
            var product = new Products()
            {
                ProductName = "test", CategoryID = 1, SupplierID = 1
            };

            db.Entry(product).State = System.Data.Entity.EntityState.Added;
            db.SaveChanges();

            //Act
            try
            {
                //run controller action
                await controller.DeleteConfirmed(product.ProductID);

                controller.Dispose();
            }
            catch (Exception ex)
            {
                //image not found
                if (!(ex is NullReferenceException))
                {
                    throw;
                }
            }
            //Assert
            //this will throw a InvalidOperationException
            if (db.Products.Any(x => x.ProductID == product.ProductID))
            {
                Assert.Fail();
            }
        }