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);
        }
Esempio n. 2
0
        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());
        }