public void SaveStorageFacility(StorageFacility storageFacility) { // This will perform an add or an edit as appropriate var collectionOfItems = _database.GetCollection <StorageFacility>(DatabaseName); collectionOfItems.Save(storageFacility); }
public void RemoveItemsFromStorageFacility(InventoryDomainEventCheckoutItems domainEvent) { IMongoQuery query = Query <StorageFacility> .EQ(e => e.FacilityId, domainEvent.FacilityId); StorageFacility storageFacility = _database.GetCollection <StorageFacility>(DatabaseName).FindOneAs <StorageFacility>(query); foreach (string itemId in domainEvent.ItemIdsToBeRemovedList) { Item itemToRemove = storageFacility.Inventory.Items.FirstOrDefault(x => x.ItemId == itemId); storageFacility.Inventory.Items.Remove(itemToRemove); } SaveStorageFacility(storageFacility); }
public void AddShouldAddAndContentsShouldFindIt() { using (StringWriter sw = new StringWriter()) { TextWriter stdout = Console.Out; Console.SetOut(sw); StorageFacility facility = new StorageFacility(); facility.Add("a14", "ice skates"); foreach (string item in facility.Contents("a14")) { Console.WriteLine(item); } Console.SetOut(stdout); string example = "ice skates\n"; Assert.AreEqual(example, sw.ToString().Replace("\r\n", "\n"), "Adding an item should add it to the list, and it should be found with Contents!!"); } }
public void ExampleShouldWork() { using (StringWriter sw = new StringWriter()) { TextWriter stdout = Console.Out; Console.SetOut(sw); StorageFacility facility = new StorageFacility(); facility.Add("a14", "ice skates"); facility.Add("a14", "ice hockey stick"); facility.Add("a14", "ice skates"); facility.Add("f156", "rollerblades"); facility.Add("f156", "rollerblades"); facility.Add("g63", "six"); facility.Add("g63", "pi"); foreach (string unit in facility.StorageUnits()) { Console.WriteLine(unit); } foreach (string item in facility.Contents("a14")) { Console.WriteLine(item); } foreach (string item in facility.Contents("f156")) { Console.WriteLine(item); } facility.Remove("f156", "rollerblades"); foreach (string item in facility.Contents("f156")) { Console.WriteLine(item); } facility.Remove("f156", "rollerblades"); foreach (string unit in facility.StorageUnits()) { Console.WriteLine(unit); } Console.SetOut(stdout); string example = "a14\nf156\ng63\nice skates\nice hockey stick\nice skates\nrollerblades\nrollerblades\nrollerblades\na14\ng63\n"; Assert.AreEqual(example, sw.ToString().Replace("\r\n", "\n"), "The example should work!"); } }
public void TestWriteThenReadStorageFacilityToDb() { InventoryRepository inventoryRepository = new InventoryRepository(); StorageFacility storageFacility = new StorageFacility { FacilityId = FacilityIdConst, Address = "2000 Ultimate Way", Id = ObjectId.Parse(ObjectIdConst), Inventory = new Inventory { Items = new List <Item> { new Item { ItemName = "Item 1 - Plastic Widget", ItemId = "ITEM1" }, new Item { ItemName = "Item 2 - Metal Widget", ItemId = "ITEM2" }, new Item { ItemName = "Item 3 - Wooden Widget", ItemId = "ITEM3" }, new Item { ItemName = "Item 4 - Ceramic Widget", ItemId = "ITEM4" }, } } }; inventoryRepository.SaveStorageFacility(storageFacility); StorageFacility storageFacilityFromDb = inventoryRepository.GetStorageFacility(storageFacility.FacilityId); Assert.IsNotNull(storageFacilityFromDb); Assert.AreEqual(storageFacility.FacilityId, storageFacilityFromDb.FacilityId); Assert.AreEqual(4, storageFacilityFromDb.Inventory.Items.Count); }
public void AddShouldAddAndRemoveShouldRemoveOnlyOne() { using (StringWriter sw = new StringWriter()) { TextWriter stdout = Console.Out; Console.SetOut(sw); StorageFacility facility = new StorageFacility(); facility.Add("a14", "ice skates"); facility.Add("a14", "ice skates"); facility.Remove("a14", "ice skates"); foreach (string item in facility.Contents("a14")) { Console.WriteLine(item); } Console.SetOut(stdout); string example = "ice skates\n"; Assert.AreEqual(example, sw.ToString().Replace("\r\n", "\n"), "Remove should only remove one item!"); } }
public void TestCheckOutItemsFromStorageFacility() { InventoryDomainEventCheckoutItems domainEventCheckoutItems = new InventoryDomainEventCheckoutItems() { EventType = DomainEventType.InventoryDomainEventCheckoutItems, FacilityId = "ABC4321", SourceDomain = "Test", TargetDomain = "Inventory", ItemIdsToBeRemovedList = new[] { "ITEM3" } }; InventoryRepository inventoryRepository = new InventoryRepository(); inventoryRepository.RemoveItemsFromStorageFacility(domainEventCheckoutItems); StorageFacility storageFacilityFromDb = inventoryRepository.GetStorageFacility(FacilityIdConst); Assert.IsNotNull(storageFacilityFromDb); Assert.AreEqual(FacilityIdConst, storageFacilityFromDb.FacilityId); Assert.AreEqual(2, storageFacilityFromDb.Inventory.Items.Count); }