コード例 #1
0
        public async Task CreateTest()
        {
            // arrange
            var client  = Fixture.CreateClient();
            var options = new JsonSerializerOptions
            {
                PropertyNameCaseInsensitive = true,
            };
            var parms = new BlogCreateParms
            {
                NomBlog         = "xxx",
                TitolPrimerPost = "yyy"
            };

            // act
            var response = await client.PostAsJsonAsync("/api/Blog/Create", parms);

            // assert: result code
            var expected_status_code = HttpStatusCode.OK;

            Assert.Equal(expected_status_code, response.StatusCode);

            // asert: content
            var content = await response.Content.ReadAsStringAsync();

            var methodresult          = JsonSerializer.Deserialize <MethodResult <BlogDto> >(content, options);
            var methodresult_expected = await new BlogBusinessFakeLayer().Create(parms);

            methodresult.Should().IsSameOrEqualTo(methodresult_expected);
        }
コード例 #2
0
        public async Task <MethodResult <BlogDto> > Create(BlogCreateParms parms)
        {
            var result = await HttpClient.PostAsJsonAsync("api/Blog/Create", parms);

            var r = await result.Content.ReadFromJsonAsync <MethodResult <BlogDto> >();

            return(r !);
        }
コード例 #3
0
        public Task <MethodResult <BlogDto> > Create(BlogCreateParms parms)
        {
            var result = new MethodResult <BlogDto>
            {
                Data = new BlogDto
                {
                    Id              = 100,
                    Nom             = parms.NomBlog,
                    TitolsDelsPosts = new()
                    {
                        parms.TitolPrimerPost
                    }
                }
            };

            return(Task.FromResult(result));
        }
コード例 #4
0
        public async Task CreateTest()
        {
            // arrange
            var blogTransport = new BlogTransport(Fixture.CreateClient());
            var parms         = new BlogCreateParms
            {
                NomBlog         = "xxx",
                TitolPrimerPost = "yyy"
            };

            // act
            var response = await blogTransport.Create(parms);

            // asert: content
            var methodresult_expected = await new BlogBusinessFakeLayer().Create(parms);

            response.Should().IsSameOrEqualTo(methodresult_expected);
        }
コード例 #5
0
        public async Task <MethodResult <BlogDto> > Create(BlogCreateParms parms)
        {
            using var ctx = MyFactory.CreateDbContext();

            // pre-condicions

            // body
            var blog = new Blog
            {
                Nom = parms.NomBlog
            };
            var post = new Post
            {
                Blog    = blog,
                Content = "Contingut del meu primer blog",
                Title   = parms.TitolPrimerPost
            };

            // persistim
            ctx.Add(post);
            ctx.Add(blog);
            await ctx.SaveChangesAsync();

            // retornem
            MethodResult <BlogDto> result = new MethodResult <BlogDto>
            {
                Data = new BlogDto
                {
                    Id = blog.BlogId,
                    DataDePublicacio = blog.DiaDePublicacio,
                    Nom             = blog.Nom,
                    TitolsDelsPosts = blog.Posts.Select(p => p.Title).ToList()
                }
            };

            return(result);
        }
コード例 #6
0
 public Task <MethodResult <BlogDto> > Create([FromBody]  BlogCreateParms parms)
 {
     return(_BlogBusinessLayer.Create(parms));
 }