public void Delete_GivenItemIdDoesNotExist_ShouldThrow()
        {

            //---------------Set up test pack-------------------
            var context = Substitute.For<ILendingLibraryContext>();
            var repo = new ItemRepository(context);
            SetContextWithDtos(context, new List<ItemDto>());
            const string expectedMessage = "Item has already been removed";
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var result = Assert.Throws<ApplicationException>(() => repo.Delete(9));
            //---------------Test Result -----------------------

            Assert.AreEqual(expectedMessage, result.Message);
        }
        public void Delete_GivenItemId_ShouldDeleteThatItem()
        {
            //---------------Set up test pack-------------------
            var items = SetUpItemDataContext();

            var context = Substitute.For<ILendingLibraryContext>();
            SetContextWithDtos(context, items);
            var repo = new ItemRepository(context);
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            //---------------Test Result -----------------------
            Assert.IsTrue(repo.GetItemList().Contains(items[1]));

            repo.Delete(items[1].Id);

            var newItem = context.Items.FirstOrDefault(x => x.Id != items[1].Id);

            Assert.IsNotNull(newItem);
        }