コード例 #1
0
        public void SaveStorageFacility(StorageFacility storageFacility)
        {
            // This will perform an add or an edit as appropriate
            var collectionOfItems = _database.GetCollection <StorageFacility>(DatabaseName);

            collectionOfItems.Save(storageFacility);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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!!");
            }
        }
コード例 #4
0
        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!");
            }
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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!");
            }
        }
コード例 #7
0
        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);
        }