Controller.cs
public async Task<IActionResult> BookingRequest(int cid)
{
string[] requestParams = Request.QueryString.ToString().Split("&");
BookingVM objSessionBookingVM = new BookingVM();
var value = HttpContext.Session.GetString("SessionBookingVM");
if(value!=null)
{
//some logic
}
}
XunitTest.cs
[Fact]
public async Task<IActionResult> BookingRequestTest_ReturnsViewWithSlots()
{
// Act
_controller.ControllerContext = new ControllerContext();
_controller.ControllerContext.HttpContext = new DefaultHttpContext();
_controller.ControllerContext.HttpContext.Request.Headers["device-id"] = "20317";
_controller.ControllerContext.HttpContext.Request.QueryString = new QueryString("?cid=11&culture=no");
var result = await _controller.BookingRequest(mockId);
// Assert
var viewResult = Assert.IsType<ViewResult>(result);
Assert.IsType<BookingVM>(viewResult.ViewData.Model);
return result;
}
When I run the test, I'm getting the exception at below line
var value = HttpContext.Session.GetString("SessionBookingVM");
The error says session has not been established. I have tried a lot but nothing works. Can anyone help me to fix this out?