public void Remove_RemoveHasAThatDoesNotExistInHasADb_ReturnNull() { var hasA = new HasA() { Price = 23, ProductId = _product.ProductId, StoreId = _store.StoreId, Store = _store, Product = _product }; _hasARepository.Remove(hasA); _context.SaveChanges(); Assert.That(_context.HasARelation.Find(hasA.ProductId, hasA.StoreId), Is.EqualTo(null)); }
public void AddProductToMyStore_ProductIsAlreadyAddedToTestStore_ReturnMinus1() { var product = new Product() { ProductName = "TestProduct" }; _context.Products.Add(product); _context.SaveChanges(); var hasA = new HasA() {Price = 22, Product = product, Store = _storemanager.Store, StoreId = _storemanager.Store.StoreId, ProductId = product.ProductId}; _context.HasARelation.Add(hasA); _context.SaveChanges(); Assert.That(_storemanager.AddProductToMyStore(product, 24), Is.EqualTo(-1)); }
public void FindProductInStore_TestProductIsSoldInStore_TestIsReturned() { _context.Stores.Add(_store); var product = new Product() {ProductName = "TestProduct"}; _context.Products.Add(product); _context.SaveChanges(); var hasA = new HasA() {Product = product, ProductId = product.ProductId, Store = _store, StoreId = _store.StoreId, Price = 10}; _context.HasARelation.Add(hasA); _context.SaveChanges(); Assert.That(_storeRepository.FindProductInStore(_store.StoreName, product.ProductName).Name, Is.EqualTo(product.ProductName)); }
public void Add_AddHasAToHasADb_HasACanBefoundInDb() { _storeRepository.Add(_store); _productRepository.Add(_product); _context.SaveChanges(); var hasA = new HasA() {Price = 23, ProductId = _product.ProductId, StoreId = _store.StoreId, Store = _store, Product = _product}; _hasARepository.Add(hasA); _context.SaveChanges(); Assert.That(_context.HasARelation.Find(hasA.StoreId, hasA.ProductId), Is.EqualTo(hasA)); }
public void AddProductToMyStore_BananIsAlreadyInStore_ReturnMinusOne() { var hasA = new HasA() { Price = 1, Product = _product, ProductId = _product.ProductId, Store = _store, StoreId = _store.StoreId }; _unitWork.HasA.Get(_store.StoreId, _product.ProductId).Returns(hasA); Assert.That(_uut.AddProductToMyStore(_product, 3.95), Is.EqualTo(-1)); }
public void Remove_RemoveHasAFromHasARelationDb_HasACantBeFoundInDb() { _storeRepository.Add(_store); _productRepository.Add(_product); _context.SaveChanges(); var hasA = new HasA() { Price = 23, ProductId = _product.ProductId, StoreId = _store.StoreId, Store = _store, Product = _product }; _hasARepository.Add(hasA); _context.SaveChanges(); _hasARepository.Remove(hasA); _context.SaveChanges(); Assert.That(_context.HasARelation.Find(hasA.StoreId, hasA.ProductId), Is.EqualTo(null)); }
public void changePriceOfProductInStore_HasPriceBeenChangedFrom2to4_reutrns4() { var hasA = new HasA() { Price = 2, Product = _product, ProductId = _product.ProductId, Store = _store, StoreId = _store.StoreId }; _uut.AddProductToMyStore(_product, 2); _unitWork.HasA.Get(_store.StoreId, _product.ProductId).Returns(hasA); _uut.ChangePriceOfProductInStore(_product, 4); }
public void FindProductsInStoreStartingWith_TestProductsIsSoldInStore_ListContaining3ElementsAreReturned() { _context.Stores.Add(_store); var product1 = new Product() { ProductName = "TestProduct1" }; var product2 = new Product() { ProductName = "TestProduct2" }; var product3 = new Product() { ProductName = "TestProduct3" }; _context.Products.Add(product1); _context.Products.Add(product2); _context.Products.Add(product3); _context.SaveChanges(); var hasA1 = new HasA() { Product = product1, ProductId = product1.ProductId, Store = _store, StoreId = _store.StoreId, Price = 10 }; var hasA2 = new HasA() { Product = product2, ProductId = product2.ProductId, Store = _store, StoreId = _store.StoreId, Price = 11 }; var hasA3 = new HasA() { Product = product3, ProductId = product3.ProductId, Store = _store, StoreId = _store.StoreId, Price = 12 }; _context.HasARelation.Add(hasA1); _context.HasARelation.Add(hasA2); _context.HasARelation.Add(hasA3); _context.SaveChanges(); Assert.That(_storeRepository.FindProductsInStoreStartingWith(_store.StoreName, "Test").Count, Is.EqualTo(3)); }
public void Complete_SavesTheChangesToTheDatabase_ProductFoundInDatabase() { var banan = new Product() { ProductName = "Banan" }; var føtex = new Store() {StoreName = "Føtex"}; _context.Products.Add(banan); _context.Stores.Add(føtex); _context.SaveChanges(); var hasA = new HasA() { Price = 3.95, Store = føtex, Product = banan, ProductId = banan.ProductId, StoreId = føtex.StoreId }; _context.HasARelation.Add(hasA); _context.SaveChanges(); Assert.That(_unitOfWork.HasA.FindHasA(føtex.StoreName, banan.ProductName), Is.EqualTo(hasA)); }
/// <summary> /// Add product to storemanagers store with price /// </summary> /// <param name="product"></param> /// <param name="price"></param> /// <returns>-1 if the product exist in that store and 0 if it has been added</returns> public int AddProductToMyStore(Product product, double price) { if (_unitwork.HasA.Get(Store.StoreId, product.ProductId) != null) return -1; var hasA = new HasA { Price = price, Product = product, Store = Store, ProductId = product.ProductId, StoreId = Store.StoreId }; _unitwork.HasA.Add(hasA); product.HasARelation.Add(hasA); Store.HasARelation.Add(hasA); _unitwork.Complete(); return 0; }
public void AutoCompleteProductForOneStore_3ProductsStartingWithBa_ReturnsAListContaining3Elements() { var bacon = new Product() { ProductName = "Bacon" }; var banan = new Product() { ProductName = "Banan" }; var bambus = new Product() { ProductName = "Bambus" }; var store = new Store() {StoreName = "TestStore"}; _context.Stores.Add(store); _context.Products.Add(bacon); _context.Products.Add(banan); _context.Products.Add(bambus); _context.SaveChanges(); var hasA1 = new HasA() {Product = bacon, ProductId = bacon.ProductId, Store = store, StoreId = store.StoreId, Price = 12}; var hasA2 = new HasA() { Product = banan, ProductId = banan.ProductId, Store = store, StoreId = store.StoreId, Price = 13 }; var hasA3 = new HasA() { Product = bambus, ProductId = bambus.ProductId, Store = store, StoreId = store.StoreId, Price = 14 }; _context.HasARelation.Add(hasA1); _context.HasARelation.Add(hasA2); _context.HasARelation.Add(hasA3); _context.SaveChanges(); Assert.That(_autoCom.AutoCompleteProductForOneStore("TestStore", "Ba").Count, Is.EqualTo(3)); }
public void SetUp() { _context = new DataContext(); _unit = new UnitOfWork(_context); _context.Database.Connection.ConnectionString = "Server=.\\SQLEXPRESS;Database=Pristjek220Data.DataContext; Trusted_Connection=True;MultipleActiveResultSets=True;"; _context.Database.ExecuteSqlCommand("dbo.TestCleanTable"); var store = new Store() {StoreName = "TestStore"}; var store2 = new Store() { StoreName = "TestStore2" }; _context.Stores.Add(store); _context.Stores.Add(store2); _context.SaveChanges(); _product = new Product() {ProductName = "Test"}; _product2 = new Product() {ProductName = "Test2"}; var hasA = new HasA() {Price = 4, Product = _product, Store = store}; var hasA2 = new HasA() {Price = 6, Product = _product2, Store = store}; var hasA3 = new HasA() { Price = 5, Product = _product, Store = store2 }; _context.Products.Add(_product); _context.Products.Add(_product2); _context.HasARelation.Add(hasA2); _context.HasARelation.Add(hasA); _context.HasARelation.Add(hasA3); _context.SaveChanges(); _consumer = new global::Consumer.Consumer(_unit); _mail = Substitute.For<IMail>(); _autocomplete = new Autocomplete(_unit); _generatedShoppingList = new GeneratedShoppingListModel(_consumer, _mail); _shoppingList = new ShoppingListModel(_consumer, _autocomplete); _findProduct = new FindProductModel(_consumer, _autocomplete); _shoppingList.ClearShoppingListCommand.Execute(this); }
public void SetUp() { _context = new DataContext(); _unit = new UnitOfWork(_context); _context.Database.Connection.ConnectionString = "Server=.\\SQLEXPRESS;Database=Pristjek220Data.DataContext; Trusted_Connection=True;MultipleActiveResultSets=True;"; _context.Database.ExecuteSqlCommand("dbo.TestCleanTable"); //Opsætning af 2 forretninger der begge har samme vare _product = new Product() { ProductName = "TestProduct" }; _store = new Store() { StoreName = "TestStore" }; _store1 = new Store() { StoreName = "TestStore1" }; _context.Products.Add(_product); _context.Stores.Add(_store); _context.Stores.Add(_store1); _context.SaveChanges(); _hasA = new HasA() { Product = _product, Store = _store, ProductId = _product.ProductId, StoreId = _store.StoreId, Price = 12 }; _hasA1 = new HasA() { Product = _product, Store = _store1, ProductId = _product.ProductId, StoreId = _store1.StoreId, Price = 13 }; _context.HasARelation.Add(_hasA); _context.HasARelation.Add(_hasA1); _context.SaveChanges(); _consumer = new Consumer.Consumer(_unit); }
public void FindStroesThatSellsProduct_AddANewStoreANdInsetValidProduct_UnitofWorkReturnsStoresThatsSellProduct() { var TestStore = new Store() { StoreName = "TestStore2" }; _context.Stores.Add(TestStore); _context.SaveChanges(); var HasA = new HasA() { Product = _product, Store = TestStore, ProductId = _product.ProductId, StoreId = TestStore.StoreId, Price = 13 }; _context.HasARelation.Add(HasA); _context.SaveChanges(); var list = _consumer.FindStoresThatSellsProduct(_product.ProductName); Assert.That(list.Count, Is.EqualTo(3)); }
public void FindCheapestStoreWithSumForListOfProducts_2StoresSellsTestProductAndTestProduct1_ReturnsTheCheapestStoreWithPriceOf12() { var product1 = new Product() {ProductName = "TestProduct1"}; _context.Products.Add(product1); var hasA3 = new HasA() {}; var list = new List<ProductInfo>() { new ProductInfo(_product.ProductName, "1") }; Assert.That(_consumer.FindCheapestStoreWithSumForListOfProducts(list).Price, Is.EqualTo(12)); }
public void ChangePriceOfProductInStore_PriceOfTestProductInStoreIsSetTo10_HasARelationWithNewPriceCanBeFoundInDb() { var product = new Product() { ProductName = "TestProduct" }; _context.Products.Add(product); _context.SaveChanges(); var hasA = new HasA() { Price = 22, Product = product, Store = _storemanager.Store, StoreId = _storemanager.Store.StoreId, ProductId = product.ProductId }; _context.HasARelation.Add(hasA); _context.SaveChanges(); _storemanager.ChangePriceOfProductInStore(product, 10); Assert.That(_context.HasARelation.Find(_storemanager.Store.StoreId, product.ProductId).Price, Is.EqualTo(10)); }
/// <summary> /// Finds the cheapest store for a product /// </summary> /// <param name="productName"></param> /// <returns>The store that got the product cheapest</returns> public Store FindCheapestStore(string productName) { var product = _unit.Products.FindProduct(productName); if (product == null) { return null; } HasA cheapest = null; foreach ( var hasA in product.HasARelation.Where( hasA => OptionsStores.Any(x => (x.Store == hasA.Store.StoreName) && x.IsChecked))) { if (cheapest == null) { cheapest = new HasA {Price = double.MaxValue}; } if (hasA.Price < cheapest.Price) cheapest = hasA; } return cheapest?.Store; }
public void RemoveProductFromMyStore_RemovalOfProductSuccesfull_Return0() { var product = new Product() { ProductName = "TestProduct" }; _context.Products.Add(product); _context.SaveChanges(); var hasA = new HasA() { Price = 22, Product = product, Store = _storemanager.Store, StoreId = _storemanager.Store.StoreId, ProductId = product.ProductId }; _context.HasARelation.Add(hasA); _context.SaveChanges(); Assert.That(_storemanager.RemoveProductFromMyStore(product), Is.EqualTo(0)); }
public void RemoveProductFromMyStore_ProductNoLongerHasAnyRelationsToAnyStore_ProductCannotBeFoundInDb() { var product = new Product() { ProductName = "TestProduct" }; _context.Products.Add(product); _context.SaveChanges(); var hasA = new HasA() { Price = 22, Product = product, Store = _storemanager.Store, StoreId = _storemanager.Store.StoreId, ProductId = product.ProductId }; _context.HasARelation.Add(hasA); _context.SaveChanges(); _storemanager.RemoveProductFromMyStore(product); Assert.That(_unit.Products.FindProduct("TestProduct"), Is.EqualTo(null)); }
public void RemoveProductFromMyStore_ProductIsInStore_HasARelationCannotBeFoundForProductAndStore() { var product = new Product() { ProductName = "TestProduct" }; _context.Products.Add(product); _context.SaveChanges(); var hasA = new HasA() { Price = 22, Product = product, Store = _storemanager.Store, StoreId = _storemanager.Store.StoreId, ProductId = product.ProductId }; _context.HasARelation.Add(hasA); _context.SaveChanges(); _storemanager.RemoveProductFromMyStore(product); Assert.That(_context.HasARelation.Find(_storemanager.Store.StoreId, product.ProductId), Is.EqualTo(null)); }
public void FindProductInStore_TestProductIsInDbAndInStore_PriceOfReturnedObjectIsEqualToHasARelationsPrice() { var product = new Product() { ProductName = "TestProduct" }; _context.Products.Add(product); _context.SaveChanges(); var hasA = new HasA() { Price = 22, Product = product, Store = _storemanager.Store, StoreId = _storemanager.Store.StoreId, ProductId = product.ProductId }; _context.HasARelation.Add(hasA); _context.SaveChanges(); Assert.That(_storemanager.FindProductInStore(product.ProductName).Price, Is.EqualTo(hasA.Price)); }
public void SetUp() { _prod = new Product() {ProductName = "TestProduct"}; _store = new Store() { StoreName = "TestStore" }; _hasA = new HasA() {Price = 10}; _context = new DataContext(); _hasARepository = new HasARepository(_context); _context.Database.Connection.ConnectionString = "Server=.\\SQLEXPRESS;Database=Pristjek220Data.DataContext; Trusted_Connection=True;"; _context.Database.ExecuteSqlCommand("dbo.TestCleanTable"); }
public void RemoveProductFromMyStore_BananWithHasAIsInNoStore_ProductsRemoveCalled() { var hasA = new HasA() { Price = 1, Product = _product, ProductId = _product.ProductId, Store = _store, StoreId = _store.StoreId }; _uut.AddProductToMyStore(_product, 1); _unitWork.HasA.FindHasA(_store.StoreName, _product.ProductName).Returns(hasA); _product.HasARelation.Clear(); _uut.RemoveProductFromMyStore(_product); _unitWork.Received(1).Products.Remove(_product); }
public void RemoveProductFromMyStore_BananWithHasAIsInStore_ChangesAreSavedInDatabase() { var hasA = new HasA() { Price = 1, Product = _product, ProductId = _product.ProductId, Store = _store, StoreId = _store.StoreId }; _uut.AddProductToMyStore(_product, 1); _unitWork.HasA.FindHasA(_store.StoreName, _product.ProductName).Returns(hasA); _uut.RemoveProductFromMyStore(_product); _unitWork.Received(2).Complete(); }
public void RemoveProductFromMyStore_BananWithHasAIsInStore_RemoveIsCalled() { var hasA = new HasA() { Price = 1, Product = _product, ProductId = _product.ProductId, Store = _store, StoreId = _store.StoreId }; _uut.AddProductToMyStore(_product, 1); _unitWork.HasA.FindHasA(_store.StoreName, _product.ProductName).Returns(hasA); _uut.RemoveProductFromMyStore(_product); _unitWork.HasA.Received(1).Remove(Arg.Any<HasA>()); }