public Engine( MemstateSettings config, TModel model, IJournalSubscriptionSource subscriptionSource, IJournalWriter journalWriter, long nextRecord) { _lastRecordNumber = nextRecord - 1; _logger = config.CreateLogger <Engine <TModel> >(); _kernel = new Kernel(config, model); _journalWriter = journalWriter; _pendingLocalCommands = new ConcurrentDictionary <Guid, TaskCompletionSource <object> >(); _commandSubscription = subscriptionSource.Subscribe(nextRecord, ApplyRecord); }
public void Setup() { _fakeSubscriptionSource = A.Fake <IJournalSubscriptionSource>(); _fakeSubscription = A.Fake <IJournalSubscription>(); _fakeJournalWriter = A.Fake <IJournalWriter>(); _nextRecordNumber = DateTime.Now.Millisecond; A.CallTo(() => _fakeSubscriptionSource.Subscribe(_nextRecordNumber, A <Action <JournalRecord> > ._)) .Returns(_fakeSubscription); var config = new MemstateSettings(); _engine = new Engine <Object>(config, new Object(), _fakeSubscriptionSource, _fakeJournalWriter, _nextRecordNumber); }
public Engine( MemstateSettings settings, TModel model, IJournalSubscriptionSource subscriptionSource, IJournalWriter journalWriter, long nextRecord) { _lastRecordNumber = nextRecord - 1; _logger = settings.CreateLogger <Engine <TModel> >(); _kernel = new Kernel(settings, model); _settings = settings; _journalWriter = journalWriter; _pendingLocalCommands = new ConcurrentDictionary <Guid, TaskCompletionSource <object> >(); _commandSubscription = subscriptionSource.Subscribe(nextRecord, OnRecordReceived); _metrics = new EngineMetrics(settings); }
public Engine( EngineSettings settings, TModel model, IJournalSubscriptionSource subscriptionSource, IJournalWriter journalWriter, long nextRecord) { _lastRecordNumber = nextRecord - 1; _logger = LogProvider.GetCurrentClassLogger(); _kernel = new Kernel(settings, model); _settings = settings; _journalWriter = journalWriter; _pendingLocalCommands = new ConcurrentDictionary <Guid, TaskCompletionSource <object> >(); _commandSubscription = subscriptionSource.Subscribe(nextRecord, OnRecordReceived); _metrics = Metrics.Provider.GetEngineMetrics(); ExecutionContext.Current = new ExecutionContext(nextRecord); }
public void Constructor_subscribes_to_journal_records_from_correct_recordNumber() { A.CallTo(() => _fakeSubscriptionSource.Subscribe(_nextRecordNumber, A <Action <JournalRecord> > ._)) .MustHaveHappened(Repeated.Exactly.Once); }