Esempio n. 1
0
        public void SetUp()
        {
            grinderContextMock = TestUtils.CreateContextMock();
            loggerMock         = TestUtils.CreateLoggerMock();
            grinderContextMock.Setup(c => c.GetLogger(typeof(VerificationWorker))).Returns(loggerMock.Object);
            grinderContextMock.Setup(c => c.CreateTest(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <IGrinderTest>())).Returns((int i, string s, IGrinderTest t) => t);
            var processContext = TestUtils.CreateProcessContext(null, null, null, grinderContextMock.Object);

            worker = new VerificationWorker {
                ProcessContext = processContext, GrinderContext = grinderContextMock.Object
            };
        }
Esempio n. 2
0
        private bool Run(CommandProcessorContext context, int writers, int readers, int events)
        {
            context.IsAsync();

            var created = new AutoResetEvent(false);
            var done    = new AutoResetEvent(false);

            var coordinator = new Coordinator(context, Producers, events, created, done);

            coordinator.Start();

            var verificationWorkers = new VerificationWorker[readers];

            for (int i = 0; i < verificationWorkers.Length; i++)
            {
                verificationWorkers[i] = new VerificationWorker(string.Format("verifier {0}", i),
                                                                coordinator,
                                                                context.Client.Options.ReadWindow);
            }
            var writerWrokers = new WriteWorker[writers];

            for (int i = 0; i < writerWrokers.Length; i++)
            {
                writerWrokers[i] = new WriteWorker(string.Format("writer {0}", i),
                                                   coordinator,
                                                   context.Client.Options.WriteWindow);
            }

            foreach (var worker in verificationWorkers)
            {
                worker.Start();
            }
            foreach (var worker in writerWrokers)
            {
                worker.Start();
            }

            created.WaitOne();
            done.WaitOne();

            foreach (var worker in verificationWorkers)
            {
                worker.Stop();
            }
            foreach (var worker in writerWrokers)
            {
                worker.Stop();
            }

            context.Success();
            return(true);
        }