public void Initialize()
 {
     _canvasDrawer = new CanvasDrawerMock(new CommandsManager());
     _canvasDrawer.SetCurrentShapeDrawerType(ShapeDrawerType.Line);
     _canvasDrawerDrawingState = new CanvasDrawerDrawingState(_canvasDrawer, new Point());
     _target = new PrivateObject(_canvasDrawerDrawingState);
 }
        public void TestCanvasDrawerDrawingState()
        {
            Assert.ThrowsException <ArgumentNullException>(() => new CanvasDrawerDrawingState(null, new Point()));
            Assert.ThrowsException <ArgumentNullException>(() => new CanvasDrawerDrawingState(new CanvasDrawerMock(new CommandsManager()), null));
            var canvasDrawer = new CanvasDrawerMock(new CommandsManager());

            canvasDrawer.SetCurrentShapeDrawerType(ShapeDrawerType.Rectangle);
            var currentDrawingShapeDrawingStartingPoint = new Point();
            var canvasDrawerDrawingState = new CanvasDrawerDrawingState(canvasDrawer, currentDrawingShapeDrawingStartingPoint);
            var target = new PrivateObject(canvasDrawerDrawingState);

            Assert.AreSame(target.GetFieldOrProperty(MEMBER_VARIABLE_NAME_CANVAS_DRAWER), canvasDrawer);
            Assert.AreSame(target.GetFieldOrProperty(MEMBER_VARIABLE_NAME_CURRENT_DRAWING_SHAPE_DRAWING_STARTING_POINT), currentDrawingShapeDrawingStartingPoint);
            Assert.IsInstanceOfType(target.GetFieldOrProperty(MEMBER_VARIABLE_NAME_CURRENT_DRAWING_SHAPE_HINT_SHAPE_DRAWER), typeof(RectangleDrawer));
        }