public void TestDrawCanvasWithNewShapeWithoutVisitorImplemented() { Canvas c = new Canvas { Height = 10, Width = 12 }; c.Add(new Box {Side = 5}); c.Add(new MyShape {SomeData = 3}); var visitor = _container.Resolve<IVisitor<Shape>>("Draw"); try { c.Accept(visitor); Assert.Fail("Exception expected"); } catch (InvalidOperationException) { // Expecting exception here for missing visitor implementation } A.CallTo(() => _graphics.DrawRectangle(10, 12)).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => _graphics.DrawBox(5)).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => _graphics.DrawCircle(0)).WithAnyArguments().MustNotHaveHappened(); }
public void TestDrawCanvasWithNewShapeWithCustomVisitor() { Canvas c = new Canvas { Height = 10, Width = 12 }; MyShape myShape = new MyShape {SomeData = 3}; c.Add(new Box {Side = 5}); c.Add(myShape); IVisitor<MyShape> customShapeVisitor = A.Fake<IVisitor<MyShape>>(); _container.RegisterInstance("Draw", customShapeVisitor); var visitor = _container.Resolve<IVisitor<Shape>>("Draw"); c.Accept(visitor); A.CallTo(() => _graphics.DrawRectangle(10, 12)).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => _graphics.DrawBox(5)).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => _graphics.DrawCircle(0)).WithAnyArguments().MustNotHaveHappened(); A.CallTo(() => customShapeVisitor.Visit(myShape)).MustHaveHappened(Repeated.Exactly.Once); }
public void TestDrawCanvas() { Canvas c = new Canvas { Height = 10, Width = 12 }; c.Add(new Box {Side = 5}); c.Add(new Circle {Radius = 12}); IVisitor<Shape> visitor = _container.Resolve<IVisitor<Shape>>("Draw"); c.Accept(visitor); A.CallTo(() => _graphics.DrawRectangle(10, 12)).MustHaveHappened(); A.CallTo(() => _graphics.DrawBox(5)).MustHaveHappened(); A.CallTo(() => _graphics.DrawCircle(12)).MustHaveHappened(); }