public void dependencies_are_incremented_as_relationships_are_created() { var stateTracker = new EntityStateCache(); var stateFactory = new Mock <IEntityStateCacheFactory>(); stateFactory.Setup(x => x.Create()).Returns(stateTracker); var metadataFactory = new AttributeMetadataFactory(new NullLogger()); var proxyFactory = new DynamicProxyFactory(metadataFactory, new NullLogger()); var queryExecutorFactory = new Mock <IQueryExecutorFactory>(); var repositoryFactory = new RepositoryFactory(proxyFactory); repositoryFactory.Register <Organisation>(session => new Mapper <Organisation>(session, metadataFactory)); repositoryFactory.Register <AccessGroup>(session => new Mapper <AccessGroup>(session, metadataFactory)); repositoryFactory.Register <Site>(session => new Mapper <Site>(session, metadataFactory)); repositoryFactory.Register <Person>(session => new Mapper <Person>(session, metadataFactory)); var sessionFactory = new GraphSessionFactory(queryExecutorFactory.Object, repositoryFactory, stateFactory.Object, proxyFactory); using (var session = sessionFactory.OpenSession()) { var organisation = session.Create(new Organisation { Id = "organisation" }); var site = session.Create(new Site { Id = "site" }); var accessGroup = session.Create(new AccessGroup { Id = "accessGroup" }); var person = session.Create(new Person { Id = "person" }); organisation.Add(site); organisation.Add(accessGroup); site.Add(accessGroup); person.Add(organisation); person.Add(site); var organisationMetadata = stateTracker.Get(organisation); var siteMetadata = stateTracker.Get(site); var accessGroupMetadata = stateTracker.Get(accessGroup); var personMetadata = stateTracker.Get(person); Assert.Equal(1, accessGroupMetadata.Dependencies.Sequence); Assert.Equal(2, siteMetadata.Dependencies.Sequence); Assert.Equal(3, organisationMetadata.Dependencies.Sequence); Assert.Equal(4, personMetadata.Dependencies.Sequence); } }
public static IGraphSessionFactory CreateTestSessionFactory(IRepositoryFactory repositoryFactory) { var logger = Logger(); var metadataFactory = MetadataFactory(logger); var proxyFactory = ProxyFactory(metadataFactory, logger); var entityStateCacheFactory = EntityStateCacheFactory(); var queryExecutorFactory = QueryExecutorFactory(); var factory = new GraphSessionFactory(queryExecutorFactory, repositoryFactory, entityStateCacheFactory, proxyFactory); return(factory); }
public static IGraphSessionFactory CreateTestSessionFactory(params IMapper[] mappers) { var logger = Logger(); var metadataFactory = MetadataFactory(logger); var proxyFactory = ProxyFactory(metadataFactory, logger); var entityStateCacheFactory = EntityStateCacheFactory(); var queryExecutorFactory = QueryExecutorFactory(); var repositoryFactory = new RepositoryFactory(proxyFactory); foreach (var mapper in mappers) { repositoryFactory.Register(session => mapper, mapper.Type); } var factory = new GraphSessionFactory(queryExecutorFactory, repositoryFactory, entityStateCacheFactory, proxyFactory); return(factory); }