Exemple #1
0
        public void Contains_IfDoesNotContainPosition_ReturnsFalse()
        {
            // Arrange
            Position        position = new Position(-10, 1);
            RectangularArea sut      = CreateSut();

            // Act
            bool contains = sut.Contains(position);

            // Assert
            contains.Should().BeFalse();
        }
Exemple #2
0
        public void Contains_IfContainsPosition_ReturnsTrue()
        {
            // Arrange
            Position        position = new Position(1, 1);
            RectangularArea sut      = CreateSut();

            // Act
            bool contains = sut.Contains(position);

            // Assert
            contains.Should().BeTrue();
        }
Exemple #3
0
        public void Contains_IfPositionNotNull_DoesNotThrow()
        {
            // Arrange
            Position        position = Position.Origin;
            RectangularArea sut      = CreateSut();

            // Act
            Action act = () => sut.Contains(position);

            // Assert
            act.Should().NotThrow();
        }
Exemple #4
0
        public void Contains_IfPositionNull_Throws()
        {
            // Arrange
            Position        position = null;
            RectangularArea sut      = CreateSut();

            // Act
            Action act = () => sut.Contains(position);

            // Assert
            act.Should().Throw <ArgumentNullException>()
            .WithMessage($"Parameter can not be null. (Parameter 'position')");
        }
Exemple #5
0
        public void Parse_ReturnsArea()
        {
            // Arrange
            string area = "1 2";
            RectangularAreaParser sut = CreateSut();

            // Act
            IArea result = sut.Parse(area);

            // Assert
            RectangularArea expectedResult = new RectangularArea(Position.Origin, new Position(1, 2));

            result.Should().Be(expectedResult);
        }
        RectangleDragInfo AddRectangle(RectangularArea area)
        {
            var info = new RectangleDragInfo
            {
                Area      = area,
                Rectangle = new Rectangle
                {
                    Fill            = Brushes.Red,
                    StrokeThickness = 5,
                    Opacity         = 0.3,
                    Stroke          = Brushes.Yellow,
                    Width           = area.Width,
                    Height          = area.Height
                },
                StartPoint = new Point(area.X, area.Y)
            };

            Canvas.SetLeft(info.Rectangle, area.X);
            Canvas.SetTop(info.Rectangle, area.Y);
            canvas.Children.Add(info.Rectangle);
            areaInfos.Add(info);
            return(info);
        }
 void canvas_MouseDown(object sender, MouseButtonEventArgs e)
 {
     if (Keyboard.Modifiers == ModifierKeys.None)
     {
         e.Handled = true;
         var startPoint = e.GetPosition(canvas);
         if (dragInfo is NoArea)
         {
             if (circleButton.IsChecked == true)
             {
                 // create circle
                 canvas.CaptureMouse();
                 var area = new Cylinder {
                     X = startPoint.X, Y = startPoint.Y, R = 0
                 };
                 var info = AddCylinder(area);
                 dragInfo = info;
                 Region.Areas.Add(info.Area);
             }
             else if (rectangleButton.IsChecked == true)
             {
                 // create rectangle
                 canvas.CaptureMouse();
                 var area = new RectangularArea {
                     X = startPoint.X, Y = startPoint.Y, Height = 0, Width = 0
                 };
                 var info = AddRectangle(area);
                 dragInfo = info;
                 Region.Areas.Add(info.Area);
             }
             else if (deleteButton.IsChecked == true && e.Source is Shape)
             {
                 // delete shape
                 foreach (var info in areaInfos.ToArray())
                 {
                     // remove area
                     var circleDragInfo = info as CircleDragInfo;
                     if (circleDragInfo != null &&
                         (circleDragInfo.Center == e.Source || circleDragInfo.Circle == e.Source))
                     {
                         areaInfos.Remove(circleDragInfo);
                         Region.Areas.Remove(circleDragInfo.Area);
                         canvas.Children.Remove(circleDragInfo.Center);
                         canvas.Children.Remove(circleDragInfo.Circle);
                     }
                     var rectangleDragInfo = info as RectangleDragInfo;
                     if (rectangleDragInfo != null && (rectangleDragInfo.Rectangle == e.Source))
                     {
                         areaInfos.Remove(rectangleDragInfo);
                         Region.Areas.Remove(rectangleDragInfo.Area);
                         canvas.Children.Remove(rectangleDragInfo.Rectangle);
                     }
                     if (info is NoArea)
                     {
                         throw new Exception("NoArea should not be in the list");
                     }
                 }
             }
         }
     }
 }