public async Task AddShouldAddANewEntry() { using var scope = ServiceProvider.CreateScope(); var sut = Factory.CreateClient(); var context = scope.ServiceProvider.GetRequiredService <ApplicationContext>(); var address = await SeedDatabaseFixture.AddDummyAddressAsync(context); var request = new AddLocalPhoneModel { Number = LocalPhoneFixture.Number, AreaCode = LocalPhoneFixture.AreaCode, AddressUuid = address.Uuid }; var serializedRequest = JsonSerializer.Serialize(request); var contentRequest = new StringContent(serializedRequest, Encoding.UTF8, "application/json"); var result = await sut.PostAsync("LocalPhone/Add", contentRequest); result.EnsureSuccessStatusCode(); var insertedPhone = await context.LocalPhones.Include(x => x.PhoneAddress).FirstAsync(); Assert.Equal(LocalPhoneFixture.Number, insertedPhone.Number); Assert.Equal(LocalPhoneFixture.AreaCode, insertedPhone.AreaCode); Assert.NotNull(insertedPhone.PhoneAddress); }
public async Task <ActionResult> Add(AddLocalPhoneModel model) { var(phone, addressUuid) = model.GetPhone(); var result = await _localPhoneService.SaveAsync(phone, addressUuid); if (result is not SuccessResult <Guid> successResult) { return(FailResult(result)); } if (await _unitOfWork.SaveChangesAsync()) { return(CreatedAtAction(nameof(Get), new{ uuid = successResult.Result }, null)); } return(ErrorResult()); }