public IReplayScenarioHandler Create(IIterationControl iterationContext) { IReplayScenario <TData> scenarioInstance = _scenarioFactory.Create(iterationContext.ThreadId); IReplayScenarioHandler scenarioHandler = new ReplayScenarioHandler <TData>(_globalCounters, new NotThreadSafeIdGenerator(), scenarioInstance, iterationContext); return(scenarioHandler); }
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); }