예제 #1
0
 public DurationBasedEngine(OfficeWorkerDetail worker, ActivityQueueBase activity, ActivityPacingInfo info, int expirationMinutes)
     : base(activity, info)
 {
     //we don't have a start/stop time
     _delay      = new ActivityDelay(worker);
     _expiration = TimeSpan.FromMinutes(expirationMinutes > 0 ? expirationMinutes : 0);
 }
예제 #2
0
 public SetPaceBasedEngine(OfficeWorkerDetail detail, ActivityQueueBase activity, ActivityPacingInfo info, int expirationMinutes)
     : base(activity, info)
 {
     RandomizeActivities = detail.RandomizeActivities;
     _pace       = TimeSpan.FromSeconds(detail.MinActivityDelay);
     _expiration = TimeSpan.FromMinutes(detail.DurationTime);
 }
예제 #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="EngineBase"/> class.
        /// </summary>
        /// <param name="activityqueue"></param>
        /// <param name="info"></param>
        protected EngineBase(ActivityQueueBase activityqueue, ActivityPacingInfo info)
        {
            if (activityqueue == null)
            {
                throw new ArgumentNullException("artivityqueue");
            }
            if (info == null)
            {
                throw new ArgumentNullException("info");
            }

            ActivityQueue = activityqueue;
            PacingInfo    = info;
        }
예제 #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="EngineBase"/> class.
        /// </summary>
        /// <param name="resourceType">Type of the resource.</param>
        /// <param name="metadataDetail">The detail.</param>
        /// <param name="workerDetail"></param>
        protected EngineBase(VirtualResourceType resourceType, LoadTesterMetadataDetail metadataDetail, OfficeWorkerDetail workerDetail)
        {
            if (metadataDetail == null)
            {
                throw new ArgumentNullException("metadataDetail");
            }

            if (!metadataDetail.Enabled)
            {
                throw new ArgumentException("MetadataDetail is not enabled", "metadataDetail");
            }

            ExecutionHalted = false;

            ActivityQueue = new OfficeWorkerActivityQueue(new Collection <ResourceMetadataDetail>()
            {
                metadataDetail
            }, OnActivityStateChanged, workerDetail);
        }
예제 #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="EngineBase"/> class.
        /// </summary>
        protected EngineBase(VirtualResourceType resourceType, Collection <ResourceMetadataDetail> details, OfficeWorkerDetail workerDetail)
        {
            if (details == null)
            {
                throw new ArgumentNullException("details");
            }

            // Create the queue of activities based on the resource metadata details that are enabled
            var enabledActivityDetails = new Collection <ResourceMetadataDetail>(details.Where(x => x.Enabled).ToList());

            ExecutionHalted = false;

            switch (resourceType)
            {
            case VirtualResourceType.AdminWorker:
                ActivityQueue = new AdminWorkerActivityQueue(enabledActivityDetails, OnActivityStateChanged, workerDetail);
                break;

            default:
                ActivityQueue = new OfficeWorkerActivityQueue(enabledActivityDetails, OnActivityStateChanged, workerDetail);
                break;
            }
            PacingInfo.ExecutionMode = workerDetail.ExecutionMode;
        }