[Test] public void CanCreateProxy() { var all = new Dictionary <MemberInfo, int>(); var type = typeof(ISon); var i = type.GetInterfaces(); foreach (var parent in i) { GetMemembers(parent, all); } GetMemembers(type, all); ISon mock = MockRepository.GenerateStub <ISon>(); var son = NotifyPropertyChangeFactory.GetProxy(mock); mock.Name = "Son"; mock.Stub(m => m.Job).Return("NoJob"); Assert.That(son.Name, Is.EqualTo(mock.Name)); Assert.That(son.Age, Is.EqualTo(10)); Assert.That(son.Job, Is.EqualTo("NoJob")); Assert.That(((IFather)son).Job, Is.EqualTo("NoJob")); Assert.That(((IMother)son).Job, Is.EqualTo("NoJob")); Factory.SaveAssembly(); }