Envisager une méthode dans un .NET de l'assemblée:
public static string GetSecurityContextUserName()
{
//extract the username from request
string sUser = HttpContext.Current.User.Identity.Name;
//everything after the domain
sUser = sUser.Substring(sUser.IndexOf("\\") + 1).ToLower();
return sUser;
}
Je tiens à appeler cette méthode à partir d'un test de l'unité à l'aide de l'Moq cadre. Cette assemblée est une partie d'un webforms solution. L'unité de test ressemble à ça, mais je suis absent de l'Moq code.
//arrange
string ADAccount = "BUGSBUNNY";
string fullADName = "LOONEYTUNES\BUGSBUNNY";
//act
//need to mock up the HttpContext here somehow -- using Moq.
string foundUserName = MyIdentityBL.GetSecurityContextUserName();
//assert
Assert.AreEqual(foundUserName, ADAccount, true, "Should have been the same User Identity.");
Question:
- Comment puis-je utiliser Moq pour organiser un faux HttpContext objet avec une valeur comme "MyDomain\MyUser'?
- Comment puis-je l'associer faux à mon appel, dans ma méthode statique à l'
MyIdentityBL.GetSecurityContextUserName()
? - Avez-vous des suggestions sur la façon d'améliorer ce code, de l'architecture?