public void SetUp() { Current = new Tenant(new TenantATestSettings()); var connectionString = ConfigurationManager.ConnectionStrings["eventstore"].ConnectionString; var url = new MongoUrl(connectionString); var client = new MongoClient(url); _db = client.GetDatabase(url.DatabaseName); client.DropDatabase(url.DatabaseName); _identityConverter = new IdentityManager(new InMemoryCounterService()); _identityConverter.RegisterIdentitiesFromAssembly(GetType().Assembly); MongoFlatIdSerializerHelper.Initialize(_identityConverter); var loggerFactory = Substitute.For <ILoggerFactory>(); loggerFactory.Create(Arg.Any <Type>()).Returns(NullLogger.Instance); _eventStore = new EventStoreFactory(loggerFactory).BuildEventStore(connectionString); _sut = CreateRepository(); _container = new WindsorContainer(); _container.AddFacility <TypedFactoryFacility>(); _container.Register(Component.For <IRepositoryExFactory>().AsFactory()); _container.Register(Component .For <IRepositoryEx>() .UsingFactoryMethod(() => CreateRepository()) .LifestyleTransient()); _aggregateCachedRepositoryFactory = new AggregateCachedRepositoryFactory( _container.Resolve <IRepositoryExFactory>(), false); }
private static Version GetVersion(string repoOrWorkDir, string tagPrefix, MajorMinor minMajorMinor, string buildMeta, Verbosity verbosity) { var log = new Logger(verbosity); if (log.IsDebugEnabled) { log.Debug($"MinVer {informationalVersion}."); } if (!RepositoryEx.TryCreateRepo(repoOrWorkDir, out var repo)) { var version = new Version(minMajorMinor?.Major ?? 0, minMajorMinor?.Minor ?? 0, buildMeta); log.WarnIsNotAValidRepositoryOrWorkDirUsingDefaultVersion(repoOrWorkDir, version); return(version); } try { return(Versioner.GetVersion(repo, tagPrefix, minMajorMinor, buildMeta, log)); } finally { repo.Dispose(); } }
public void SetUp() { _db.Drop(); ConfigureEventStore(); Repository = new RepositoryEx( _eventStore, new AggregateFactory(), new AlwaysConflict(), _identityConverter, _logger ); }
private RepositoryEx CreateRepository() { var repositoryEx = new RepositoryEx( _eventStore, _aggregateFactory, new ConflictDetector(), _identityConverter, NSubstitute.Substitute.For <NEventStore.Logging.ILog>() ); repositoryEx.SnapshotManager = Substitute.For <ISnapshotManager>(); repositoryEx.SnapshotManager.Load("", 0, typeof(SampleAggregate)).ReturnsForAnyArgs <ISnapshot>((ISnapshot)null); return(repositoryEx); }
protected void ConfigureEventStore() { var loggerFactory = Substitute.For <ILoggerFactory>(); loggerFactory.Create(Arg.Any <Type>()).Returns(NullLogger.Instance); var factory = new EventStoreFactory(loggerFactory); _eventStore = factory.BuildEventStore(_eventStoreConnectionString); Repository = new RepositoryEx( _eventStore, new AggregateFactory(), new ConflictDetector(), _identityConverter ); }
public void profile_snapshot_opt_out() { var sampleAggregateId = new SampleAggregateId(1); var aggregate = TestAggregateFactory.Create <SampleAggregate, SampleAggregate.State>(new SampleAggregate.State(), sampleAggregateId); aggregate.Create(); _sut.Save(aggregate, Guid.NewGuid(), null); int max = 20; for (int t = 1; t < max; t++) { aggregate.Touch(); _sut.Save(aggregate, Guid.NewGuid(), null); if (t == max - 5) { var snap = ((ISnapshotable)aggregate).GetSnapshot(); _eventStore.Advanced.AddSnapshot(new Snapshot("Jarvis", sampleAggregateId.AsString(), aggregate.Version, snap)); } } SnapshotsSettings.OptOut(typeof(SampleAggregate)); var sw = new Stopwatch(); sw.Start(); for (int c = 1; c <= 100; c++) { using (var repo = new RepositoryEx( _eventStore, _aggregateFactory, new ConflictDetector(), _identityConverter, NSubstitute.Substitute.For <NEventStore.Logging.ILog>())) { var loaded = repo.GetById <SampleAggregate>(sampleAggregateId); } } sw.Stop(); SnapshotsSettings.ClearOptOut(); Debug.WriteLine("Read time {0} ms", sw.ElapsedMilliseconds); }
public void save_stream() { var eventStore = _factory.BuildEventStore(_connectionString); var repo = new RepositoryEx( eventStore, new AggregateFactory(), new ConflictDetector(), new IdentityManager(new InMemoryCounterService()) ); var aggregate = TestAggregateFactory.Create <SampleAggregate, SampleAggregate.State>(new SampleAggregate.State(), new SampleAggregateId(1)); aggregate.Create(); repo.Save( aggregate, new Guid("{7A63A302-5575-4148-A86D-4421AAFF2019}"), null ); }
public void SetUp() { Current = new Tenant(new TenantATestSettings()); var connectionString = ConfigurationManager.ConnectionStrings["eventstore"].ConnectionString; var url = new MongoUrl(connectionString); var client = new MongoClient(url); _db = client.GetServer().GetDatabase(url.DatabaseName); _db.Drop(); _identityConverter = new IdentityManager(new InMemoryCounterService()); _identityConverter.RegisterIdentitiesFromAssembly(GetType().Assembly); var loggerFactory = Substitute.For <ILoggerFactory>(); loggerFactory.Create(Arg.Any <Type>()).Returns(NullLogger.Instance); _eventStore = new EventStoreFactory(loggerFactory).BuildEventStore(connectionString); _repository = CreateRepository(); }
private static Version GetVersion(string repoOrWorkDir, string tagPrefix, VersionPart autoIncrement, ILogger log) { if (!RepositoryEx.TryCreateRepo(repoOrWorkDir, out var repo)) { var version = new Version(); log.Warn(1001, $"'{repoOrWorkDir}' is not a valid repository or working directory. Using default version {version}."); return(version); } try { return(repo.GetVersion(tagPrefix, autoIncrement, log)); } finally { repo.Dispose(); } }