public void CanUndecorateClassWithInterfaceField() { IFoo inner = new ConcreteFoo(); IFoo foo = new DecoratorFoo1(inner); var undecorated = foo.Undecorate(); undecorated.Should().BeSameAs(inner); }
public void CanUndecorateMultipleLayers() { IFoo inner = new ConcreteFoo(); IFoo foo = new DecoratorFoo1(new DecoratorFoo2 { Foo = new DecoratorFoo1(inner) }); var undecorated = foo.Undecorate(); undecorated.Should().BeSameAs(inner); }