Working with Plain Text Requests
If you find yourself needing to test HTTP endpoints that either send text or return text, Alba has you covered with some built in helpers.
Reading the Response Text
To read the response body as text, use this syntax:
cs
public async Task read_text(IAlbaHost host)
{
var result = await host.Scenario(_ =>
{
_.Get.Url("/output");
});
// This deserializes the response body to the
// designated Output type
var outputString = await result.ReadAsTextAsync();
// do assertions against the Output string
}
Assertions against the Response Text
You have these built in operations for asserting on the response body text:
cs
public async Task assert_on_content(IAlbaHost host)
{
await host.Scenario(_ =>
{
_.ContentShouldBe("exactly this");
_.ContentShouldContain("some snippet");
_.ContentShouldNotContain("some warning");
});
}
Sending Text
Lastly, you can send text to an HTTP endpoint with this syntax:
cs
public async Task send_text(IAlbaHost host)
{
await host.Scenario(_ =>
{
_.Post.Text("some text").ToUrl("/textdata");
});
}
Do note that this also sets the content-length
header to the string length and sets the content-type
header of the request to "text/plain."