This is the first time I am using moq and cannot really find a good tutorial on how to use it for application variables. I in my controller i am calling a method that calls HttpContext.Current.Application["TheConnectionString"] and im my global.asax I declared and initialized Application["TheConnectionString"] = "MyConnectionString"
[TestMethod]
public void TestGetCompanyList()
{
string applicationValue = "MyConnectionString";
var mockApplication = new Mock<HttpApplicationStateBase>();
mockApplication.SetupSet(s => s["TheConnectionString"] = It.IsAny<string>()).Callback((string name) => applicationValue = (string)val);
mockApplication.SetupGet(s => s["TheconnectionString"]).Returns(() => applicationValue);
var request = new Mock<HttpRequestBase>();
var context = new Mock<HttpContextBase>();
request.SetupGet(x => x.Headers).Returns(new System.Net.WebHeaderCollection {{"X-Requested-With", "XMLHttpRequest"}});
context.SetupGet(ctx => ctx.Request).Returns(request.Object);
context.SetupGet(x => x.Application).Returns(applicationValue);
var accController = new AccSerController();
CInt cInt = new CInt();
cIn.Iss = "Other";
cIn.Tick = "BK";
var result = accController.GetClist(cIn) as IEnumerable<CList>;
Assert.IsNotNull(result);
}
I dont know how to "connect" the application value to the controller.
Edit:
My controller:
public class AccSerController : ApiController
{
[System.Web.Http.HttpPost]
public dynamic GetCList([FromBody]CompanyInput cInput)
{
AccSerFacade accService = new AccSerFacade();
IEnumerable<CompanyListResult> cList = accService.GetCList(cIn);
return cList;
}