public async Task AddNewCustomerSuccessTest() { ISmsService smsService = A.Fake <ISmsService>(); A.CallTo(() => smsService.SendSms(A <string> .Ignored, A <string> .Ignored, A <CancellationToken> .Ignored)) .Returns(Task.CompletedTask); using (CrmPortalTestEnv testEnv = new CrmPortalTestEnv(new TestEnvironmentArgs { AdditionalDependencies = (dependencyManager, services) => { dependencyManager.RegisterInstance(smsService); } })) { var token = await testEnv.Server.LoginWithCredentials("User1", "P@ssw0rd", "CrmPortal", "secret"); ICustomersController customersControllerClient = testEnv.Server.BuildRefitClient <ICustomersController>(token); Customer customer = await customersControllerClient.AddNewCustomer(new Customer { FirstName = "C1", LastName = "C1", NationalCode = "1270340050", PhoneNo = "09123456789" }, CancellationToken.None); Assert.AreNotEqual(Guid.Empty, customer.Id); A.CallTo(() => smsService.SendSms("09123456789", "Welcome C1 C1", A <CancellationToken> .Ignored)) .MustHaveHappenedOnceExactly(); CustomersController customersController = TestDependencyManager.CurrentTestDependencyManager .Objects.OfType <CustomersController>() .Single(); A.CallTo(() => customersController.AddNewCustomer(A <Customer> .That.Matches(c => c.FirstName == "C1" && c.LastName == "C1"), A <CancellationToken> .Ignored)) .MustHaveHappenedOnceExactly(); } }