public async Task Can_create_a_contact() { using var factory = new TestDbContextFactory(); using var context = await factory.CreateContextAsync(); var contact = new Contact { FirstName = "Albert", LastName = "Einstein", PhoneNumber = "2222-1111" }; var expected = contact.Clone(); var controller = new ContactsController(null, context); var result = await controller.Post(contact); Assert.IsType <CreatedAtActionResult>(result); var createdAtActionResult = result as CreatedAtActionResult; var actual = createdAtActionResult.Value as Contact; Assert.Equal(expected.FirstName, actual.FirstName); Assert.Equal(expected.LastName, actual.LastName); Assert.Equal(expected.PhoneNumber, actual.PhoneNumber); Assert.Single(context.Contacts, c => c.Id == expected.Id); }
public async Task Can_update_a_contact() { using var factory = new TestDbContextFactory(); using var context = await factory.CreateContextAsync(); var contact = new Contact { FirstName = "Albert", LastName = "Einstein", PhoneNumber = "2222-1111" }; await context.AddAsync(contact); await context.SaveChangesAsync(); var changedContact = contact.Clone(); changedContact.FirstName = "Ulbert"; changedContact.LastName = "Oinstein"; changedContact.PhoneNumber = "3333-4444"; var expected = changedContact.Clone(); var controller = new ContactsController(null, context); var result = await controller.Update(changedContact, changedContact.Id); Assert.IsType <NoContentResult>(result); Assert.Single(context.Contacts, c => c.Id == changedContact.Id); var actual = await context.Contacts.FindAsync(expected.Id); Assert.Equal(expected.FirstName, actual.FirstName); Assert.Equal(expected.LastName, actual.LastName); Assert.Equal(expected.PhoneNumber, actual.PhoneNumber); }
public async Task Can_get_all_contactsAsync() { using var factory = new TestDbContextFactory(); using var context = await factory.CreateContextAsync(); context.AddRange( new Contact { FirstName = "Albert", LastName = "Einstein", PhoneNumber = "2222-1111" }, new Contact { FirstName = "Marie", LastName = "Curie", PhoneNumber = "1111-1111" }); await context.SaveChangesAsync(); var controller = new ContactsController(null, context); var result = await controller.Get(); var actual = result.Value as IList <Contact>; Assert.NotNull(actual); Assert.Equal(2, actual.Count); Assert.Equal("Albert", actual[0].FirstName); Assert.Equal("Marie", actual[1].FirstName); }
public async Task Can_delete_a_contact() { using var factory = new TestDbContextFactory(); using var context = await factory.CreateContextAsync(); var contact = new Contact { FirstName = "Albert", LastName = "Einstein", PhoneNumber = "2222-1111" }; var expected = contact.Clone(); await context.AddAsync(contact); await context.SaveChangesAsync(); var controller = new ContactsController(null, context); var result = await controller.Delete(expected.Id); Assert.IsType <NoContentResult>(result); Assert.Empty(context.Contacts); }
public async Task Can_get_one_contact() { using var factory = new TestDbContextFactory(); using var context = await factory.CreateContextAsync(); var contact = new Contact { FirstName = "Albert", LastName = "Einstein", PhoneNumber = "2222-1111" }; var expected = contact.Clone(); context.Add(contact); await context.SaveChangesAsync(); var controller = new ContactsController(null, context); var result = await controller.Get(expected.Id); var actual = result.Value; Assert.NotNull(actual); Assert.Equal(expected.FirstName, actual.FirstName); Assert.Equal(expected.LastName, actual.LastName); Assert.Equal(expected.PhoneNumber, actual.PhoneNumber); }