public void CastingToABaseClassWithADelegatingObjectInTheModuleChainCastsSuccessfully() { var outer = new Cat(); dynamic value = new DelegatingObject( outer, new DelegatingObject() ); Animal animal = value; Assert.AreSame( outer, animal ); }