예제 #1
0
        public async Task DreamersController_PUT_UpdateDreamer()
        {
            //Arrange
            var category  = _fixture.DreamCategoryBuilder(10).Create();
            var category2 = _fixture.DreamCategoryBuilder(15).Create();
            await IntegrationTestsFixture.DatabaseContext.DreamCategories.AddAsync(category);

            await IntegrationTestsFixture.DatabaseContext.DreamCategories.AddAsync(category2);

            await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync();

            var dream = new Dream
            {
                DisplayName     = "T",
                Age             = 2,
                DreamUrl        = "https://mam-marzenie.pl/marzenie/1",
                Tags            = "tag1",
                DreamCategoryId = category.DreamCategoryId
            };
            await IntegrationTestsFixture.DatabaseContext.Dreams.AddAsync(dream);

            await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync();

            IntegrationTestsFixture.SetUserContext(new User {
                Role = UserRoleEnum.Coordinator
            });
            var request = new UpdateDreamRequest
            {
                DreamId     = dream.DreamId,
                DisplayName = "Test",
                Age         = 3,
                DreamUrl    = "https://mam-marzenie.pl/marzenie/2",
                Tags        = "tag1, tag2",
                CategoryId  = category2.DreamCategoryId
            };

            //Act
            var _ = await Client.PutAsync("/api/dreams", request.WithJsonContent().json).AsResponse <UpdateDreamResponse>();

            IntegrationTestsFixture.SetUserContext(new User {
                Role = UserRoleEnum.Admin
            });
            var queryResponse = await Client.GetDreams();


            queryResponse.Should().NotBeNull();
            queryResponse.Dreams.Count.Should().Be(1);
            queryResponse.Dreams.Should().SatisfyRespectively(x =>
            {
                x.DreamId.Should().Be(dream.DreamId);
                x.DisplayName.Should().Be(request.DisplayName);
                x.Age.Should().Be(request.Age);
                x.DreamUrl.Should().Be(request.DreamUrl);
                x.Tags.Should().Be(request.Tags);
                x.DreamCategory.Should().NotBeNull();
                x.DreamCategory.DreamCategoryId.Should().Be(request.CategoryId);
            });
        }
예제 #2
0
 public async Task <UpdateDreamResponse> UpdateDream([FromBody] UpdateDreamRequest request)
 => await _mediator.Send(request);