public virtual void SetUp()
 {
     _projectionDataService = _projectionDataService.Fake();
     _syncLockFactory       = _syncLockFactory.Fake();
     _taskScheduler         = TaskScheduler.FromCurrentSynchronizationContext();
     _sut = new UpdatingStateFactory <Department>(_projectionDataService, _syncLockFactory, _taskScheduler);
 }
 public virtual void SetUp()
 {
     _projectionSystem      = _projectionSystem.Fake();
     _projectionDataService = _projectionDataService.Fake();
     _syncLockFactory       = _syncLockFactory.Fake();
     _sut = new CreatingState <Department>(_projectionSystem, _projectionDataService, _syncLockFactory);
 }
 public virtual void SetUp()
 {
     _projectionSystem      = _projectionSystem.Fake();
     _projectionDataService = _projectionDataService.Fake();
     _syncLockFactory       = _syncLockFactory.Fake();
     _taskScheduler         = new DeterministicTaskScheduler();
     _sut = new UpdatingState <Department>(_projectionSystem, _projectionDataService, _syncLockFactory, _taskScheduler);
 }
 public CreatingStateFactory(IProjectionDataService <TItem> projectionDataService, ISyncLockFactory syncLockFactory)
 {
     if (projectionDataService == null)
     {
         throw new ArgumentNullException(nameof(projectionDataService));
     }
     if (syncLockFactory == null)
     {
         throw new ArgumentNullException(nameof(syncLockFactory));
     }
     _projectionDataService = projectionDataService;
     _syncLockFactory       = syncLockFactory;
 }
Exemplo n.º 5
0
 public UpdatingStateFactory(IProjectionDataService <TItem> projectionDataService, ISyncLockFactory syncLockFactory, TaskScheduler taskScheduler)
 {
     if (projectionDataService == null)
     {
         throw new ArgumentNullException(nameof(projectionDataService));
     }
     if (syncLockFactory == null)
     {
         throw new ArgumentNullException(nameof(syncLockFactory));
     }
     if (taskScheduler == null)
     {
         throw new ArgumentNullException(nameof(taskScheduler));
     }
     _projectionDataService = projectionDataService;
     _syncLockFactory       = syncLockFactory;
     _taskScheduler         = taskScheduler;
 }
Exemplo n.º 6
0
        public static IProjectionSystem <Department> Create(TimeSpan expiration, IProjectionDataService <Department> projectionDataService, ISleeper sleeper)
        {
            var systemClock   = new RealSystemClock();
            var traceLogger   = new ConsoleTraceLogger(systemClock);
            var taskScheduler = TaskScheduler.FromCurrentSynchronizationContext();
            var createProjectionLockFactory = new RealSyncLockFactory(new SemaphoreSlim(1));
            var updateProjectionLockFactory = new RealSyncLockFactory(new SemaphoreSlim(1));
            var getProjectionLockFactory    = new RealSyncLockFactory(new SemaphoreSlim(1));
            var transitionGuardFactory      = new StateTransitionGuardFactory();
            var timeoutProvider             = new ValidStateTimeoutProvider <Department>(expiration);

            return(new ProjectionSystem <Department>(
                       new LoggingStateTransitionOrchestrator <Department>(new StateTransitionOrchestrator <Department>(transitionGuardFactory), traceLogger),
                       new UninitialisedStateFactory <Department>(),
                       new CreatingStateFactory <Department>(projectionDataService, createProjectionLockFactory),
                       new ValidStateFactory <Department>(timeoutProvider, sleeper, taskScheduler),
                       new ExpiredStateFactory <Department>(),
                       new UpdatingStateFactory <Department>(projectionDataService, updateProjectionLockFactory, taskScheduler),
                       getProjectionLockFactory));
        }