public void TestAddItems()
        {
            CheckingDBFacade facade = GetTestDBFacade();

            //#checking.1
            try
            {
                facade.AddItems(new Item[] { new Item("Item1"), new Item("Item2"), new Item("Item1") }, "user3");
                Assert.Fail("Should have thrown DuplicatedItemException");
            }
            catch (Exception e)
            {
                if (!(e is DuplicatedItemException))
                {
                    Assert.Fail("Wrong exception. " + e.ToString());
                }
            }

            //#checking.2
            try
            {
                facade.AddItems(new Item[] { new Item("Item4"), new Item("Item2") }, "user1");
                Assert.Fail("Should have thrown ItemAlreadyPresentException");
            }
            catch (Exception e)
            {
                if (!(e is ItemAlreadyPresentException))
                {
                    Assert.Fail("Wrong exception. " + e.ToString());
                }
            }
        }
        public void TestUpdateItems()
        {
            CheckingDBFacade facade = GetTestDBFacade();

            //#checking.3
            try
            {
                facade.UpdateItems(new Item[] { new Item("Item1"), new Item("Item2"), new Item("Item1") }, "user1");
                Assert.Fail("Should have thrown DuplicatedItemException");
            }
            catch (Exception e)
            {
                if (!(e is DuplicatedItemException))
                {
                    Assert.Fail("Wrong exception. " + e.ToString());
                }
            }

            //#checking.4
            try
            {
                facade.UpdateItems(new Item[] { new Item("Item2"), new Item("Item4") }, "user1");
                Assert.Fail("Should have thrown ItemNotPresentException");
            }
            catch (Exception e)
            {
                if (!(e is ItemNotPresentException))
                {
                    Assert.Fail("Wrong exception. " + e.ToString());
                }
            }

            //#checking.5
            facade = new CheckingDBFacade(new TestClasses.TestDBFacade(new Dictionary <string, IList <Item> >()
            {
                { "user1", new List <Item>()
                  {
                      new Item("Item1", "Item1", TestClasses.TestType.Type, new Dictionary <string, string>()), new Item("Item2", "Item2", TestClasses.TestType.Type, new Dictionary <string, string>())
                  } }
            }));

            try
            {
                facade.UpdateItems(new Item[] { new Item("ItemA", "Item1", TestClasses.TestType.Type, new Dictionary <string, string>()), new Item("ItemB", "Item2", facade.GetItemType("empty"), new Dictionary <string, string>()) }, "user1");
                Assert.Fail("Should have thrown ItemTypeChangedException");
            }
            catch (Exception e)
            {
                if (!(e is ItemTypeChangedException))
                {
                    Assert.Fail("Wrong exception. " + e.ToString());
                }
            }
        }