public void CanProcessProcessStartedEvents()
        {
            Guid guid1 = Guid.NewGuid();
            Guid guid2 = Guid.NewGuid();
            Guid guid3 = Guid.NewGuid();

            Guid processA = ProcessGuids.ProcessA;
            Guid processB = ProcessGuids.ProcessB;

            ProcessStarted startA1 = new ProcessStarted(guid1, processA);
            ProcessStarted startB1 = new ProcessStarted(guid2, processB);
            ProcessStarted startA2 = new ProcessStarted(guid3, processA);

            IRepository <ProcessTypeCount> repo = GetRepositoryForTest();

            ProcessTypeCounterEventProcessor processor = new ProcessTypeCounterEventProcessor(
                repo
                );

            processor.Handle(startA1);
            processor.Handle(startB1);
            processor.Handle(startA2);

            ProcessTypeCount counterA = repo.Get(processA.ToString());

            Assert.IsNotNull(counterA);
            Assert.AreEqual(2, counterA.Count);

            ProcessTypeCount counterB = repo.Get(processB.ToString());

            Assert.IsNotNull(counterB);
            Assert.AreEqual(1, counterB.Count);
        }
Пример #2
0
        public void CanIncrementProcessTypeCounter()
        {
            Guid             guid     = ProcessGuids.ProcessA;
            ProcessTypeCount instance = new ProcessTypeCount(guid.ToString());

            instance.Increment();
            instance.Increment();

            Assert.AreEqual(2, instance.Count);
        }
Пример #3
0
        public void CanCreateInstanceOfProcessTypeCount()
        {
            Guid             guid     = ProcessGuids.ProcessA;
            ProcessTypeCount instance = new ProcessTypeCount(guid.ToString());

            Assert.IsNotNull(instance);
            Assert.IsInstanceOf <Entity>(instance);
            Assert.AreEqual(guid.ToString(), instance.Id);
            Assert.AreEqual(0, instance.Count);
        }
Пример #4
0
        public void Handle(ProcessStarted @event)
        {
            string           id      = ProcessTypeCount.GetIdFrom(@event.ProcessTypeId);
            ProcessTypeCount counter = GetOrCreateProcessTypeCountEntity(id);

            //execute change / update
            counter.Increment();

            //save - persist?
            repository.Save(counter);
        }
Пример #5
0
        private ProcessTypeCount GetOrCreateProcessTypeCountEntity(string id)
        {
            ProcessTypeCount counter = repository.Get(id);

            if (counter == null)
            {
                counter = new ProcessTypeCount(id);
                repository.Save(counter);
            }

            return(counter);
        }