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);
        }