Here in the controller
var roles = Roles.GetAllRoles();
fails from the Unit test call and in the
LogOnTest()(Error message is "The Role Manager feature has not been enabled.")
Could you please tell me whether my test function is correct or need any more logical/functional test?
[TestMethod]
public void LogOnTest()
{
var target = new AccountController();
var membershipMock = MockRepository.GenerateMock<AccountMembershipService>();
var formsMock = MockRepository.GenerateMock<IFormsAuthenticationService>();
target.FormsService = formsMock;
target.MembershipService = membershipMock;
var model = new LogonModel() { USERNAME= "aa", Password = "aa"};
string returnUrl = null;
bool isLoginSuccess = true;
var actual = target.LogOnFromUser(model);
if (actual == null)
Assert.Fail("should have redirected");
}
Controller:
public ActionResult LogOn(LogonModel model)
{
if(MembershipService.ValidateUser(model.UsernName, model.Password))
{
FormsService.SignIn(model.UsernName, true);
var roles = Roles.GetAllRoles(); //Roles got failed here
return RedirectToAction("Index", "Event");
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View("LogOn", model);
}