예제 #1
0
        public void CanClear()
        {
            IExpiryProvider expiryProvider = Substitute.For <IExpiryProvider>();
            IStorage        storage        = new InMemoryStorage(expiryProvider);

            storage.AddOrUpdate("first", DateTime.MaxValue, new byte[0]);
            storage.AddOrUpdate("second", DateTime.MaxValue, new byte[0]);

            storage.Dispose();
            Assert.Equal(storage.Count, 0);
        }
예제 #2
0
        public void Contains_ReturnsTrueWhenDataExists()
        {
            IExpiryProvider expiryProvider = Substitute.For <IExpiryProvider>();
            IStorage        storage        = new InMemoryStorage(expiryProvider);

            string key = "lorem ipsum";

            storage.AddOrUpdate(key, DateTime.MaxValue, new byte[0]);
            storage.AddOrUpdate("second", DateTime.MaxValue, new byte[0]);

            bool result = storage.Contains(key);

            Assert.True(result);
        }
예제 #3
0
        public void TryRemove_RemovesEntryFromStorage()
        {
            byte[]       package   = Encoding.UTF8.GetBytes("lorem ipsum");
            const string firstKey  = "key1";
            const string secondKey = "key2";

            IExpiryProvider expiryProvider = Substitute.For <IExpiryProvider>();
            IStorage        storage        = new InMemoryStorage(expiryProvider);

            storage.AddOrUpdate(firstKey, DateTime.MaxValue, package);
            storage.AddOrUpdate(secondKey, DateTime.MaxValue, package);

            bool deleted = storage.TryRemove(firstKey);

            Assert.True(deleted);
            Assert.Equal(storage.Count, 1);
        }
예제 #4
0
        public void CanUpdateExistingObject()
        {
            string          key            = "key";
            string          first          = "first";
            string          second         = "second";
            IExpiryProvider expiryProvider = Substitute.For <IExpiryProvider>();
            IStorage        storage        = new InMemoryStorage(expiryProvider);

            byte[] firstObject  = Encoding.UTF8.GetBytes(first);
            byte[] secondObject = Encoding.UTF8.GetBytes(second);

            storage.AddOrUpdate(key, DateTime.MaxValue, firstObject);
            storage.AddOrUpdate(key, DateTime.MaxValue, secondObject);

            byte[] objFromBytes;
            bool   success         = storage.TryGet(key, out objFromBytes);
            string stringFromBytes = Encoding.UTF8.GetString(objFromBytes);

            Assert.True(success);
            Assert.Equal(stringFromBytes, second);
        }
예제 #5
0
        public void CanInsertAndGetObject()
        {
            string          key            = "key";
            string          objectWord     = "lorem ipsum";
            IExpiryProvider expiryProvider = Substitute.For <IExpiryProvider>();
            IStorage        storage        = new InMemoryStorage(expiryProvider); storage.AddOrUpdate(key, DateTime.MaxValue, Encoding.UTF8.GetBytes(objectWord));

            byte[] objFromBytes;
            bool   success         = storage.TryGet(key, out objFromBytes);
            string stringFromBytes = Encoding.UTF8.GetString(objFromBytes);

            Assert.True(success);
            Assert.Equal(objectWord, stringFromBytes);
        }