Please let me know How do I Mock my "HttpRequestMessage" object so that when my code flows traverse from nUnitTest it should not having NULL value for "this,Request,CreateResponse()".
My Controller class:
public class EodController : ApiControllerBase
{
private readonly IEodManager eodManager;
public EodController(IEodManager, eodManager)
{
this.eodManager = eodManager;
}
/// <param name="executionDate">Execution date</param>
/// <returns>Returns <see cref="HttpResponseMessage"/> that contains a stream of JSON data.</returns>
[HttpGet]
[Route("")]
public async Task<HttpResponseMessage> GetCheckAsync([Fromuri] DateTime executionDate)
{
try
{
int Status = await this.eodManager.GetStatus(executionDate);
will be always NULL value
var response = this.Request.CreateResponse(); // It failed Here "this.Request’ will be always NULL value
response.StatusCode = (Status == 1) ? HttpStatusCode.OK : (HttpStatusCode)207;
response. Content =
new PushStreamContent(
(stream, httpContext, transportContext) => this.eodManager.WriteToStream(stream, criteria, Status),
I have Tried following things from test Class, it did not work .
public async Task ShouldReturnOKStatus()
{
// Arrange
// Set up the mock
var EodManager, = new Mock<IEodManager>();
DateTime executionDate = new Datelime(2023, 6, 27);
var data = "this will be JSON”;
var httpReguestMessage = new HttpRequestMessage();
httpRequestMessage Content= new StringContent(data, Encoding.UTF8, “application/json");
var command = new EodController(EodManager.Object); // Act
var response = await command.GetCheckAsync(executionDate);
Assent.AreEqual("System.Web.Http.Results.OkResult”, response.ToString());
}