public void CanonicalMessageMustContainsRestVerbPost() { var request = new HttpRequestMessage(HttpMethod.Get, "http://www.acme.com/something"); var hmacBuilder = new ABServiciosHmacBuilder(); IEnumerable <string> canonicalizedString = hmacBuilder.GetCanonicalParts(request); canonicalizedString.Should().Contain(request.Method.Method); }
public void CanonicalMessageMustContainsRequestUrlPathAndQuery() { var request = new HttpRequestMessage(HttpMethod.Get, "http://www.acme.com/something/ToDo?p=izza"); var hmacBuilder = new ABServiciosHmacBuilder(); IEnumerable <string> canonicalizedString = hmacBuilder.GetCanonicalParts(request); canonicalizedString.Should().Contain("/something/ToDo?p=izza"); }
public void CanonicalMessageMustContainsEmptyWhenContentMd5NotAvailable() { var request = new HttpRequestMessage(HttpMethod.Get, "http://www.acme.com/something"); request.Content = new StringContent("Hello world!"); var hmacBuilder = new ABServiciosHmacBuilder(); IEnumerable <string> canonicalizedString = hmacBuilder.GetCanonicalParts(request); canonicalizedString.Should().Contain(string.Empty); }
public void CanonicalMessageMustContainsContentType() { var request = new HttpRequestMessage(HttpMethod.Get, "http://www.acme.com/something"); request.Content = new StringContent("Hello world!"); request.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain"); var hmacBuilder = new ABServiciosHmacBuilder(); IEnumerable <string> canonicalizedString = hmacBuilder.GetCanonicalParts(request); canonicalizedString.Should().Contain("text/plain"); }
public void CanonicalMessageMustContainsCustomDateValueFormattedRFC1123WhenAvailable() { // http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18 var request = new HttpRequestMessage(HttpMethod.Get, "http://www.acme.com/something"); DateTime now = DateTime.UtcNow; request.Headers.Add("X-ABS-Date", now.ToString("r", CultureInfo.InvariantCulture)); var hmacBuilder = new ABServiciosHmacBuilder(); IEnumerable <string> canonicalizedString = hmacBuilder.GetCanonicalParts(request); canonicalizedString.Should().Contain(string.Format("{0}:{1}", "x-abs-date", now.ToString("r", CultureInfo.InvariantCulture))); }
public void CanonicalMessageMustContainsContentMd5WhenAvailable() { var request = new HttpRequestMessage(HttpMethod.Get, "http://www.acme.com/something"); string md5 = "c8fdb181845a4ca6b8fec737b3581d76"; request.Content = new StringContent("Hello world!"); request.Content.Headers.Add("Content-MD5", md5); var hmacBuilder = new ABServiciosHmacBuilder(); IEnumerable <string> canonicalizedString = hmacBuilder.GetCanonicalParts(request); canonicalizedString.Should().Contain(md5); }
public void CanonicalMessageMustContainsAllCanonicalizedCustomValuesWhenAvailables() { var request = new HttpRequestMessage(HttpMethod.Get, "http://www.acme.com/something"); request.Headers.Add("X-ABS-V1", "Pizza Calda"); request.Headers.Add("X-ABS-UpdAndDown", "al kiosco"); request.Headers.Add("X-ABS-A1", "renzo"); request.Headers.Add("X-ABS-A2", new[] { "valu2", "value1 " }); var hmacBuilder = new ABServiciosHmacBuilder(); IEnumerable <string> canonicalizedString = hmacBuilder.GetCanonicalParts(request).ToList(); canonicalizedString.Should().Contain("x-abs-v1:Pizza Calda"); canonicalizedString.Should().Contain("x-abs-updanddown:al kiosco"); canonicalizedString.Should().Contain("x-abs-a1:renzo"); canonicalizedString.Should().Contain("x-abs-a2:valu2,value1"); }
public void CanonicalMessageMustEmptyInSpecificPositionWhenNotContainsMd5() { var request = new HttpRequestMessage(HttpMethod.Get, "http://www.acme.com/something/ToDo?p=izza"); DateTime now = DateTime.UtcNow; request.Headers.Add("X-ABS-V1", "Pizza Calda"); request.Headers.Add("X-ABS-UpdAndDown", "al kiosco"); request.Headers.Add("X-ABS-A1", "renzo"); request.Headers.Add("X-ABS-A2", new[] { "valu2", "value1 " }); request.Headers.Date = now.AddDays(5); request.Content = new StringContent("Hello world!"); request.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain"); var hmacBuilder = new ABServiciosHmacBuilder(); IEnumerable <string> canonicalizedString = hmacBuilder.GetCanonicalParts(request); canonicalizedString.Should().Have.SameSequenceAs("GET", "", "text/plain", now.AddDays(5).ToString("r", CultureInfo.InvariantCulture), "x-abs-a1:renzo", "x-abs-a2:valu2,value1", "x-abs-updanddown:al kiosco", "x-abs-v1:Pizza Calda", "/something/ToDo?p=izza"); }
public void CanonicalMessageMustContainsNewLineInSpecificOrderWhenContainDateAndCustomDate() { //REST verb, content-md5 value when present, content-type value, date value, canonicalized x-abs headers, and the resource (URI) var request = new HttpRequestMessage(HttpMethod.Get, "http://www.acme.com/something/ToDo?p=izza"); DateTime now = DateTime.UtcNow; request.Headers.Add("X-ABS-Date", now.ToString("r", CultureInfo.InvariantCulture)); request.Headers.Add("X-ABS-A1", "renzo"); request.Headers.Add("X-ABS-A2", new[] { "valu2", "value1 " }); request.Headers.Date = now.AddDays(5); string md5 = "c8fdb181845a4ca6b8fec737b3581d76"; request.Content = new StringContent("Hello world!"); request.Content.Headers.Add("Content-MD5", md5); request.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain"); var hmacBuilder = new ABServiciosHmacBuilder(); IEnumerable <string> canonicalizedString = hmacBuilder.GetCanonicalParts(request); canonicalizedString.Should().Have.SameSequenceAs("GET", "c8fdb181845a4ca6b8fec737b3581d76", "text/plain", "", "x-abs-a1:renzo", "x-abs-a2:valu2,value1", "x-abs-date:" + now.ToString("r", CultureInfo.InvariantCulture), "/something/ToDo?p=izza"); }