public void AdalTestClear()
        {
            var store  = new AdalCacheStorage(s_storageCreationProperties, logger: _logger);
            var store2 = new AdalCacheStorage(s_storageCreationProperties, logger: _logger);

            Assert.IsNotNull(Exception <ArgumentNullException>(() => store.WriteData(null)));

            byte[] data = { 2, 2, 3 };
            store.WriteData(data);

            Assert.IsFalse(store.HasChanged);
            Assert.IsTrue(store2.HasChanged);

            store2.ReadData();

            Enumerable.SequenceEqual(store.ReadData(), data);
            Assert.IsTrue(File.Exists(CacheFilePath));

            store.Clear();
            Assert.IsFalse(store.HasChanged);
            Assert.IsTrue(store2.HasChanged);

            Assert.IsFalse(store.ReadData().Any());
            Assert.IsFalse(store2.ReadData().Any());
            Assert.IsFalse(File.Exists(CacheFilePath));
        }
        public void AdalNewStoreNoFile()
        {
            var store = new AdalCacheStorage(s_storageCreationProperties, logger: _logger);

            Assert.IsFalse(store.HasChanged);
            Assert.IsFalse(store.ReadData().Any());
        }
        public void AdalWriteEmptyData()
        {
            var store = new AdalCacheStorage(s_storageCreationProperties, logger: _logger);

            Assert.ThrowsException <ArgumentNullException>(() => store.WriteData(null));

            store.WriteData(new byte[0]);

            Assert.IsFalse(store.ReadData().Any());
        }
        public void AdalWriteGoodData()
        {
            var store = new AdalCacheStorage(s_storageCreationProperties, logger: _logger);

            Assert.ThrowsException <ArgumentNullException>(() => store.WriteData(null));

            byte[] data  = { 2, 2, 3 };
            byte[] data2 = { 2, 2, 3, 4, 4 };
            store.WriteData(data);
            Assert.IsTrue(Enumerable.SequenceEqual(store.ReadData(), data));

            store.WriteData(data);
            store.WriteData(data2);
            store.WriteData(data);
            store.WriteData(data2);
            Assert.IsTrue(Enumerable.SequenceEqual(store.ReadData(), data2));
        }
コード例 #5
0
        public async Task ThreeRegisteredCachesRemainInSyncTestAsync()
        {
            if (File.Exists(s_storageCreationProperties.CacheFilePath))
            {
                File.Delete(s_storageCreationProperties.CacheFilePath);
            }

            string startString = "Something to start with";
            var    startBytes  = ProtectedData.Protect(Encoding.UTF8.GetBytes(startString), optionalEntropy: null, scope: DataProtectionScope.CurrentUser);
            await File.WriteAllBytesAsync(s_storageCreationProperties.CacheFilePath, startBytes).ConfigureAwait(true);

            var storage = new AdalCacheStorage(s_storageCreationProperties, _logger);
            var cache1  = new AdalCache(storage, _logger);
            var cache2  = new AdalCache(storage, _logger);
            var cache3  = new AdalCache(storage, _logger);

            var storeVersion0 = storage.LastVersionToken;

            var args1 = new TokenCacheNotificationArgs();
            var args2 = new TokenCacheNotificationArgs();
            var args3 = new TokenCacheNotificationArgs();

            cache1.BeforeAccessNotification(args1);
            cache1.HasStateChanged = true;
            cache1.AfterAccessNotification(args1);

            var storeVersion1 = storage.LastVersionToken;

            Assert.AreNotEqual(storeVersion0, storeVersion1);

            cache2.BeforeAccessNotification(args2);
            cache2.AfterAccessNotification(args2);

            cache3.BeforeAccessNotification(args3);
            cache3.AfterAccessNotification(args3);

            var storeVersion2 = storage.LastVersionToken;

            Assert.AreEqual(storeVersion1, storeVersion2);

            File.Delete(s_storageCreationProperties.CacheFilePath);
            File.Delete(s_storageCreationProperties.CacheFilePath + ".version");
        }