Esempio n. 1
0
        public async Task Remove_WhenAnEntityIsDeleted_ThenItCannotBeRetrieved()
        {
            // arrange
            var firstEntityType1 = new TestType1Entity {
                Name = "test1_1", Id = "1"
            };
            var secondEntityType1 = new TestType1Entity {
                Name = "test1_2", Id = "2"
            };
            var entityType2 = new TestType2Entity {
                Name = "test2", Id = "1"
            };

            await _cacheType1.Set(new[] { firstEntityType1, secondEntityType1 });

            await _cacheType2.Set(new[] { entityType2 });

            // act
            await _cacheType1.Remove(firstEntityType1.Id);

            var deletedEntityType1Found = await _cacheType1.Get(firstEntityType1.Id);

            var secondEntityType1Found = await _cacheType1.Get(secondEntityType1.Id);

            var entityType2Found = await _cacheType2.Get(entityType2.Id);

            // assert
            Assert.That(deletedEntityType1Found, Is.Null);
            Assert.That(secondEntityType1Found.Name, Is.EqualTo(secondEntityType1.Name));
            Assert.That(entityType2Found.Name, Is.EqualTo(entityType2.Name));
        }
Esempio n. 2
0
        public async Task GetAll_WhenAnEntityOfDifferentTypeAreAdded_ThenAllCanBeRetrieved()
        {
            // arrange
            var firstEntityType1 = new TestType1Entity {
                Name = "test1_1", Id = "1"
            };
            var secondEntityType1 = new TestType1Entity {
                Name = "test1_2", Id = "2"
            };
            var firstEntityType2 = new TestType2Entity {
                Name = "test2_1", Id = "1"
            };
            var secondEntityType2 = new TestType2Entity {
                Name = "test2_2", Id = "2"
            };


            await _cacheType1.AddOrUpdate(firstEntityType1);

            await _cacheType1.AddOrUpdate(secondEntityType1);

            await _cacheType2.AddOrUpdate(firstEntityType2);

            await _cacheType2.AddOrUpdate(secondEntityType2);


            // act
            var retrievedAllType1Entities = (await _cacheType1.GetAll()).ToArray();
            var retrievedAllType2Entities = (await _cacheType2.GetAll()).ToArray();

            // assert
            Assert.That(retrievedAllType1Entities, Has.Length.EqualTo(2));
            Assert.That(retrievedAllType2Entities, Has.Length.EqualTo(2));
            Assert.That(retrievedAllType1Entities.Select(item => item.Name),
                        Contains.Item(firstEntityType1.Name).And.Contains(secondEntityType1.Name));
            Assert.That(retrievedAllType2Entities.Select(item => item.Name),
                        Contains.Item(firstEntityType2.Name).And.Contains(secondEntityType2.Name));
        }
Esempio n. 3
0
        public async Task Flush_WhenAnEntityOfType1AndType2AreAdded_ThenFlushed_ThenStoreMustBeEmpty()
        {
            // arrange
            var entity1 = new TestType1Entity {
                Name = "test1", Id = "1"
            };
            var entity2 = new TestType2Entity {
                Name = "test2", Id = "1"
            };

            await _cacheType1.Set(new[] { entity1 });

            await _cacheType2.Set(new[] { entity2 });

            // act (flush type 1)
            await _cacheType1.Flush();

            var entity1Found = await _cacheType1.Get(entity1.Id);

            var entity2Found = await _cacheType2.Get(entity2.Id);

            // assert
            Assert.That(entity1Found, Is.Null);
            Assert.That(entity2Found.Name, Is.EqualTo(entity2.Name));

            // act (flush type 2)
            await _cacheType2.Flush();

            entity1Found = await _cacheType1.Get(entity1.Id);

            entity2Found = await _cacheType2.Get(entity2.Id);

            // assert
            Assert.That(entity1Found, Is.Null);
            Assert.That(entity2Found, Is.Null);
        }