public void Service_CannotAddNonUniqueContact_WillThrow() { // Arrange AddressBook addressBook = new AddressBookBuilder() .AddContact3() .Build(); Contact contact = AddressBookBuilder.BuildContact3(addressBook.Id); IAddressBookRepository repo = Substitute.For <IAddressBookRepository>(); repo.GetContactAsync(contact.Name, contact.Address).Returns(addressBook); AddressBookService target = new AddressBookService(repo); // Act, Assert Assert.ThrowsAsync <ArgumentException>(() => target.AddContactAsync(contact)); }
public async void Service_CanAddUniqueContact() { // Arrange AddressBook addressBook = new AddressBookBuilder() .Build(); Contact contact = AddressBookBuilder.BuildContact4(addressBook.Id); IAddressBookRepository repo = Substitute.For <IAddressBookRepository>(); repo.GetContactAsync(contact.Name, contact.Address).Returns(addressBook); AddressBookService target = new AddressBookService(repo); // Act await target.AddContactAsync(contact); // Assert - repo called. await repo.Received().SaveAsync(addressBook); Assert.Contains(contact, addressBook.Contacts); }