コード例 #1
0
		public void AsHttpResponseMessage() {
			var responseContent = new byte[10];
			(new Random()).NextBytes(responseContent);
			var responseStream = new MemoryStream(responseContent);
			var outgoingResponse = new OutgoingWebResponse();
			outgoingResponse.Headers.Add("X-SOME-HEADER", "value");
			outgoingResponse.Headers.Add("Content-Length", responseContent.Length.ToString(CultureInfo.InvariantCulture));
			outgoingResponse.ResponseStream = responseStream;

			var httpResponseMessage = outgoingResponse.AsHttpResponseMessage();
			Assert.That(httpResponseMessage, Is.Not.Null);
			Assert.That(httpResponseMessage.Headers.GetValues("X-SOME-HEADER").ToList(), Is.EqualTo(new[] { "value" }));
			Assert.That(
				httpResponseMessage.Content.Headers.GetValues("Content-Length").ToList(),
				Is.EqualTo(new[] { responseContent.Length.ToString(CultureInfo.InvariantCulture) }));
			var actualContent = new byte[responseContent.Length + 1]; // give the opportunity to provide a bit more data than we expect.
			var bytesRead = httpResponseMessage.Content.ReadAsStreamAsync().Result.Read(actualContent, 0, actualContent.Length);
			Assert.That(bytesRead, Is.EqualTo(responseContent.Length)); // verify that only the data we expected came back.
			var trimmedActualContent = new byte[bytesRead];
			Array.Copy(actualContent, trimmedActualContent, bytesRead);
			Assert.That(trimmedActualContent, Is.EqualTo(responseContent));
		}
コード例 #2
0
		public void AsHttpResponseMessageNoContent() {
			var outgoingResponse = new OutgoingWebResponse();
			outgoingResponse.Headers.Add("X-SOME-HEADER", "value");

			var httpResponseMessage = outgoingResponse.AsHttpResponseMessage();
			Assert.That(httpResponseMessage, Is.Not.Null);
			Assert.That(httpResponseMessage.Headers.GetValues("X-SOME-HEADER").ToList(), Is.EqualTo(new[] { "value" }));
			Assert.That(httpResponseMessage.Content, Is.Null);
		}