public async Task Callback_Should_GetCounters() { var authResponse = new AuthorizationResponse() { access_token = TestDoubles.Token, refresh_token = TestDoubles.RefreshToken }; cacheServiceMock = new Mock <ICacheService>(); secureServiceMock = new Mock <ISecureService>(); counterServiceMock = new Mock <ICounterService>(); cacheServiceMock.Setup(cache => cache.GetValue <AuthorizationResponse>(KEYS.ACCESS_TOKEN)) .Returns(() => null); cacheServiceMock.Setup(cache => cache.SetValue(KEYS.ACCESS_TOKEN, It.IsAny <AuthorizationResponse>())) .Verifiable(); secureServiceMock.Setup(service => service.GetToken(It.IsAny <string>(), It.IsAny <string>())) .Returns(Task.FromResult(Result.Ok(authResponse))); getTokenUseCase = new GetTokenUseCase(secureServiceMock.Object, cacheServiceMock.Object); counterServiceMock.Setup(service => service.GetCounters()) .Returns(Task.FromResult(Result.Ok(new List <Counter>()))); getCountersUseCase = new GetCountersUseCase(counterServiceMock.Object); renewTokenUseCase = new RenewTokenUseCase(secureServiceMock.Object, cacheServiceMock.Object); controller = new AppController( getTokenUseCase, getCountersUseCase, renewTokenUseCase, cacheServiceMock.Object ); var result = await controller.Callback(TestDoubles.Code, TestDoubles.State); Assert.IsNotNull(result); }