mercredi 4 mars 2015

Moq Controller to ControllerBase convert error

I am getting this error when I am trying to use moq so that I can access application variables. In this case the application variable is ConnectionString with a value of TheConnectionString. I need the value to be available in the GetCompanyList() because the value is used inside accountService class


The Error is :


Error 5 Argument 3: cannot convert from 'Webapp.AccountServiceController' to 'System.Web.Mvc.ControllerBase'



[TestMethod]
public void TestGetCompanyList()
{
var accountController = new AccountServiceController();
var context = new Mock<HttpContextBase>();
var application = new Mock<HttpApplicationStateBase>();
var request = new Mock<HttpRequestBase>();

application.Setup(m => m.Add("ConnectionString","TheConnectionString");
request.SetupGet(x => x.Headers).Returns(new System.Net.WebHeaderCollection { { "X-Requested-With", "XMLHttpRequest" } });
context.SetupGet(ctx => ctx.Request).Returns(request.Object);
context.SetupGet(ctx => ctx.Application).Returns(application.Object);

accountController.ControllerContext = new ControllerContext(context.Object, new RouteData(), accountController); //Error here

CompanyInput cInput = new CompanyInput();
cInput.IssuerName = "BroadRidge";
cInput.Ticker = "BR";
var result = accountController.GetCompanyList(cInput) as IEnumerable<CompanyListResult>;
Assert.IsNotNull(result);
}


Controller:



public class AccountServiceController : ApiController
{
public AccountServiceFacade accoutService;
public AccountServiceController()
{
accoutService = new AccountServiceFacade();
}

public AccountServiceController(AccountServiceFacade facade)
{
accoutService = facade;
}

[System.Web.Http.HttpPost]
public dynamic GetCompanyList([FromBody]CompanyInput cInput)
{
IEnumerable<CompanyListResult> companyList = accoutService.GetCompanyList(cInput);
return companyList;
}
}

Aucun commentaire:

Enregistrer un commentaire