public void The_method_Reborn_should_work_with_async_method() { // Arrange var wait = SetUp(nameof(IUserService.GetByIdAsync)); var phoenix = new Phoenix(_invocation, CacheInfo); // Action phoenix.Reborn(); // Assert Assert.IsTrue(wait.WaitOne(_waitTime)); Global.CacheStoreProvider.GetAsyncCacheStore(StoreId).Received(1) .SetAsync("cacheKey", Arg.Is <object>(obj => _id.Equals(((CacheItem)obj).Data)), Arg.Any <DateTimeOffset>()); }
public void The_method_Reborn_should_dispose_and_return_DisposingPhoenix_if_cannot_create_new_cacheItem() { // Arrange var svc = Substitute.For <IUserService>(); svc.GetById(Arg.Any <Guid>()).Returns(null); var wait = SetUp(nameof(IUserService.GetById), svc); var phoenix = new Phoenix(_invocation, CacheInfo); // Action phoenix.Reborn(); Assert.IsTrue(wait.WaitOne(_waitTime)); // Assert var storeId = Global.CacheStoreProvider.GetAsyncCacheStore(StoreId); storeId.Received(1).RemoveAsync("cacheKey"); }
public void The_method_Reborn_should_throw_if_error_and_retry_after_1_second() { // Arrange var svc = Substitute.For <IUserService>(); var wait = SetUp(nameof(IUserService.GetById), svc); svc.When(x => x.GetById(Arg.Any <Guid>())).Do(c => { wait.Set(); throw new Exception(); }); var phoenix = new Phoenix(_invocation, CacheInfo); // Action phoenix.Reborn(); Assert.IsTrue(wait.WaitOne(_waitTime)); wait.Reset(); Assert.IsTrue(wait.WaitOne(_waitTime)); // Assert svc.Received(2).GetById(Arg.Any <Guid>()); }