Exemplo n.º 1
0
        protected override void DoSetUp()
        {
            _eventStore            = new MongoDbEventStore(MongoHelper.InitializeTestDatabase(), "Events");
            _domainEventSerializer = new JsonDomainEventSerializer();

            _domainTypeNameMapper = new DefaultDomainTypeNameMapper();

            var snapshotCache = new InMemorySnapshotCache();

            _realAggregateRootRepository    = new DefaultAggregateRootRepository(_eventStore, _domainEventSerializer, _domainTypeNameMapper);
            _cachingAggregateRootRepository = new CachingAggregateRootRepositoryDecorator(_realAggregateRootRepository, snapshotCache, _eventStore, _domainEventSerializer);
        }
        // ReSharper disable UnusedMember.Local
        void RunHashCodeTestWith <TAggregateRoot>() where TAggregateRoot : AggregateRoot, new()
        {
            var instance = new TAggregateRoot {
                Id = "root_id", GlobalSequenceNumberCutoff = 0
            };

            var cache = new InMemorySnapshotCache();

            cache.PutCloneToCache(instance);

            var rootInfo = cache.GetCloneFromCache("root_id", 0);

            Assert.That(rootInfo, Is.Not.Null, "Expected to have found a root in the cache!");

            var frozenInstance = rootInfo;

            cache.PutCloneToCache(frozenInstance);

            Assert.That(frozenInstance.GetHashCode(), Is.EqualTo(instance.GetHashCode()));
        }