Comment Construire IdentityResult Avec Succès == true

J'ai une classe avec Microsoft.AspNet.L'identité.UserManager injecté, et je veux attendre le userManager.CreateAsync(utilisateur, mot de passe) méthode pour renvoyer une Tâche où la IdentityResult.Réussi = true. Cependant, les seuls constructeurs pour IdentityResult sont les cas les constructeurs qui vont entraîner Réussi bien être faux.

Comment créer un IdentityResult qui a Réussi == true? IdentityResult ne pas implémenter une interface et Réussi n'est pas virtuel, donc je ne vois pas de manière évidente de créer un objet fantaisie à travers Rhino se moque (que je suis en utilisant comme mon se moquant de cadre).

Ma méthode fait quelque chose comme ci-dessous. Fournir cet exemple pour montrer pourquoi je puisse avoir envie de se moquer de ce.

  public async Task<IdentityResult> RegisterUser(NewUser newUser)
    {
        ApplicationUser newApplicationUser = new ApplicationUser()
        {
            UserName = newUser.UserName,
            Email = newUser.Email
        };

        IdentityResult identityResult = await applicationUserManager.CreateAsync(newApplicationUser, newUser.Password);

        if(identityResult.Succeeded)
        {
            someOtherDependency.DoSomethingAmazing();
        }

        return identityResult;
    }

Je suis en train d'écrire un test unitaire qui assure que someOtherDependency.DoSomethingAmazing() est appelée si identityResult.Réussi est vrai. Merci pour toute aide!

  • Sonne comme un cas pour un décorateur (en.wikipedia.org/wiki/Decorator_pattern).
  • Ouais j'ai été vraiment essayer de réserve que comme un dernier recours. Il y a un certain nombre de méthodes qui retournent des IdentityResult de sorte qu'il serait difficile pour envelopper tous ces.... mais je peut juste.
  • Comme @jaytre mentionné, l'utilisation de la var result = IdentityResult.Le succès va vous donner une IdentityResult objet ayant Réussi = true
InformationsquelleAutor jakejgordon | 2014-10-09