How to mock HttpRequestMessage with Moq

How to mock HttpRequestMessage with Moq

I'm working on a web Api. It's an ASP.NET application. I need to create a mock for the method CreateResponse(HttpStatusCode statusCode, T value) of HttpRequestMessage class. But every time I execute my test and get the exception

I'm working on a web Api. It's an ASP.NET application. I need to create a mock for the method CreateResponse(HttpStatusCode statusCode, T value) of HttpRequestMessage class. But every time I execute my test and get the exception

Test Name:  RHT.Tests.Controllers.AccountControllerTests.Can_login_with_valid_credentials
Test FullName:  RHT.Tests.Controllers.AccountControllerTests.Can_login_with_valid_credentials
Test Source:    Controllers\AccountControllerTests.cs : line 23
Test Outcome:   Failed
Test Duration:  0:00:01.028

Result StackTrace:
at Moq.Mock.ThrowIfSetupExpressionInvolvesUnsupportedMember(Expression setup, MethodInfo method) in C:\projects\moq4\src\Moq\Mock.cs:line 755 at Moq.Mock.SetupNonVoidPexProtected(Mock mock, LambdaExpression expression, Condition condition) in C:\projects\moq4\src\Moq\Mock.cs:line 433 at Moq.PexProtector.Invoke[T1,T2,T3,TResult](Func4 function, T1 arg1, T2 arg2, T3 arg3) in C:\projects\moq4\src\Moq\PexProtector.cs:line 38 at Moq.Mock.SetupNonVoid(Mock mock, LambdaExpression expression, Condition condition) in C:\projects\moq4\src\Moq\Mock.cs:line 421 at Moq.Mock1.Setup[TResult](Expression`1 expression) in C:\projects\moq4\src\Moq\Mock.Generic.cs:line 317 at RHT.Tests.Controllers.AccountControllerTests.Can_login_with_valid_credentials() in C:\Users\ttong\source\repos\RedHawkTestPlan\RHT.Tests\Controllers\AccountControllerTests.cs:line 51 Result Message: System.NotSupportedException : Invalid setup on an extension method: m => m.CreateResponse<string>(HttpStatusCode.OK, "value")

The test

        Mock<IAuthProvider> auth = new Mock<IAuthProvider>();
        auth.Setup(m => m.CreateEncryptedCookieValue(
            It.IsAny<bool>(), It.IsAny<string>()))
            .Returns("my_ticket");

    Mock&lt;HttpRequestMessage&gt; req = new Mock&lt;HttpRequestMessage&gt;();
    req.Setup(m =&gt; m.CreateResponse(
        HttpStatusCode.OK, "value"))
        .Returns(new HttpResponseMessage(HttpStatusCode.OK));

The test method has 3 mock objects. But only the HttpRequestMessage is fail to initialize. Any idea why it doesn't work?

c-sharp asp.net

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

Hire ASP.Net Developers

Looking to outsource your asp dot net development requirement? ASP.Net is a special feature of the DOT Net framework created by Microsoft. At [HourlyDeveloper.io](https://hourlydeveloper.io/ "HourlyDeveloper.io"), we have a team of experienced...

Various ways of redirecting a request in Asp.Net Core

ASP.NET Core web applications often need to redirect a request to another resource based on some condition. There are multiple ways in which you can accomplish this task in ASP.NET Core MVC and Razor&#160;&#8230;

Routing in MVC - ASP.NET Core Demystified

ASP.NET Core MVC has introduced quite a few concepts that new (or new-to-ASP.NET) web developers might have some difficulty getting caught up with. My ASP.NET Core Demystified series is designed to help these developers get started building their own custom, full-fledged, working AASP.NET Core applications. In

What is the ASP.Net Machine Account on my Computer?

Some users have reported the existence of the ASP.Net machine account. In this article, I will discuss what is asp.net machine account in windows 10/7 and how to disable it, asp.net machine account password, and can I delete asp.net machine account? .NET Framework is an application on Windows that requires the installation to run several apps or games. However, when the .NET Framework is downloaded and installed, the application automatically creates an ASP NET machine account.

Add asp.net Identity in empty project

LIKE | COMMENT | SHARE | SUBSCRIBE Today, in this tutorial you will see the process of adding an ASP.NET Identity to the ASP.NET Web Application developed in...