public IReplayScenarioHandler Create(IIterationControl iterationContext)
        {
            IReplayScenario <TData> scenarioInstance = _scenarioFactory.Create(iterationContext.ThreadId);
            IReplayScenarioHandler  scenarioHandler  = new ReplayScenarioHandler <TData>(_globalCounters, new NotThreadSafeIdGenerator(), scenarioInstance, iterationContext);

            return(scenarioHandler);
        }
示例#2
0
        public ReplayScenarioHandler(IGlobalCountersControl globalCounters, IUniqueIdGenerator <int> threadIterationIdGenerator, IReplayScenario <TData> scenario, IIterationControl context)
            : base(globalCounters, threadIterationIdGenerator, scenario, context)
        {
            _scenario = scenario;

            _dataContext = new DataContext <TData>
            {
                Timer   = context.Timer,
                Execute = true,
                Context = context
            };
        }
示例#3
0
        public static IterationResult Validate <TData>(this IReplayScenario <TData> scenario, DataItem data, int threadId = 0, int threadIterationId = 0, int globalIterationId = 0)
        {
            ExecutionTimer    timer          = new ExecutionTimer();
            ThreadSafeCounter errorsCounter  = new ThreadSafeCounter();
            GlobalCounters    globalCounters = new GlobalCounters(errorsCounter, new MockedIdGenerator(globalIterationId));
            IIterationControl context        = new IterationContext(threadId, timer);

            ReplayScenarioHandler <TData> handler = new ReplayScenarioHandler <TData>(globalCounters, new MockedIdGenerator(threadIterationId), scenario, context);

            timer.Start();

            handler.Init();
            handler.PrepareNext();
            handler.SetData(data.Value, data.TimeStamp);
            handler.Execute();

            IterationResult result = new IterationResult(context, new WorkerThreadStats());

            handler.Cleanup();

            timer.Stop();

            return(result);
        }
示例#4
0
        public static IterationResult Validate <TData>(this IReplayScenario <TData> scenario, TData data, int threadId = 0, int threadIterationId = 0, int globalIterationId = 0)
        {
            DataItem dataItem = new DataItem(TimeSpan.Zero, data);

            return(scenario.Validate(dataItem, threadId, threadIterationId, globalIterationId));
        }