Please find below my code, I'm getting null exception in my controller
var apiHost = $"{Request.Scheme}://{(string)Request.Headers["X-Original-Host"] ?? Request.Host.Value}";
[Fact]
public async Task Get_ShouldReturnOk_WhenXOriginalHostIsMissing()
{
// Arrange
var mockHeaderNavigationModel = new Mock<IHeaderNavigationModel>();
var mockNavigationService = new Mock<INavigationService>();
// Mock HttpRequest
var request = new Mock<HttpRequest>();
request.Setup(x => x.Scheme).Returns("https");
request.Setup(x => x.Host).Returns(HostString.FromUriComponent("localhost:5001"));
request.Setup(x => x.PathBase).Returns(PathString.FromUriComponent("/api"));
var httpContext = Mock.Of<HttpContext>(_ =>
_.Request == request.Object
);
//Controller needs a controller context
var controllerContext = new ControllerContext()
{
HttpContext = httpContext,
};
//assign context to controller
var controller = new NavigationController(mockHeaderNavigationModel.Object, mockNavigationService.Object)
{
ControllerContext = controllerContext,
};
// Mock navigation service (for example, returning some mock content)
mockNavigationService.Setup(ns => ns.GetNavigationContentAsync(It.IsAny<string>(), It.IsAny<string>()))
.ReturnsAsync(UnitTestsTestData.MockNavigationContent);
// Act
var result = await controller.Get();
// Assert
var okResult = Assert.IsType<OkObjectResult>(result); // Should return OkObjectResult
Assert.NotNull(okResult.Value); // Check that the result has content
}