Mock IIdentity i IPrincipal

Chcę tylko zapytać, jakie byłoby lepsze podejście do dostarczenia tych obiektów w moich testach jednostkowych.

W moim teście jednostkowym testuję obiekt CSLA. Obiekt CSLA korzysta wewnętrznie z jednej właściwości i jednej metody obiektu ApplicationUser. ApplicationUser jest dziedziczony z IPrincipal. Właściwości to: 1) ApplicationContext.User.IsInRole (...) - metoda jest częścią IPrincipal 2) ApplicationContext.User.Identity.Name - nazwa jest własnością IIdentity, która jest częścią ApplicationUser aka IPricipal

Przykład mojego testu (za pomocą 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
   }
}

Mam mały problem z drugą wartością, nazwą tożsamości. Próbowałem to zrobić, ale mam problem z przypisaniem makiety IIdentity do ApplicationUser, ponieważ odbywa się to wewnętrznie. Powiedziano mi, żebym po prostu utworzył jakiś IIPrincipal (w tym IIdentity) i nie kpił z niego. Co można zrobić na pewno. Nie jesteś pewien, czy można to nazwać używaniem Stub?

Czy możesz mi doradzić, jak radzić sobie z IPrincipal i IIdentity? Wszelkie sugestie mile widziane.

questionAnswers(2)

yourAnswerToTheQuestion