I have wen Api controller method like given below SessionId is of type 'string'
[HttpPost]
[Route("init")]
[ApiMeter("search_init")]
public async Task<IHttpActionResult> InitiateAsync(SearchInitRequest query,
CancellationToken cancellationToken)
{
Validations.EnsureValid(query, new SearchRequestValidator());
string sessionId = await Service.InitiateSearchAsync(query, cancellationToken);
return Ok(new { sessionId });
}
And I have test case like below
[Fact]
public void GetSearchInit_Success_Valid()
{
var mockCarService = new Mock<ICarService>();
using (new AmbientContextScope(GetCarCallContext()))
{
var request = Data.DataProvider.TestDataProvider.GetJsonResult<CarSearchInitRequest>(
SearchInitScenarioRequests.CarSearchInitSuccess);
var response = Data.DataProvider.TestDataProvider.GetResponse<CarSearchInitResponse>(
SearchInitScenarioResponse.CarSearchInitSuccess);
mockCarService.Setup(f => f.InitiateSearchAsync(request, CancellationToken.None))
.Returns(Task.FromResult(response.SessionId));
SearchController controller = new SearchController(mockCarService.Object);
var result = controller.InitiateAsync(request, CancellationToken.None).Result;
var status = result as OkNegotiatedContentResult<string>;
Assert.NotNull(status.Content);
}
}
in this test case I am getting status as null. though while debugging I can see there is SessionId property inside status.Content but as this is of anonymous type I am not able to read that value. I have also tried with
var status = result as OkNegotiatedContentResult<object>;
still no luck
Aucun commentaire:
Enregistrer un commentaire