public static Mock <HttpContext> MockHttpContext(string inputStream = null, string responseContentType = "text/plain") { if (inputStream == null) { inputStream = $"InputStream {Guid.NewGuid()}"; } var httpRequest = new Mock <HttpRequest>(); httpRequest.SetUrl(UrlParser.GenerateUri("/Home/Index")); httpRequest.Setup(p => p.Method).Returns(HttpMethods.Post); httpRequest.Setup(p => p.Body).Returns(new MemoryStream(Encoding.UTF8.GetBytes(inputStream))); httpRequest.Setup(p => p.Headers).Returns(new CustomHeaderCollection(new Dictionary <string, StringValues> { { HeaderNames.ContentType, "text/plain" } })); var httpResponse = new Mock <HttpResponse>(); httpResponse.Setup(p => p.StatusCode).Returns(204); httpResponse.Setup(p => p.Headers).Returns(new CustomHeaderCollection(new Dictionary <string, StringValues> { { HeaderNames.ContentType, responseContentType } })); httpResponse.SetupProperty(p => p.Body, new MemoryStream()); var httpContext = new Mock <HttpContext>(); httpContext.Setup(p => p.Request).Returns(httpRequest.Object); httpContext.Setup(p => p.Response).Returns(httpResponse.Object); httpContext.Setup(p => p.Items).Returns(new Dictionary <object, object>()); return(httpContext); }
public void EvaluatesOptionsShouldLogInputStream() { KissLog.Tests.Common.CommonTestHelpers.ResetContext(); KissLogConfiguration.Options.ShouldLogInputStream((KissLog.Http.HttpRequest args) => false); string body = $"Input stream {Guid.NewGuid()}"; var ms = new MemoryStream(Encoding.UTF8.GetBytes(body)); var httpRequest = new Mock <HttpRequest>(); httpRequest.SetUrl(UrlParser.GenerateUri("/Home/Index")); httpRequest.Setup(p => p.Method).Returns("GET"); httpRequest.Setup(p => p.Body).Returns(ms); httpRequest.Setup(p => p.Headers).Returns(new CustomHeaderCollection(new Dictionary <string, StringValues> { { HeaderNames.ContentType, "text/plain" } })); ModuleInitializer.ReadInputStreamProvider = new EnableBufferingReadInputStreamProvider(); var result = HttpRequestFactory.Create(httpRequest.Object); Assert.IsNull(result.Properties.InputStream); }
public void LogListenerInterceptorShouldLogIsEvaluated() { CommonTestHelpers.ResetContext(); List <HttpRequest> httpRequestArgs = new List <HttpRequest>(); ILogListener listener = new CustomLogListener(onBeginRequest: (arg) => { httpRequestArgs.Add(arg); }) { Interceptor = new CustomLogListenerInterceptor { ShouldLogBeginRequest = (HttpRequest httpRequest) => { return(httpRequest.Url.LocalPath == "/App/Method1" || httpRequest.Url.LocalPath == "/App/Method3"); } } }; KissLogConfiguration.Listeners.Add(listener); string[] urls = new[] { "/App/Method1", "/App/Method2", "/App/Method3", "/App/Method4" }; foreach (string url in urls) { HttpRequest httpRequest = new HttpRequest(new HttpRequest.CreateOptions { Url = UrlParser.GenerateUri(url), HttpMethod = "GET" }); NotifyBeginRequest.Notify(httpRequest); } Assert.AreEqual(2, httpRequestArgs.Count); }
public void CreateOptionsConstructorUpdatesProperties() { var options = new HttpRequest.CreateOptions { StartDateTime = DateTime.UtcNow.AddSeconds(-120), Url = UrlParser.GenerateUri(Guid.NewGuid().ToString()), HttpMethod = "GET", UserAgent = $"UserAgent {Guid.NewGuid()}", RemoteAddress = $"RemoteAddress {Guid.NewGuid()}", HttpReferer = $"HttpReferer {Guid.NewGuid()}", SessionId = $"SessionId {Guid.NewGuid()}", IsNewSession = true, MachineName = $"MachineName {Guid.NewGuid()}", Properties = new RequestProperties(new RequestProperties.CreateOptions()) }; HttpRequest item = new HttpRequest(options); Assert.AreEqual(options.StartDateTime, item.StartDateTime); Assert.AreEqual(options.Url.ToString(), item.Url.ToString()); Assert.AreEqual(options.HttpMethod, item.HttpMethod); Assert.AreEqual(options.UserAgent, item.UserAgent); Assert.AreEqual(options.RemoteAddress, item.RemoteAddress); Assert.AreEqual(options.HttpReferer, item.HttpReferer); Assert.AreEqual(options.SessionId, item.SessionId); Assert.AreEqual(options.IsNewSession, item.IsNewSession); Assert.AreEqual(options.MachineName, item.MachineName); Assert.AreSame(options.Properties, item.Properties); }
public void NullOrInvalidHttpMethodThrowsException(string httpMethod) { HttpRequest item = new HttpRequest(new HttpRequest.CreateOptions { Url = UrlParser.GenerateUri(null), HttpMethod = httpMethod }); }
public void ResponseIsNull() { HttpProperties item = new HttpProperties(new HttpRequest(new HttpRequest.CreateOptions { HttpMethod = "GET", Url = UrlParser.GenerateUri(null) })); Assert.IsNull(item.Response); }
public void SetResponseWithNullArgumentsThrowsException() { HttpProperties item = new HttpProperties(new HttpRequest(new HttpRequest.CreateOptions { HttpMethod = "GET", Url = UrlParser.GenerateUri(null) })); item.SetResponse(null); }
public void StartDateTimeHasValue() { HttpRequest item = new HttpRequest(new HttpRequest.CreateOptions { Url = UrlParser.GenerateUri(null), HttpMethod = "GET" }); Assert.IsTrue(item.StartDateTime.Year > default(DateTime).Year); }
public void StartDateTimeIsInThePast() { HttpRequest item = new HttpRequest(new HttpRequest.CreateOptions { Url = UrlParser.GenerateUri(null), HttpMethod = "GET" }); Assert.IsTrue(item.StartDateTime < DateTime.UtcNow); }
public void StartDateTimeIsInUtcFormat() { HttpRequest item = new HttpRequest(new HttpRequest.CreateOptions { Url = UrlParser.GenerateUri(null), HttpMethod = "GET" }); Assert.AreEqual(DateTimeKind.Utc, item.StartDateTime.Kind); }
public void IdIsNotNull() { HttpRequest item = new HttpRequest(new HttpRequest.CreateOptions { Url = UrlParser.GenerateUri(null), HttpMethod = "GET" }); Assert.IsTrue(item.Id != Guid.Empty); }
public void SetPropertiesThrowsExceptionForNullArgument() { HttpRequest item = new HttpRequest(new HttpRequest.CreateOptions { Url = UrlParser.GenerateUri(null), HttpMethod = "GET" }); item.SetProperties(null); }
public void HttpMethodIsTransformedToUppercase(string httpMethod) { HttpRequest item = new HttpRequest(new HttpRequest.CreateOptions { Url = UrlParser.GenerateUri(null), HttpMethod = httpMethod }); Assert.AreEqual(httpMethod.Trim().ToUpperInvariant(), item.HttpMethod); }
public void PropertiesIsNotNull() { HttpRequest item = new HttpRequest(new HttpRequest.CreateOptions { Url = UrlParser.GenerateUri(null), HttpMethod = "GET", Properties = null }); Assert.IsNotNull(item.Properties); }
public void EmptyHttpRequestDoesNotThrowException() { Uri url = UrlParser.GenerateUri($"/Home/Index/{Guid.NewGuid()}"); var httpRequest = new Mock <HttpRequest>(); httpRequest.SetUrl(url); httpRequest.Setup(p => p.Method).Returns("GET"); var result = HttpRequestFactory.Create(httpRequest.Object); }
public void HttpMethodIsCopied(string httpMethod) { var httpRequest = new Mock <HttpRequest>(); httpRequest.SetUrl(UrlParser.GenerateUri("/Home/Index")); httpRequest.Setup(p => p.Method).Returns(httpMethod); var result = HttpRequestFactory.Create(httpRequest.Object); Assert.AreEqual(httpMethod, result.HttpMethod); }
public void HttpRequestConstructorUpdatesProperties() { HttpRequest httpRequest = new HttpRequest(new HttpRequest.CreateOptions { HttpMethod = "GET", Url = UrlParser.GenerateUri(null) }); HttpProperties item = new HttpProperties(httpRequest); Assert.AreSame(httpRequest, item.Request); }
public void UrlIsCopied() { Uri url = UrlParser.GenerateUri($"/Home/Index/{Guid.NewGuid()}?param1={Guid.NewGuid()}"); var httpRequest = new Mock <HttpRequest>(); httpRequest.SetUrl(url); httpRequest.Setup(p => p.Method).Returns("GET"); var result = HttpRequestFactory.Create(httpRequest.Object); Assert.AreEqual(url.ToString(), result.Url.ToString()); }
public void ThrowsExceptionWhenHttpPropertiesResponseIsNull() { HttpProperties httpProperties = new HttpProperties(new HttpRequest(new HttpRequest.CreateOptions { HttpMethod = "GET", Url = UrlParser.GenerateUri(null) })); FlushLogArgs item = new FlushLogArgs(new FlushLogArgs.CreateOptions { HttpProperties = httpProperties }); }
public void MachineNameIsCopied() { var httpRequest = new Mock <HttpRequest>(); httpRequest.SetUrl(UrlParser.GenerateUri("/Home/Index")); httpRequest.Setup(p => p.Method).Returns("GET"); var result = HttpRequestFactory.Create(httpRequest.Object); string machineName = InternalHelpers.GetMachineName(); Assert.AreEqual(machineName, result.MachineName); }
public void HeadersAreCopied() { var value = CommonTestHelpers.GenerateList(5); var httpRequest = new Mock <HttpRequest>(); httpRequest.SetUrl(UrlParser.GenerateUri("/Home/Index")); httpRequest.Setup(p => p.Method).Returns("GET"); httpRequest.Setup(p => p.Headers).Returns(new CustomHeaderCollection(value.ToStringValuesDictionary())); var result = HttpRequestFactory.Create(httpRequest.Object); Assert.AreEqual(JsonSerializer.Serialize(value), JsonSerializer.Serialize(result.Properties.Headers)); }
public void SetResponseUpdatesProperty() { HttpResponse httpResponse = new HttpResponse(new HttpResponse.CreateOptions()); HttpProperties item = new HttpProperties(new HttpRequest(new HttpRequest.CreateOptions { HttpMethod = "GET", Url = UrlParser.GenerateUri(null) })); item.SetResponse(httpResponse); Assert.AreSame(httpResponse, item.Response); }
public void ServerVariablesAreCopied() { var value = KissLog.Tests.Common.CommonTestHelpers.GenerateList(5); var httpRequest = new Mock <HttpRequestBase>(); httpRequest.Setup(p => p.Url).Returns(UrlParser.GenerateUri("/Home/Index")); httpRequest.Setup(p => p.HttpMethod).Returns("GET"); httpRequest.Setup(p => p.ServerVariables).Returns(Helpers.GenerateNameValueCollection(value)); var result = HttpRequestFactory.Create(httpRequest.Object); Assert.AreEqual(JsonSerializer.Serialize(value), JsonSerializer.Serialize(result.Properties.ServerVariables)); }
public void UrlReferrerIsCopied() { Uri urlReferrer = new Uri("https://google.com"); var httpRequest = new Mock <HttpRequestBase>(); httpRequest.Setup(p => p.Url).Returns(UrlParser.GenerateUri("/Home/Index")); httpRequest.Setup(p => p.HttpMethod).Returns("GET"); httpRequest.Setup(p => p.UrlReferrer).Returns(urlReferrer); var result = HttpRequestFactory.Create(httpRequest.Object); Assert.AreEqual(urlReferrer.ToString(), result.HttpReferer); }
public static HttpProperties Create(string url) { if (string.IsNullOrWhiteSpace(url)) { throw new ArgumentNullException(nameof(url)); } return(new HttpProperties(new HttpRequest(new HttpRequest.CreateOptions { HttpMethod = "GET", Url = UrlParser.GenerateUri(url), MachineName = InternalHelpers.GetMachineName() }))); }
public void UserHostAddressIsCopied() { string userHostAddress = $"UserHostAddress {Guid.NewGuid()}"; var httpRequest = new Mock <HttpRequestBase>(); httpRequest.Setup(p => p.Url).Returns(UrlParser.GenerateUri("/Home/Index")); httpRequest.Setup(p => p.HttpMethod).Returns("GET"); httpRequest.Setup(p => p.UserHostAddress).Returns(userHostAddress); var result = HttpRequestFactory.Create(httpRequest.Object); Assert.AreEqual(userHostAddress, result.RemoteAddress); }
public void QueryStringIsCopiedFromUnvalidatedRequestValues() { var value = KissLog.Tests.Common.CommonTestHelpers.GenerateList(5); var unvalidatedValue = KissLog.Tests.Common.CommonTestHelpers.GenerateList(5); var httpRequest = new Mock <HttpRequestBase>(); httpRequest.Setup(p => p.Url).Returns(UrlParser.GenerateUri("/Home/Index")); httpRequest.Setup(p => p.HttpMethod).Returns("GET"); httpRequest.Setup(p => p.QueryString).Returns(Helpers.GenerateNameValueCollection(value)); httpRequest.Setup(p => p.Unvalidated.QueryString).Returns(Helpers.GenerateNameValueCollection(unvalidatedValue)); var result = HttpRequestFactory.Create(httpRequest.Object); Assert.AreEqual(JsonSerializer.Serialize(unvalidatedValue), JsonSerializer.Serialize(result.Properties.QueryString)); }
public void QueryStringIsCopied() { var value = CommonTestHelpers.GenerateList(5); var qs = new FormUrlEncodedContent(value).ReadAsStringAsync().Result; var dictionary = CommonTestHelpers.GenerateDictionary(value); var httpRequest = new Mock <HttpRequest>(); httpRequest.SetUrl(UrlParser.GenerateUri("/Home/Index?" + qs)); httpRequest.Setup(p => p.Method).Returns("GET"); var result = HttpRequestFactory.Create(httpRequest.Object); Assert.AreEqual(JsonSerializer.Serialize(value), JsonSerializer.Serialize(result.Properties.QueryString)); }
private HttpProperties GetHttpProperties(bool includeResponse) { HttpProperties httpProperties = new HttpProperties(new HttpRequest(new HttpRequest.CreateOptions { HttpMethod = "GET", Url = UrlParser.GenerateUri(null) })); if (includeResponse) { httpProperties.SetResponse(new HttpResponse(new HttpResponse.CreateOptions() { })); } return(httpProperties); }
public void ReferrerIsCopied() { string referrer = $"Referer {Guid.NewGuid()}"; var httpRequest = new Mock <HttpRequest>(); httpRequest.SetUrl(UrlParser.GenerateUri("/Home/Index")); httpRequest.Setup(p => p.Method).Returns("GET"); httpRequest.Setup(p => p.Headers).Returns(new CustomHeaderCollection(new Dictionary <string, StringValues> { { HeaderNames.Referer, referrer } })); var result = HttpRequestFactory.Create(httpRequest.Object); Assert.AreEqual(referrer, result.HttpReferer); }