Beispiel #1
0
        public void CanUndecorateClassWithInterfaceField()
        {
            IFoo inner = new ConcreteFoo();
            IFoo foo   = new DecoratorFoo1(inner);

            var undecorated = foo.Undecorate();

            undecorated.Should().BeSameAs(inner);
        }
Beispiel #2
0
        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);
        }