public void OnActionExecuting_TrackerNotInitialized_ShouldDoNothing(SkipAnalyticsTrackingAttribute trackingAttribute, ActionExecutingContext ctx, ITracker tracker)
    {
      //arrange
      InitializeActionFilterContext(ctx);

      using (new TrackerSwitcher(tracker))
      {
        //act
        trackingAttribute.OnActionExecuting(ctx);
        //assert
        tracker.CurrentPage.DidNotReceive().Cancel();
      }
    }
    public void OnActionExecuting_OnAjaxRequest_ShouldCallCancelAnalytics(SkipAnalyticsTrackingAttribute trackingAttribute, ActionExecutingContext ctx, ITracker tracker)
    {
      //arrange
      InitializeActionFilterContext(ctx);
      tracker.IsActive.Returns(true);

      using (new TrackerSwitcher(tracker))
      {
        //act
        trackingAttribute.OnActionExecuting(ctx);
        //assert
        tracker.CurrentPage.Received(1).Cancel();
      }
     
    }
    public void OnActionExecuting_CurrentPageIsNull_ShouldNotRaiseException(SkipAnalyticsTrackingAttribute trackingAttribute, ActionExecutingContext ctx, ITracker tracker)
    {
      //arrange
      InitializeActionFilterContext(ctx);
      tracker.IsActive.Returns(true);
      tracker.CurrentPage.Returns((ICurrentPageContext)null);


      using (new TrackerSwitcher(tracker))
      {
        //act
        Action action = () => trackingAttribute.OnActionExecuting(ctx);
        //assert
        action.ShouldNotThrow();
      }
    }