Mock IIdentity e IPrincipal

Eu só quero perguntar qual seria a melhor abordagem para fornecer esses objetos em meus testes de unidade.

No meu teste de unidade, estou testando o objeto CSLA. O objeto CSLA está internamente usando uma propriedade e um método do objeto ApplicationUser. ApplicationUser é herdado do IPrincipal. As propriedades são: 1) ApplicationContext.User.IsInRole (...) - o método faz parte do IPrincipal 2) ApplicationContext.User.Identity.Name - o nome é propriedade de IIdentity que faz parte do ApplicationUser aka IPricipal

Exemplo do meu teste (usando o RhinoMock):

public void BeforeTest()
{
   mocks = new MockRepository();
   IPrincipal mockPrincipal = mocks.CreateMock<IPrincipal>();
   ApplicationContext.User = mockPrincipal;
   using (mocks.Record()) {
      Expect.Call(mockPrincipal.IsInRole(Roles.ROLE_MAN_PERSON)).Return(true);
      Expect.Call(mockPrincipal.Identity.Name).Return("ju"); //doesn't work!!!! return null ref exc
   }
}

Eu tenho um pequeno problema com o segundo valor, o nome da identidade. Eu tentei zombar dele, mas tenho problema para atribuir IIdentity zombado para ApplicationUser, como é feito internamente. Foi-me dito para criar apenas um IIPrincipal (incluindo o IIdentity) sozinho e não zombar dele. O que pode ser feito com certeza. Não tenho certeza se isso pode ser chamado como Stub usando?

Então você pode me aconselhar sobre como lidar com IPrincipal e IIdentity? Qualquer sugestão mais bem-vinda.

questionAnswers(2)

yourAnswerToTheQuestion