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()); }