public static void ValidateTracking(ExpectedTrace expectedTrace, ActualTrace actualTrace, TrackingProfile profile, TestProfileType profileType, TrackingParticipantType participantType) { //1. Filter the expected trace against the workFlow profile ExpectedTrace filteredExpectedTrace = TrackingFilter.ApplyTrackingProfile(expectedTrace, profile); ////2. Delete not supported trace steps by testObjects. ActualTrace modifiedActualTrace = TrackingFilter.DeleteNotSupportedTraceSteps(actualTrace); TestTraceManager.OptionalLogTrace("[TestTrackingDataManager]*****ValidateTracking()"); ////3. Validate the expected & the actual trace TestTraceManager.OptionalLogTrace("[TestTrackingDataManager]Profile = {0}", profile); TestTraceManager.OptionalLogTrace("[TestTrackingDataManager]Actual Trace = {0}", actualTrace); TestTraceManager.OptionalLogTrace("[TestTrackingDataManager]Expected Trace = {0}", expectedTrace); TestTraceManager.OptionalLogTrace("[TestTrackingDataManager]Filtered Expected Trace (after applying tracking profile) = {0}", filteredExpectedTrace); TestTraceManager.OptionalLogTrace("[TestTrackingDataManager]Modified ActualTrace Trace = {0}", modifiedActualTrace); TestTraceManager.OptionalLogTrace("[TestTrackingDataManager]Invoking internally the trace validation..."); ////if (!(TestProfileProvider.IsAllOrNullProfile(profileType) && if (((participantType != TrackingParticipantType.SqlTrackingParticipant) && (participantType != TrackingParticipantType.ETWTrackingParticipant))) { modifiedActualTrace.Validate(filteredExpectedTrace, TestTraceManager.IsDefaultTrackingConfiguration); } //Log.TraceInternal("[TestTrackingDataManager]*****Validate method Succeeded..."); }
public static void ValidateWorkflow(Guid workflowInstanceId, TestActivity testWorkflowDefinition) { ActualTrace actualTrace = TestTraceManager.Instance.GetInstanceActualTrace(workflowInstanceId); ExpectedTrace expectedTrace = testWorkflowDefinition.GetExpectedTrace(); actualTrace.Validate(testWorkflowDefinition.GetExpectedTrace()); }
internal void ValidateTraces(ExpectedTrace expectedTrace, ActualTrace actualTrace) { //If no tracking participant tracks all events tracign validation will fail since it doesn't accoutn for the tracking profiles. //This is true ONLY for some trakcing test cases & not for runtime test cases which run with all tracking turned Off. //Hence we will not to tracing validation in this case & only do the tracking validation. //if (!TestTrackingDataManager.DoesAnyProfileTrackAllEvents(TestConfiguration.Current.TrackingServiceConfigurations)) //{ // Log.TraceInternal("[TestTracingWatcher]No tracking participant tracks all events. Hece skipp tracing verification"); // return; //} foreach (TraceFilter filter in expectedTrace.Filters) { expectedTrace = filter.FilterExpectedTrace(expectedTrace); actualTrace = filter.FilterActualTrace(actualTrace); } actualTrace.Validate(expectedTrace); }