public async void Service_CanUpdateContact() { // Arrange AddressBook addressBook = new AddressBookBuilder() .AddContact1() .Build(); Contact contactWithUpdateDetails = AddressBookBuilder.BuildContact1(addressBook.Id); IAddressBookRepository repo = Substitute.For <IAddressBookRepository>(); repo.GetContactAsync(contactWithUpdateDetails.Id).Returns(addressBook); AddressBookService target = new AddressBookService(repo); // Act await target.UpdateContactAsync(contactWithUpdateDetails); // Assert - repo called. await repo.Received().SaveAsync(addressBook); Assert.Equal(TrackingState.Modified, addressBook.Contacts.First().Tracking); }