public void GetByIdShouldWork()
        {
            var state = GetCurrentPrivateRecipeSystemState();
            var sut = new PrivateRecipeRepository(state);

            var resultNull = sut.GetById(962301823);
            resultNull.ShouldBeNull();

            var result = sut.GetById(state[1].Id);
            result.ShouldNotBeNull();
            result.Id.ShouldEqual(state[1].Id);
            result.Author.ShouldEqual(state[1].Author);
            result.Title.ShouldEqual(state[1].Title);
        }
        public void DeleteShouldWork()
        {
            var state = GetCurrentPrivateRecipeSystemState();
            var originalCount = state.Count;
            var sut = new PrivateRecipeRepository(state);
            var idToDelete = state[1].Id;

            sut.Delete(idToDelete);
            var results = sut.GetAll();
            results.Count.ShouldEqual(originalCount - 1);

            var recipe = sut.GetById(idToDelete);
            recipe.ShouldBeNull();
        }
        public void UpdateShouldWork()
        {
            var state = GetCurrentPrivateRecipeSystemState();
            var sut = new PrivateRecipeRepository(state);
            var existingOne = state[0];
            var newTitle = "My new title";
            var newItem = TestObjectsGenerator.GenerateRandomRecipeItem(existingOne, true);

            existingOne.Title = newTitle;
            existingOne.Add(newItem);
            sut.Update(existingOne);

            var result = sut.GetById(existingOne.Id);
            result.Items.Count.ShouldEqual(existingOne.Items.Count);
            result.Title.ShouldEqual(newTitle);
        }