public void Test_OnBeforeDelete() { CacheInvalidationEventTarget target; MockRepository mockRepository; IEnumerable <ICacheInvalidator> cacheInvalidators; Mock <ICacheInvalidator> mockCacheInvalidator; IEntity[] entities; const int numEntities = 3; entities = new IEntity[numEntities]; for (int i = 0; i < numEntities; i++) { entities[i] = Entity.Create <Resource>().As <Entity>(); entities[i].Save(); } mockRepository = new MockRepository(MockBehavior.Strict); mockCacheInvalidator = mockRepository.Create <ICacheInvalidator>(); mockCacheInvalidator.Setup(ci => ci.OnEntityChange(It.Is <IList <IEntity> >(x => x.SequenceEqual(entities)), InvalidationCause.Delete, It.IsAny <Func <long, EntityChanges> >())); cacheInvalidators = new List <ICacheInvalidator> { mockCacheInvalidator.Object }; target = new CacheInvalidationEventTarget(cacheInvalidators); target.OnBeforeDelete(entities, null); mockRepository.VerifyAll(); }
public void Test_OnBeforeSave() { CacheInvalidationEventTarget target; MockRepository mockRepository; IEnumerable <ICacheInvalidator> cacheInvalidators; Mock <ICacheInvalidator> mockCacheInvalidator; IEntity[] entities; const int numEntities = 3; entities = new IEntity[numEntities]; for (int i = 0; i < numEntities; i++) { entities[i] = Entity.Create <Resource>().As <Entity>(); entities[i].Save(); } mockRepository = new MockRepository(MockBehavior.Strict); mockCacheInvalidator = mockRepository.Create <ICacheInvalidator>(); mockCacheInvalidator.SetupGet(ci => ci.Name).Returns("foo"); cacheInvalidators = new List <ICacheInvalidator> { mockCacheInvalidator.Object }; target = new CacheInvalidationEventTarget(cacheInvalidators); Assert.That(target.OnBeforeSave(entities, new Dictionary <string, object>()), Is.False, "OnBeforeSave returned incorrect value"); mockRepository.VerifyAll(); }
public void Test_OnAfterDelete() { CacheInvalidationEventTarget target; MockRepository mockRepository; IEnumerable <ICacheInvalidator> cacheInvalidators; Mock <ICacheInvalidator> mockCacheInvalidator; IEntity[] entities; const int numEntities = 3; entities = new IEntity[numEntities]; for (int i = 0; i < numEntities; i++) { entities[i] = Entity.Create <Resource>().As <Entity>(); entities[i].Save(); } mockRepository = new MockRepository(MockBehavior.Strict); mockCacheInvalidator = mockRepository.Create <ICacheInvalidator>(); cacheInvalidators = new List <ICacheInvalidator> { mockCacheInvalidator.Object }; target = new CacheInvalidationEventTarget(cacheInvalidators); target.OnAfterDelete(entities.Select(e => e.Id), null); mockRepository.VerifyAll(); }
public void Test_Creation() { CacheInvalidationEventTarget target; target = new CacheInvalidationEventTarget(); Assert.That(target, Has.Property("Invalidators").InstanceOf <IEnumerable <ICacheInvalidator> >() .And.Property("Invalidators").Not.Null); }
public void Test_Creation_SuppliedFactory() { CacheInvalidationEventTarget target; IEnumerable <ICacheInvalidator> cacheInvalidators; cacheInvalidators = new List <ICacheInvalidator>(); target = new CacheInvalidationEventTarget(cacheInvalidators); Assert.That(target, Has.Property("Invalidators").EqualTo(cacheInvalidators)); }
public void Test_OnAfterSave() { CacheInvalidationEventTarget target; MockRepository mockRepository; IEnumerable <ICacheInvalidator> cacheInvalidators; Mock <ICacheInvalidator> mockCacheInvalidator; IEntity[] entities; const int numEntities = 3; entities = new IEntity[numEntities]; for (int i = 0; i < numEntities; i++) { entities[i] = Entity.Create <Resource>().As <Entity>(); entities[i].Save(); } mockRepository = new MockRepository(MockBehavior.Strict); mockCacheInvalidator = mockRepository.Create <ICacheInvalidator>(); mockCacheInvalidator.SetupGet(ci => ci.Name).Returns("foo"); mockCacheInvalidator.Setup(ci => ci.OnEntityChange(It.Is <IList <IEntity> >(x => x.SequenceEqual(entities)), InvalidationCause.Save, null)); cacheInvalidators = new List <ICacheInvalidator> { mockCacheInvalidator.Object }; target = new CacheInvalidationEventTarget(cacheInvalidators); using (var ctx = DatabaseContext.GetContext(true, preventPostSaveActionsPropagating: true)) { target.OnAfterSave(entities, new Dictionary <string, object>()); ctx.CommitTransaction(); } mockRepository.VerifyAll(); }