public void Handle(ProcessStarted @event) { string id = DailyActivity.GetIdFrom(@event.CreatedAt); DailyActivity activity = GetOrCreateActivityEntity(id); //execute change / update activity.AddProcess(@event.ProcessId, @event.CreatedAt); //save - persist? repository.Save(activity); }
public void Handle(ProcessEnded @event) { string id = DailyActivity.GetIdFrom(@event.CreatedAt); DailyActivity activity = repository.Get(id); //should exist for this event if (activity != null) { //execute change / update activity.EndProcess(@event.ProcessId, @event.EndTime, @event.WithError); //save - persist? repository.Save(activity); } }
public void AddingAProcessIncrementsActiveCounter() { string id = DailyActivity.GetIdFrom(DateTime.UtcNow); DailyActivity activity = new DailyActivity(id); Guid processId = Guid.NewGuid(); DateTime startedAt = DateTime.UtcNow; activity.AddProcess(processId, startedAt); Assert.AreEqual(1, activity.ActiveProcesses); Assert.AreEqual(1, activity.TotalProcessCount); Assert.AreEqual(0, activity.CompletionCount); Assert.AreEqual(0, activity.CompletedWithErrorCount); }
public void CompletingAnExistingProcessDecrementsActiveCounter_ErrorCountIsNotZero() { string id = DailyActivity.GetIdFrom(DateTime.UtcNow); DailyActivity activity = new DailyActivity(id); Guid processId = Guid.NewGuid(); DateTime startedAt = DateTime.UtcNow.AddSeconds(-10); activity.AddProcess(processId, startedAt); DateTime endedAt = DateTime.UtcNow; activity.EndProcess(processId, endedAt, true); Assert.AreEqual(0, activity.ActiveProcesses); Assert.AreEqual(1, activity.TotalProcessCount); Assert.AreEqual(1, activity.CompletionCount); Assert.AreEqual(1, activity.CompletedWithErrorCount); }
public void CanCreateIdKeyFromDate(string expectedKey, int year, int month, int day, int hour, int min, int sec) { DateTime date = new DateTime(year, month, day, hour, min, sec); Assert.AreEqual(expectedKey, DailyActivity.GetIdFrom(date)); }