79418810

Date: 2025-02-06 17:25:38
Score: 0.5
Natty:
Report link

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
}
Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Unregistered user (0.5):
  • Low reputation (1):
Posted by: Developer