public void GetAccounts_ShouldReturn_ListOfAccounts()
        {
            // Arrange
            // Read in response data from file
            var dataPath = Path.Combine(_executingLocation, "..", "..", "..", "..", "..", "data",
                                        "mock-accounts-response.json");
            var responseJson = File.ReadAllText(dataPath);

            // Setup mocks
            var mockHttpClient = SetupMockHttpClient($"accounts", responseJson);
            var mockCache      = SetupNullMockCache();

            // Instansiate TrueLayer DataApiClient
            var dataApiClient = new DataApiClient(mockHttpClient.Object, mockCache.Object);

            // Act
            var accounts = dataApiClient.GetAccounts("token").GetAwaiter().GetResult();

            // Assert
            // HttpClient should be called
            mockHttpClient.Verify(m => m.GetData(It.IsAny <Uri>(), It.IsAny <string>()), Times.AtLeastOnce);
            // Cache get should be called
            mockCache.Verify(m => m.GetAsync(It.IsAny <string>(), It.IsAny <CancellationToken>()), Times.AtLeastOnce);
            // Cache set should be called
            mockCache.Verify(
                m => m.SetAsync(It.IsAny <string>(), It.IsAny <byte[]>(), It.IsAny <DistributedCacheEntryOptions>(),
                                It.IsAny <CancellationToken>()), Times.AtLeastOnce);


            Assert.AreEqual(2, accounts.Count);
        }