public void ClearCache_AppCache_Test()
        {
            var accessor = new InMemoryPartitionedAppTokenCacheAccessor(new NullLogger(), null);

            accessor.SaveAccessToken(TokenCacheHelper.CreateAccessTokenItem());

            Assert.AreEqual(1, accessor.AccessTokenCacheDictionary.Count);

            accessor.Clear();

            Assert.AreEqual(0, accessor.AccessTokenCacheDictionary.Count);
        }
        public void HasAccessOrRefreshTokens_AppCache_Test()
        {
            var accessor = new InMemoryPartitionedAppTokenCacheAccessor(new NullLogger(), null);

            // Assert: false with empty collection
            Assert.IsFalse(accessor.HasAccessOrRefreshTokens());

            accessor.SaveAccessToken(TokenCacheHelper.CreateAccessTokenItem(isExpired: true));

            // Assert: false with expired token
            Assert.IsFalse(accessor.HasAccessOrRefreshTokens());

            accessor.SaveAccessToken(TokenCacheHelper.CreateAccessTokenItem());

            // Assert: true with valid token
            Assert.IsTrue(accessor.HasAccessOrRefreshTokens());
        }
        public void NoSupportedMethods_AppCache_Test()
        {
            var accessor = new InMemoryPartitionedAppTokenCacheAccessor(new NullLogger(), null);

            Assert.ThrowsException <NotSupportedException>(() =>
                                                           accessor.SaveRefreshToken(TokenCacheHelper.CreateRefreshTokenItem())
                                                           );

            Assert.ThrowsException <NotSupportedException>(() =>
                                                           accessor.SaveIdToken(TokenCacheHelper.CreateIdTokenCacheItem())
                                                           );

            Assert.ThrowsException <NotSupportedException>(() =>
                                                           accessor.SaveAccount(TokenCacheHelper.CreateAccountItem())
                                                           );

            Assert.ThrowsException <NotSupportedException>(() =>
                                                           accessor.GetIdToken(TokenCacheHelper.CreateAccessTokenItem())
                                                           );

            Assert.ThrowsException <NotSupportedException>(() =>
                                                           accessor.GetAccount(TokenCacheHelper.CreateAccountItem().GetKey())
                                                           );

            Assert.ThrowsException <NotSupportedException>(() =>
                                                           accessor.DeleteRefreshToken(TokenCacheHelper.CreateRefreshTokenItem())
                                                           );

            Assert.ThrowsException <NotSupportedException>(() =>
                                                           accessor.DeleteIdToken(TokenCacheHelper.CreateIdTokenCacheItem())
                                                           );

            Assert.ThrowsException <NotSupportedException>(() =>
                                                           accessor.DeleteAccount(TokenCacheHelper.CreateAccountItem())
                                                           );

            Assert.AreEqual(0, accessor.GetAllRefreshTokens().Count);
            Assert.AreEqual(0, accessor.GetAllIdTokens().Count);
            Assert.AreEqual(0, accessor.GetAllAccounts().Count);
        }