/// <summary> /// Opens the host /// </summary> /// <param name="workflowService"> /// The workflow service. /// </param> /// <param name="serviceUri"> /// The service URI. /// </param> /// <param name="instanceStore"> /// The instance Store. /// </param> /// <param name="behaviors"> /// The behaviors. /// </param> /// <returns> /// The workflow service host /// </returns> public static WorkflowServiceTestHost Open( WorkflowService workflowService, Uri serviceUri, InstanceStore instanceStore, params IServiceBehavior[] behaviors) { Contract.Requires(workflowService != null); Contract.Requires(serviceUri != null); if (workflowService == null) { throw new ArgumentNullException("workflowService"); } if (serviceUri == null) { throw new ArgumentNullException("serviceUri"); } var workflowServiceTestHost = new WorkflowServiceTestHost(workflowService, serviceUri); if (instanceStore != null) { workflowServiceTestHost.InstanceStore = instanceStore; } if (behaviors != null) { Debug.Assert(workflowServiceTestHost.Host != null, "workflowServiceTestHost.Host != null"); Debug.Assert( workflowServiceTestHost.Host.Description != null, "workflowServiceTestHost.Host.Description != null"); Debug.Assert( workflowServiceTestHost.Host.Description.Behaviors != null, "workflowServiceTestHost.Host.Description.Behaviors != null"); foreach (var serviceBehavior in behaviors) { workflowServiceTestHost.Host.Description.Behaviors.Add(serviceBehavior); } } workflowServiceTestHost.Open(); return workflowServiceTestHost; }
public void TrackerShouldAttachWorkflowServiceHost() { // Arrange var serviceEndpoint = ServiceTest.GetUniqueEndpointAddress(); using ( var testHost = new WorkflowServiceTestHost(Constants.StateMachineServiceExampleXamlx, serviceEndpoint)) { testHost.Host.Description.Behaviors.Add( new WorkflowIdleBehavior { TimeToPersist = TimeSpan.Zero, TimeToUnload = TimeSpan.Zero }); // Act var tracker = StateMachineStateTracker.Attach(testHost.Host); testHost.Open(); this.RunSampleStateMachineService(testHost.EndpointAddress, ExampleTrigger.T1, ExampleTrigger.T2); // Assert Assert.IsNotNull(tracker); Assert.AreEqual(1, tracker.TrackedStateMachines.Count); } }