public void PostRequest_should_upload_values_and_return_expected_response()
{
// Arrange
const string address = "http://path/to/test-runner?key=value";
var postValues = new NameValueCollection() {
{ "key1", "value 1" },
{ "key2", "value 2" }
};
const string expectedResponse = "response";
var responseBytes = Encoding.Default.GetBytes(expectedResponse);
_webClient.Stub(c => c.UploadValues(address, postValues))
.Return(responseBytes);
_responseDecoder.Stub(d => d.DecodeResponse(_webClient, responseBytes))
.Return(expectedResponse);
// Act
var aspClient = new AspClient(_factory, _responseDecoder);
var response = aspClient.PostRequest(address, postValues);
// Assert
Assert.That(_webClient.Credentials, Is.Null);
Assert.That(response, Is.EqualTo(expectedResponse));
}