Ложный IIdentity и IPrincipal

Я просто хочу спросить, как лучше подходить к поставке этих объектов в моих модульных тестах.

В моем модульном тесте я тестирую объект CSLA. Объект CSLA внутренне использует одно свойство и один метод объекта ApplicationUser. ApplicationUser наследуется от IPrincipal. Свойства: 1) ApplicationContext.User.IsInRole (...) - метод является частью IPrincipal 2) ApplicationContext.User.Identity.Name - имя является свойством IIdentity, которое является частью ApplicationUser aka IPricipal.

Пример моего теста (с использованием 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
   }
}

У меня небольшая проблема со вторым значением, именем личности. Я пытался имитировать его, но у меня возникла проблема с тем, чтобы назначить макет IIdentity для ApplicationUser, как это делается внутренне. Мне сказали просто создать какой-то IIPrincipal (в том числе IIdentity) самостоятельно, а не издеваться над ним вообще. Что можно сделать наверняка. Не уверен, что это можно назвать Stub с помощью?

Так что вы можете посоветовать мне, как бороться с IPrincipal и IIdentity? Любое предложение приветствуется.

Ответы на вопрос(2)

Ваш ответ на вопрос