public void CannotSetFilter_NotReportedManually_ThrowsException() { responseMock.SetupSet(r => r.Filter).Throws <HttpException>(); var attribute = new VariationReportingActionFilterAttribute(); attribute.OnActionExecuted(actionExecutedMock.Object); Assert.IsFalse((bool)httpContext.Items[Constants.VariationReportedHttpContextItemsKey]); Assert.Throws <NotSupportedException>(() => attribute.OnResultExecuted(resultExecutedMock.Object)); }
public void CannotSetFilter_ReportedManually_AllGood() { responseMock.SetupSet(r => r.Filter).Throws <HttpException>(); var attribute = new VariationReportingActionFilterAttribute(); attribute.OnActionExecuted(actionExecutedMock.Object); HtmlHelperExtensions.RenderAbTestingScriptTags(htmlHelper); Assert.IsTrue((bool)httpContext.Items[Constants.VariationReportedHttpContextItemsKey]); Assert.DoesNotThrow(() => attribute.OnResultExecuted(resultExecutedMock.Object)); }
public void NormalRequest_AutomaticallyReported_ReportedOnce() { var attribute = new VariationReportingActionFilterAttribute(); attribute.OnActionExecuted(actionExecutedMock.Object); ExecuteFilter(responseMock.Object.Filter); attribute.OnResultExecuted(resultExecutedMock.Object); //accessed id means it was used for reporting publishedContentVariationMock.Verify(e => e.GoogleExperimentId, Times.Once); publishedContentVariationMock.Verify(e => e.GoogleVariationId, Times.Once); }
public void NormalRequest_ReportedManually_ReportedOnce() { var attribute = new VariationReportingActionFilterAttribute(); attribute.OnActionExecuted(actionExecutedMock.Object); HtmlHelperExtensions.RenderAbTestingScriptTags(htmlHelper); attribute.OnResultExecuted(resultExecutedMock.Object); responseMock.VerifySet(r => r.Filter, Times.Once()); ExecuteFilter(responseMock.Object.Filter); //accessed id means it was used for reporting publishedContentVariationMock.Verify(e => e.GoogleExperimentId, Times.Once); publishedContentVariationMock.Verify(e => e.GoogleVariationId, Times.Once); }