public async Task GetRecipesByUserId_WithExistentUserId_ShouldReturnCorrectResult()
        {
            var errorMessagePrefix = "UserCookedRecipeService GetRecipesByUserId() method does not work properly.";

            // Arrange
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();
            var userCookedRecipeRepository = new EfRepository <UserCookedRecipe>(context);
            var userCookedRecipeService    = new UserCookedRecipeService(userCookedRecipeRepository);

            await this.SeedDataAsync(context);

            var userId = context.Users.First(x => x.FullName == "User 1").Id;

            // Act
            var actualResult = userCookedRecipeService
                               .GetRecipesByUserId(userId)
                               .ToList();
            var expectedResult = userCookedRecipeRepository
                                 .All()
                                 .Where(x => x.UserId == userId)
                                 .OrderByDescending(x => x.AddedOn)
                                 .Select(x => x.Recipe)
                                 .To <RecipeServiceModel>()
                                 .ToList();

            // Assert
            Assert.True(expectedResult.Count() == actualResult.Count(), errorMessagePrefix + " " + "Collections count mismatch.");

            for (int i = 0; i < actualResult.Count(); i++)
            {
                Assert.True(expectedResult[i].Id == actualResult[i].Id, errorMessagePrefix + " " + "Recipe is not returned properly.");
            }
        }
        public async Task GetRecipesByUserId_WithNonExistentUserId_ShouldReturnEmptyCollection()
        {
            var errorMessagePrefix = "UserCookedRecipeService GetRecipesByUserId() method does not work properly.";

            // Arrange
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();
            var userCookedRecipeRepository = new EfRepository <UserCookedRecipe>(context);
            var userCookedRecipeService    = new UserCookedRecipeService(userCookedRecipeRepository);

            await this.SeedDataAsync(context);

            var nonExistentUserId = Guid.NewGuid().ToString();

            // Act
            var actualResult = userCookedRecipeService
                               .GetRecipesByUserId(nonExistentUserId)
                               .ToList()
                               .Count;
            var expectedResult = 0;

            // Assert
            Assert.True(expectedResult == actualResult, errorMessagePrefix + " " + "Collection is not empty.");
        }