Я пытаюсь поэкспериментировать с RhinoMocks, где я должен сказать, что я новичок, и, вероятно, я не понимаю здесь какой-то очевидной вещи. Что я делаю, это что-то вроде:
[TestMethod]
public void SaveResponsibleUserFromChangeset()
{
var action = mocks.StrictMock<GenomeAction>();
var changeset = new ActionChangeset();
changeset.ResponsibleUser = new ChangeableProperty<UserIdentity>("Administrator") {IsChanged = true};
changeset.MarkAll(true);
using(mocks.Record())
{
Expect.Call(action.ResponsibleUser).SetPropertyAndIgnoreArgument();
}
using(mocks.Playback())
{
var persistor = new ActionPersistor(new MockIdentityResolver());
persistor.SaveActionChanges(changeset, action);
}
action.VerifyAllExpectations();
}
private class MockIdentityResolver : IIdentityResolver
{
public GenomeUser GetUser(UserIdentity identity)
{
var user = mocks.DynamicMock<GenomeUser>();
user.Username = identity.Username;
return user;
}
}
Намерение состоит в том, чтобы иметь очень простой тест, который проверяет, устанавливает ли метод SaveActionChanges
свойство ResponsibleUser
. В рамках этого ему необходимо разрешить идентификатор пользователя с помощью преобразователя, для которого я предоставил фиктивную реализацию. К сожалению, кажется, я не могу просто вернуть еще один макет в режиме воспроизведения, потому что он говорит (в закрывающей скобке второго использования), что Действие недопустимо, когда объект (типа GenomeUser) находится в записи государство.
Любые идеи о том, что вызывает проблемы и как это преодолеть?