public void Handle(ActivateJob command) { SchedulerJob job = repository.GetById(command.JobId); job.Activate(); repository.Save(job); }
public void HandleActivateJobCommandEventStoreSavesJob() { // Arrange List <ISchedulerTask> tasks = new List <ISchedulerTask>(); ISchedulerTask task = MockRepository.GenerateMock <ISchedulerTask>(); tasks.Add(task); ActivateJob command = new ActivateJob(Guid.NewGuid()); List <Event> events = new List <Event>(); eventStore.Stub(x => x.GetEventsForAggregate(command.JobId)).Return(new List <Event>() { new JobCreated(command.JobId, tasks) }); // Act schedulerJobCommandHandlers.Handle(command); // Assert eventStore.AssertWasCalled(x => x.SaveEvents( Arg <Guid> .Matches(s => s.Equals(command.JobId)), Arg <IEnumerable <Event> > .Matches(s => s.Count() == 1 && ((JobActivated)s.ElementAt(0)).JobId.Equals(command.JobId)), Arg <int> .Matches(s => s == 2) )); }