Beispiel #1
0
        public async Task Update_Advert_Command_Should_Update_Entity_Title_And_Description()
        {
            var user = new User(Guid.NewGuid(), "*****@*****.**");
            await _dbFixture.InsertAsync(user);

            var category = new Category(Guid.NewGuid(), user.Id);
            await _dbFixture.InsertAsync(category);

            string advertDescription = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum bibendum purus et libero vulputate elementum.";
            var    advert            = new Advert(Guid.NewGuid(), "Test Advert Name", advertDescription, user.Id,
                                                  category.Id, null);
            await _dbFixture.InsertAsync(advert);

            string newDescription = "Vestibulum bibendum purus et libero vulputate elementum. Quisque hendrerit risus turpis, vitae tristique urna feugiat nec.";
            var    command        = new UpdateAdvert(advert.Id, "Updated Ad Title", newDescription, advert.Creator);

            var updateTask = await _rabbitMqFixture.SubscribeAndGetAsync <AdvertUpdated, Advert>(_dbFixture.GetEntityTask, command.Id);

            await _rabbitMqFixture.PublishAsync(command);

            var updatedEntity = await updateTask.Task;

            updatedEntity.ShouldNotBeNull();
            updatedEntity.Title.ShouldBe(command.Title);
            updatedEntity.Description.ShouldBe(command.Description);
        }
Beispiel #2
0
        public async Task <IActionResult> UpdateAdvert(Guid id, [FromBody] UpdateAdvert command)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(command));
            }

            return(await SendAsync(command.Bind(c => c.Id, id).Bind(c => c.UserId, UserId), resourceId : command.Id,
                                   resource : "adverts"));
        }