Пример #1
0
        public async void ShouldGetRecipeByIdCorrectly()
        {
            // "447EA0EF-F828-486A-91A9-0EDBC01D0B89" - sample existing recipe
            var query   = new GetRecipeById(new Guid("447EA0EF-F828-486A-91A9-0EDBC01D0B89"), false);
            var handler = new GetRecipeByIdHandler(MockBuilder.BuildFakeRepository());

            var actual = await handler.Handle(query, CancellationToken.None);

            var expected = new Recipe
            {
                Id       = new Guid("447EA0EF-F828-486A-91A9-0EDBC01D0B89"),
                Metadata = new Metadata
                {
                    Version  = 0,
                    Removed  = false,
                    Creation = new Creation {
                        AuthorId = "9E09950B-47DE-4BAB-AA79-C29414312ECB", Published = new DateTime(2010, 1, 1)
                    },
                    Updates = new Update[0]
                },
                Name        = "sample-name",
                Description = "sample-description",
                PictureUrl  = "https://example.com/sample-image.png",
                Calories    = 1234,
                MealTypes   = new[] { MealType.Snack },
                Steps       = new[] { "1. Sample first step.", "2. Sample second step." },
                Ingredients = new[] { "Sample first ingredient", "Sample second ingredient" }
            };

            actual.Should().BeEquivalentTo(expected);
        }
Пример #2
0
        public async void DoesValidatorPreventFromDeletingNotExistingRecipe()
        {
            var request   = new DeleteRecipe(new Guid("E9AFD20D-C83C-493B-827B-2220433E4D5E"));
            var validator = new DeleteRecipeValidator(MockBuilder.BuildFakeRepository(), MockBuilder.BuildFakeCurrentUserService());

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeFalse();
        }
Пример #3
0
        public async void DoesValidatorAllowCorrectRequest()
        {
            var request   = new DeleteRecipe(new Guid("447EA0EF-F828-486A-91A9-0EDBC01D0B89"));
            var validator = new DeleteRecipeValidator(MockBuilder.BuildFakeRepository(), MockBuilder.BuildFakeCurrentUserService());

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeTrue();
        }
Пример #4
0
        public async void DoesValidatorPreventFromRequestWithEmptyId()
        {
            var request   = new RestoreRecipe();
            var validator = new RestoreRecipeValidator(MockBuilder.BuildFakeRepository());

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeFalse();
        }
Пример #5
0
        public async void DoesValidatorPreventRequestWithNonExistentRecipe()
        {
            // "D8B765B2-D11B-46E8-8142-E7A9BFBA7286" - sample non existent recipe
            var query     = new GetRecipeById(new Guid("D8B765B2-D11B-46E8-8142-E7A9BFBA7286"));
            var validator = new GetRecipeByIdValidator(MockBuilder.BuildFakeRepository());

            var result = await validator.ValidateAsync(query);

            result.IsValid.Should().BeFalse();
        }
Пример #6
0
        public async void DoesValidatorAllowCorrectRequest()
        {
            // "447EA0EF-F828-486A-91A9-0EDBC01D0B89" - sample existing recipe
            var query     = new GetRecipeById(new Guid("447EA0EF-F828-486A-91A9-0EDBC01D0B89"));
            var validator = new GetRecipeByIdValidator(MockBuilder.BuildFakeRepository());

            var result = await validator.ValidateAsync(query);

            result.IsValid.Should().BeTrue();
        }
        public async void ShouldReturnUserRecipesCorrectly()
        {
            var query   = new GetUserRecipes("9E09950B-47DE-4BAB-AA79-C29414312ECB");
            var handler = new GetUserRecipesHandler(MockBuilder.BuildFakeRepository());

            var result = await handler.Handle(query, CancellationToken.None);

            result.Should().HaveCount(2)
            .And.ContainSingle(x => x.Id == new Guid("447EA0EF-F828-486A-91A9-0EDBC01D0B89"))
            .And.ContainSingle(x => x.Id == new Guid("B8DBCACE-35A9-4D48-8A71-827E37D782A8"));
        }
Пример #8
0
        public async void DoesValidatorPreventFromRequestWithExistingId()
        {
            var request = new RestoreRecipe {
                EntityId = new Guid("447EA0EF-F828-486A-91A9-0EDBC01D0B89")
            };
            var validator = new RestoreRecipeValidator(MockBuilder.BuildFakeRepository());

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeFalse();
        }
Пример #9
0
        public async void DoesValidatorAllowCorrectRequest()
        {
            var request = new RestoreRecipe {
                EntityId = new Guid("0F04E4D4-F9B8-45E8-8661-496730E8B455")
            };
            var validator = new RestoreRecipeValidator(MockBuilder.BuildFakeRepository());

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeTrue();
        }
        public async void DoesValidatorPreventFromUpdatingRecipeWithoutSteps()
        {
            var request = new UpdateRecipe
            {
                EntityId    = new Guid("447EA0EF-F828-486A-91A9-0EDBC01D0B89"),
                Name        = "sample-name",
                Description = "sample-description",
                PictureUrl  = "https://example.com/sample-image.png",
                Calories    = 1234,
                MealTypes   = new[] { MealType.Snack }
            };
            var validator = new UpdateRecipeValidator(MockBuilder.BuildFakeRepository(), MockBuilder.BuildFakeCurrentUserService());

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeFalse();
        }
        public async void DoesValidatorPreventFromUpdatingRecipeWithNoDescription()
        {
            var request = new UpdateRecipe
            {
                EntityId    = new Guid("447EA0EF-F828-486A-91A9-0EDBC01D0B89"),
                Name        = "sample-name",
                Description = string.Empty,
                PictureUrl  = "https://example.com/sample-image.png",
                Calories    = 1234,
                MealTypes   = new[] { MealType.Snack },
                Steps       = new[] { "1. Sample first step.", "2. Sample second step." },
                Ingredients = new[] { "Sample first ingredient", "Sample second ingredient" }
            };
            var validator = new UpdateRecipeValidator(MockBuilder.BuildFakeRepository(), MockBuilder.BuildFakeCurrentUserService());

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeFalse();
        }
        public async void DoesValidatorPreventFromUpdatingNotExistingRecipe()
        {
            var request = new UpdateRecipe
            {
                EntityId    = new Guid("1FED1A46-D5FF-4259-B838-08CA7C95F264"),
                Name        = "sample-name",
                Description = "sample-description",
                PictureUrl  = "https://example.com/sample-image.png",
                Calories    = 1234,
                MealTypes   = new[] { MealType.Snack },
                Steps       = new[] { "1. Sample first step.", "2. Sample second step." },
                Ingredients = new[] { "Sample first ingredient", "Sample second ingredient" }
            };
            var validator = new UpdateRecipeValidator(MockBuilder.BuildFakeRepository(), MockBuilder.BuildFakeCurrentUserService());

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeFalse();
        }
Пример #13
0
        public async void ShouldGetRecipeByIdWithoutMetadataCorrectly()
        {
            // "447EA0EF-F828-486A-91A9-0EDBC01D0B89" - sample existing recipe
            var query   = new GetRecipeById(new Guid("447EA0EF-F828-486A-91A9-0EDBC01D0B89"));
            var handler = new GetRecipeByIdHandler(MockBuilder.BuildFakeRepository());

            var actual = await handler.Handle(query, CancellationToken.None);

            var expected = new Recipe
            {
                Id          = new Guid("447EA0EF-F828-486A-91A9-0EDBC01D0B89"),
                Metadata    = null,
                Name        = "sample-name",
                Description = "sample-description",
                PictureUrl  = "https://example.com/sample-image.png",
                Calories    = 1234,
                MealTypes   = new[] { MealType.Snack },
                Steps       = new[] { "1. Sample first step.", "2. Sample second step." },
                Ingredients = new[] { "Sample first ingredient", "Sample second ingredient" }
            };

            actual.Should().BeEquivalentTo(expected);
        }
        public async void ShouldGetAllRecipesCorrectly()
        {
            var handler = new GetRecipesHandler(MockBuilder.BuildFakeRepository());

            var result = await handler.Handle(new GetRecipes(), CancellationToken.None);

            var expected = new[]
            {
                new Recipe
                {
                    Id          = new Guid("447EA0EF-F828-486A-91A9-0EDBC01D0B89"),
                    Metadata    = null,
                    Name        = "sample-name",
                    Description = "sample-description",
                    PictureUrl  = "https://example.com/sample-image.png",
                    Calories    = 1234,
                    MealTypes   = new[] { MealType.Snack },
                    Steps       = new[] { "1. Sample first step.", "2. Sample second step." },
                    Ingredients = new[] { "Sample first ingredient", "Sample second ingredient" }
                },
                new Recipe
                {
                    Id          = new Guid("B8DBCACE-35A9-4D48-8A71-827E37D782A8"),
                    Metadata    = null,
                    Name        = "sample-name-2",
                    Description = "sample-description-2",
                    PictureUrl  = "https://example.com/sample-image-2.png",
                    Calories    = 4321,
                    MealTypes   = new[] { MealType.Lunch },
                    Steps       = new[] { "1. Sample first step.", "2. Sample second step." },
                    Ingredients = new[] { "Sample first ingredient", "Sample second ingredient" }
                },
            };

            result.Should().BeEquivalentTo(expected);
        }