예제 #1
0
        public void SetLineWidthGroupWithEmptyGroupsAndShapes()
        {
            var outLineStyle   = new OutLineStyle(Color.Green, true, 10);
            var rectangleFrame = new Rect(10, 10, 10, 10);
            var ellipseFrame   = new Rect(12, 12, 12, 12);
            var triangleFrame  = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, null, outLineStyle);
            var ellipse   = new Elipse(ellipseFrame, null, outLineStyle);
            var triangle  = new Triangle(triangleFrame, null, outLineStyle);

            var group             = new GroupShape();
            var emptyGroup        = new GroupShape();
            var groupOutLineStyle = group.GetOutlineStyle();

            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);
            group.InsertShape(triangle, 0);
            group.InsertShape(emptyGroup, 0);

            Assert.AreEqual(null, groupOutLineStyle.GetLineWidth());
            Assert.AreEqual(10, triangle.GetOutlineStyle().GetLineWidth());
            Assert.AreEqual(10, rectangle.GetOutlineStyle().GetLineWidth());
            Assert.AreEqual(10, ellipse.GetOutlineStyle().GetLineWidth());

            groupOutLineStyle.SetLineWidth(12);
            Assert.AreEqual(null, groupOutLineStyle.GetLineWidth());
            Assert.AreEqual(12, triangle.GetOutlineStyle().GetLineWidth());
            Assert.AreEqual(12, rectangle.GetOutlineStyle().GetLineWidth());
            Assert.AreEqual(12, ellipse.GetOutlineStyle().GetLineWidth());
        }
예제 #2
0
        public void GetColorAfterRemovingShapeWithDifferentColor()
        {
            var fillStyle         = new Style(Color.Green, true);
            var triangleFillStyle = new Style(Color.Yellow, true);
            var rectangleFrame    = new Rect(10, 10, 10, 10);
            var ellipseFrame      = new Rect(12, 12, 12, 12);
            var triangleFrame     = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, fillStyle);
            var ellipse   = new Elipse(ellipseFrame, fillStyle);
            var triangle  = new Triangle(triangleFrame, triangleFillStyle);

            var group         = new GroupShape();
            var triangleGroup = new GroupShape();

            triangleGroup.InsertShape(triangle, 0);
            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);
            group.InsertShape(triangleGroup, 0);

            var groupFillStyle = group.GetFillStyle();

            Assert.AreEqual(groupFillStyle.GetColor(), Color.Empty);

            group.RemoveShapeAtIndex(0);
            Assert.AreEqual(Color.Green, groupFillStyle.GetColor());
        }
예제 #3
0
        public void GetLineWidthAfterAddingShapeWithSameLineWidth()
        {
            var outLineStyle         = new OutLineStyle(Color.Blue, true, 10);
            var triangleOutLineStyle = new OutLineStyle(Color.Blue, true, 10);
            var rectangleFrame       = new Rect(10, 10, 10, 10);
            var ellipseFrame         = new Rect(12, 12, 12, 12);
            var triangleFrame        = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, null, outLineStyle);
            var ellipse   = new Elipse(ellipseFrame, null, outLineStyle);
            var triangle  = new Triangle(triangleFrame, null, triangleOutLineStyle);

            var group         = new GroupShape();
            var triangleGroup = new GroupShape();

            triangleGroup.InsertShape(triangle, 0);
            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);

            var groupOutLineStyle = group.GetOutlineStyle();

            Assert.AreEqual(10, groupOutLineStyle.GetLineWidth());

            group.InsertShape(triangleGroup, 0);
            Assert.AreEqual(10, groupOutLineStyle.GetLineWidth());
        }
예제 #4
0
        public void SetColorWithGroupWithShapeWithDifferentColor()
        {
            var fillStyle         = new Style(Color.Green, true);
            var triangleFillStyle = new Style(Color.Blue, true);
            var rectangleFrame    = new Rect(10, 10, 10, 10);
            var ellipseFrame      = new Rect(12, 12, 12, 12);
            var triangleFrame     = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, fillStyle);
            var ellipse   = new Elipse(ellipseFrame, fillStyle);
            var triangle  = new Triangle(triangleFrame, triangleFillStyle);

            var group          = new GroupShape();
            var triangleGroup  = new GroupShape();
            var groupFillStyle = group.GetFillStyle();

            triangleGroup.InsertShape(triangle, 0);
            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);
            group.InsertShape(triangleGroup, 0);

            Assert.AreEqual(Color.Empty, groupFillStyle.GetColor());
            Assert.AreEqual(Color.Blue, triangle.GetFillStyle().GetColor());
            Assert.AreEqual(Color.Green, rectangle.GetFillStyle().GetColor());
            Assert.AreEqual(Color.Green, ellipse.GetFillStyle().GetColor());

            groupFillStyle.SetColor(Color.Red);
            Assert.AreEqual(Color.Red, groupFillStyle.GetColor());
            Assert.AreEqual(Color.Red, triangle.GetFillStyle().GetColor());
            Assert.AreEqual(Color.Red, rectangle.GetFillStyle().GetColor());
            Assert.AreEqual(Color.Red, ellipse.GetFillStyle().GetColor());
        }
예제 #5
0
        public void GetColorAfterAddingShapeWithSameColor()
        {
            var fillStyle         = new Style(Color.Green, true);
            var triangleFillStyle = new Style(Color.Green, true);
            var rectangleFrame    = new Rect(10, 10, 10, 10);
            var ellipseFrame      = new Rect(12, 12, 12, 12);
            var triangleFrame     = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, fillStyle);
            var ellipse   = new Elipse(ellipseFrame, fillStyle);
            var triangle  = new Triangle(triangleFrame, triangleFillStyle);

            var group         = new GroupShape();
            var triangleGroup = new GroupShape();

            triangleGroup.InsertShape(triangle, 0);
            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);

            var groupFillStyle = group.GetFillStyle();

            Assert.AreEqual(Color.Green, groupFillStyle.GetColor());

            group.InsertShape(triangleGroup, 0);
            Assert.AreEqual(Color.Green, groupFillStyle.GetColor());
        }
예제 #6
0
        public void IsEnabledTestAfterAddingShapeWithSameValueIsEnabled()
        {
            var fillStyle         = new Style(Color.Green, true);
            var triangleFillStyle = new Style(Color.Green, true);
            var rectangleFrame    = new Rect(10, 10, 10, 10);
            var ellipseFrame      = new Rect(12, 12, 12, 12);
            var triangleFrame     = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, fillStyle);
            var ellipse   = new Elipse(ellipseFrame, fillStyle);
            var triangle  = new Triangle(triangleFrame, triangleFillStyle);

            var group         = new GroupShape();
            var triangleGroup = new GroupShape();

            triangleGroup.InsertShape(triangle, 0);
            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);

            var groupFillStyle = group.GetFillStyle();

            Assert.IsTrue(groupFillStyle.IsEnabled());

            group.InsertShape(triangleGroup, 0);
            Assert.IsTrue(groupFillStyle.IsEnabled());
        }
예제 #7
0
        public void GetFrameFromGroupWithShapesAfterRemovingShapeFromGroupWithOneShape()
        {
            var rectangleFrame           = new Rect(0, 200, 0, 150);
            var ellipseFrame             = new Rect(250, 100, -100, 100);
            var triangleFrame            = new Rect(-100, 100, 50, 100);
            var resultFrame              = new Rect(-100, 450, -100, 250);
            var resultFrameAfterRemoving = new Rect(0, 350, -100, 250);

            var rectangle = new Rectangle(rectangleFrame, null, null);
            var ellipse   = new Elipse(ellipseFrame, null, null);
            var triangle  = new Triangle(triangleFrame);

            var group         = new GroupShape();
            var triangleGroup = new GroupShape();

            group.InsertShape(rectangle, 0);
            group.InsertShape(ellipse, 0);
            group.InsertShape(triangleGroup, 0);
            triangleGroup.InsertShape(triangle, 0);

            Assert.IsTrue(IsEqualFrame(resultFrame, group.GetFrame().Value));
            Assert.IsTrue(IsEqualFrame(triangleFrame, triangle.GetFrame().Value));

            triangleGroup.RemoveShapeAtIndex(0);

            Assert.IsTrue(IsEqualFrame(resultFrameAfterRemoving, group.GetFrame().Value));
            Assert.IsNull(triangleGroup.GetFrame());
        }
예제 #8
0
        public void SetColorWithGroupWithEmptyGroupsAndShapes()
        {
            var fillStyle      = new Style(Color.Green, true);
            var rectangleFrame = new Rect(10, 10, 10, 10);
            var ellipseFrame   = new Rect(12, 12, 12, 12);
            var triangleFrame  = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, fillStyle);
            var ellipse   = new Elipse(ellipseFrame, fillStyle);
            var triangle  = new Triangle(triangleFrame, fillStyle);

            var group          = new GroupShape();
            var emptyGroup     = new GroupShape();
            var groupFillStyle = group.GetFillStyle();

            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);
            group.InsertShape(triangle, 0);
            group.InsertShape(emptyGroup, 0);

            Assert.AreEqual(Color.Empty, group.GetFillStyle().GetColor());
            Assert.AreEqual(Color.Green, triangle.GetFillStyle().GetColor());
            Assert.AreEqual(Color.Green, rectangle.GetFillStyle().GetColor());
            Assert.AreEqual(Color.Green, ellipse.GetFillStyle().GetColor());
            Assert.AreEqual(Color.Empty, emptyGroup.GetFillStyle().GetColor());

            groupFillStyle.SetColor(Color.Black);
            Assert.AreEqual(Color.Empty, group.GetFillStyle().GetColor());
            Assert.AreEqual(Color.Black, triangle.GetFillStyle().GetColor());
            Assert.AreEqual(Color.Black, rectangle.GetFillStyle().GetColor());
            Assert.AreEqual(Color.Black, ellipse.GetFillStyle().GetColor());
            Assert.AreEqual(Color.Empty, emptyGroup.GetFillStyle().GetColor());
        }
예제 #9
0
        public void SetColorWithGroupWithShapeWithSameColor()
        {
            var outLineStyle   = new OutLineStyle(Color.Green, true, 10);
            var rectangleFrame = new Rect(10, 10, 10, 10);
            var ellipseFrame   = new Rect(12, 12, 12, 12);
            var triangleFrame  = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, null, outLineStyle);
            var ellipse   = new Elipse(ellipseFrame, null, outLineStyle);
            var triangle  = new Triangle(triangleFrame, null, outLineStyle);

            var group         = new GroupShape();
            var triangleGroup = new GroupShape();

            triangleGroup.InsertShape(triangle, 0);
            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);

            var groupOutLineStyle = group.GetOutlineStyle();

            Assert.AreEqual(Color.Green, groupOutLineStyle.GetColor());
            Assert.AreEqual(Color.Green, triangle.GetOutlineStyle().GetColor());
            Assert.AreEqual(Color.Green, rectangle.GetOutlineStyle().GetColor());
            Assert.AreEqual(Color.Green, ellipse.GetOutlineStyle().GetColor());

            groupOutLineStyle.SetColor(Color.Blue);
            Assert.AreEqual(Color.Blue, triangle.GetOutlineStyle().GetColor());
            Assert.AreEqual(Color.Blue, rectangle.GetOutlineStyle().GetColor());
            Assert.AreEqual(Color.Blue, ellipse.GetOutlineStyle().GetColor());
        }
예제 #10
0
        public void EnableTestColorWithGroupWithShapeWithDifferentIsEnabledValue()
        {
            var outLineStyle         = new OutLineStyle(Color.Green, true, 10);
            var triangleOutLineStyle = new OutLineStyle(Color.Green, false, 15);
            var rectangleFrame       = new Rect(10, 10, 10, 10);
            var ellipseFrame         = new Rect(12, 12, 12, 12);
            var triangleFrame        = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, null, outLineStyle);
            var ellipse   = new Elipse(ellipseFrame, null, outLineStyle);
            var triangle  = new Triangle(triangleFrame, null, triangleOutLineStyle);

            var group             = new GroupShape();
            var triangleGroup     = new GroupShape();
            var groupOutLineStyle = group.GetOutlineStyle();

            triangleGroup.InsertShape(triangle, 0);
            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);
            group.InsertShape(triangleGroup, 0);

            Assert.IsFalse(groupOutLineStyle.IsEnabled());
            Assert.IsFalse(triangle.GetOutlineStyle().IsEnabled());
            Assert.IsTrue(rectangle.GetOutlineStyle().IsEnabled());
            Assert.IsTrue(ellipse.GetOutlineStyle().IsEnabled());

            groupOutLineStyle.Enable(true);
            Assert.IsTrue(groupOutLineStyle.IsEnabled());
            Assert.IsTrue(triangle.GetOutlineStyle().IsEnabled());
            Assert.IsTrue(rectangle.GetOutlineStyle().IsEnabled());
            Assert.IsTrue(ellipse.GetOutlineStyle().IsEnabled());
        }
예제 #11
0
        public void IsEnabledTestAfterAddingShapeWithSameValueIsEnabled()
        {
            var outLineStyle         = new OutLineStyle(Color.Blue, true, 10);
            var triangleOutLineStyle = new OutLineStyle(Color.Blue, true, 10);
            var rectangleFrame       = new Rect(10, 10, 10, 10);
            var ellipseFrame         = new Rect(12, 12, 12, 12);
            var triangleFrame        = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, null, outLineStyle);
            var ellipse   = new Elipse(ellipseFrame, null, outLineStyle);
            var triangle  = new Triangle(triangleFrame, null, triangleOutLineStyle);

            var group         = new GroupShape();
            var triangleGroup = new GroupShape();

            triangleGroup.InsertShape(triangle, 0);
            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);

            var groupOutLineStyle = group.GetOutlineStyle();

            Assert.IsTrue(groupOutLineStyle.IsEnabled());

            group.InsertShape(triangleGroup, 0);
            Assert.IsTrue(groupOutLineStyle.IsEnabled());
        }
예제 #12
0
        public void EnableTestColorWithGroupWithEmptyGroupsAndShapes()
        {
            var fillStyle      = new Style(Color.Green, true);
            var rectangleFrame = new Rect(10, 10, 10, 10);
            var ellipseFrame   = new Rect(12, 12, 12, 12);
            var triangleFrame  = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, fillStyle);
            var ellipse   = new Elipse(ellipseFrame, fillStyle);
            var triangle  = new Triangle(triangleFrame, fillStyle);

            var group          = new GroupShape();
            var emptyGroup     = new GroupShape();
            var groupFillStyle = group.GetFillStyle();

            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);
            group.InsertShape(triangle, 0);
            group.InsertShape(emptyGroup, 0);

            Assert.IsFalse(groupFillStyle.IsEnabled());
            Assert.IsTrue(triangle.GetFillStyle().IsEnabled());
            Assert.IsTrue(rectangle.GetFillStyle().IsEnabled());
            Assert.IsTrue(ellipse.GetFillStyle().IsEnabled());
            Assert.IsFalse(emptyGroup.GetFillStyle().IsEnabled());

            groupFillStyle.Enable(true);
            Assert.IsFalse(groupFillStyle.IsEnabled());
            Assert.IsTrue(triangle.GetFillStyle().IsEnabled());
            Assert.IsTrue(rectangle.GetFillStyle().IsEnabled());
            Assert.IsTrue(ellipse.GetFillStyle().IsEnabled());
            Assert.IsFalse(emptyGroup.GetFillStyle().IsEnabled());
        }
예제 #13
0
        public void GetColorAfterRemovingShapeWitSameColor()
        {
            var outLineStyle         = new OutLineStyle(Color.Blue, true, 10);
            var triangleOutLineStyle = new OutLineStyle(Color.Blue, true, 10);
            var rectangleFrame       = new Rect(10, 10, 10, 10);
            var ellipseFrame         = new Rect(12, 12, 12, 12);
            var triangleFrame        = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, null, outLineStyle);
            var ellipse   = new Elipse(ellipseFrame, null, outLineStyle);
            var triangle  = new Triangle(triangleFrame, null, triangleOutLineStyle);

            var group         = new GroupShape();
            var triangleGroup = new GroupShape();

            triangleGroup.InsertShape(triangle, 0);
            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);
            group.InsertShape(triangleGroup, 0);

            var groupOutLineStyle = group.GetOutlineStyle();

            Assert.AreEqual(groupOutLineStyle.GetColor(), Color.Blue);

            group.RemoveShapeAtIndex(0);
            Assert.AreEqual(Color.Blue, groupOutLineStyle.GetColor());
        }
예제 #14
0
        public void IsEnabledTestForGroupAfterRemovingShapeWithDifferentValueIsEnabled()
        {
            var fillStyle         = new Style(Color.Green, true);
            var triangleFillStyle = new Style(Color.Green, false);
            var rectangleFrame    = new Rect(10, 10, 10, 10);
            var ellipseFrame      = new Rect(12, 12, 12, 12);
            var triangleFrame     = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, fillStyle);
            var ellipse   = new Elipse(ellipseFrame, fillStyle);
            var triangle  = new Triangle(triangleFrame, triangleFillStyle);

            var group         = new GroupShape();
            var triangleGroup = new GroupShape();

            triangleGroup.InsertShape(triangle, 0);
            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);
            group.InsertShape(triangleGroup, 0);

            var groupFillStyle = group.GetFillStyle();

            Assert.IsFalse(groupFillStyle.IsEnabled());

            group.RemoveShapeAtIndex(0);
            Assert.IsTrue(groupFillStyle.IsEnabled());
        }
예제 #15
0
        public void GetFrameFromGroupWithEmptyGroups()
        {
            var group         = new GroupShape();
            var emptyGroupOne = new GroupShape();
            var emptyGroupTwo = new GroupShape();

            group.InsertShape(emptyGroupOne, 0);
            group.InsertShape(emptyGroupTwo, 0);

            Assert.IsNull(group.GetFrame());
        }
예제 #16
0
        public void SetFrameToGroupWithEmptyGroups()
        {
            var group         = new GroupShape();
            var emptyGroupOne = new GroupShape();
            var emptyGroupTwo = new GroupShape();

            group.InsertShape(emptyGroupOne, 0);
            group.InsertShape(emptyGroupTwo, 0);
            group.SetFrame(new Rect(10, 10, 10, 10));

            Assert.IsNull(group.GetFrame());
        }
예제 #17
0
        public void IsEnabledTestFromGroupWithEmptyGroups()
        {
            var group         = new GroupShape();
            var emptyGroupOne = new GroupShape();
            var emptyGroupTwo = new GroupShape();

            group.InsertShape(emptyGroupOne, 0);
            group.InsertShape(emptyGroupTwo, 0);

            Assert.IsFalse(group.GetFillStyle().IsEnabled());
            Assert.IsFalse(emptyGroupOne.GetFillStyle().IsEnabled());
        }
예제 #18
0
        public void GetColorFromGroupWithEmptyGroups()
        {
            var group         = new GroupShape();
            var emptyGroupOne = new GroupShape();
            var emptyGroupTwo = new GroupShape();

            group.InsertShape(emptyGroupOne, 0);
            group.InsertShape(emptyGroupTwo, 0);

            Assert.AreEqual(Color.Empty, group.GetFillStyle().GetColor());
            Assert.AreEqual(Color.Empty, emptyGroupOne.GetFillStyle().GetColor());
        }
예제 #19
0
        public void GetLineWidthFromGroupWithEmptyGroups()
        {
            var group         = new GroupShape();
            var emptyGroupOne = new GroupShape();
            var emptyGroupTwo = new GroupShape();

            group.InsertShape(emptyGroupOne, 0);
            group.InsertShape(emptyGroupTwo, 0);

            Assert.AreEqual(null, group.GetOutlineStyle().GetLineWidth());
            Assert.AreEqual(null, emptyGroupOne.GetOutlineStyle().GetLineWidth());
        }
예제 #20
0
        static void Main(string [] args)
        {
            var canvas = new Canvas.SkiaCanvas(1000, 1000);

            var slide = new Slide(1000, 1000);

            var sunFillStyle            = new Style.Style(Color.Yellow, true);
            var sunOutLineStyle         = new OutLineStyle(Color.Orange, true, 5);
            var firstFloorFillStyle     = new Style.Style(Color.Brown, true);
            var firstFloorOutLineStyle  = new OutLineStyle(Color.Red, true, 5);
            var secondFloorFillStyle    = new Style.Style(Color.Green, true);
            var secondFloorOutLineStyle = new OutLineStyle(Color.GreenYellow, true, 5);

            var roofFrame = new Rect(200, 200, 95, 100);
            var roof      = new Triangle(roofFrame, secondFloorFillStyle, secondFloorOutLineStyle);

            var porchFrame        = new Rect(100, 100, 250, 100);
            var porch             = new Rectangle(porchFrame, firstFloorFillStyle, firstFloorOutLineStyle);
            var rectangleFrameTwo = new Rect(200, 200, 200, 150);
            var rectangleTwo      = new Rectangle(rectangleFrameTwo, firstFloorFillStyle, firstFloorOutLineStyle);

            var ellipseFrame = new Rect(450, 100, 100, 100);
            var ellipse      = new Elipse(ellipseFrame, sunFillStyle, sunOutLineStyle);

            var home    = new GroupShape();
            var sky     = new GroupShape();
            var picture = new GroupShape();

            slide.SetBackgroundColor(Color.Black.ToArgb());
            home.InsertShape(porch, 0);
            home.InsertShape(rectangleTwo, 0);
            home.InsertShape(roof, 0);
            sky.InsertShape(ellipse, 0);
            picture.InsertShape(home, 0);
            picture.InsertShape(sky, 0);
            slide.GetShapes().InsertShape(picture, 0);
            slide.Draw(canvas);
            PrintFrame(picture.GetFrame().Value);
            canvas.Save("E:\\учёба\\test1.png");

            var newGroupFrame = new Rect(0, 900, 0, 510);

            picture.SetFrame(newGroupFrame);
            var pictureStyle = picture.GetFillStyle();

            pictureStyle.SetColor(Color.Azure);
            slide.Draw(canvas);
            PrintFrame(ellipse.GetFrame().Value);
            canvas.Save("E:\\учёба\\test2.png");
        }
예제 #21
0
        public void GetFrame_GroupShapeHasTwoPhigure_ReturnCombinedFrame()
        {
            // Arrange
            var groupShape = new GroupShape();
            var rectangle  = new Rectangle(new Rect(left: 0, top: 1, width: 2, height: 1));
            var ellipse    = new Rectangle(new Rect(left: 1, top: 2, width: 1.5f, height: 1));

            groupShape.InsertShape(rectangle, 0);
            groupShape.InsertShape(ellipse, 1);
            var expectedFrame = new Rect(0, 2, 2.5f, 2);

            // Act
            Rect?result = groupShape.GetFrame();

            // Assert
            Assert.Equal(expectedFrame, result);
        }
예제 #22
0
        public void InsertShape()
        {
            var rectangleFrame = new Rect(200, 200, 200, 150);
            var ellipseFrame   = new Rect(450, 100, 100, 100);
            var triangleFrame  = new Rect(100, 100, 250, 100);

            var rectangle = new Rectangle(rectangleFrame, null, null);
            var ellipse   = new Elipse(ellipseFrame, null, null);
            var triangle  = new Triangle(triangleFrame, null, null);
            var group     = new GroupShape();

            group.InsertShape(rectangle, 0);
            Assert.AreEqual(1, group.GetShapesCount());
            Assert.ThrowsException <IndexOutOfRangeException>(() => group.InsertShape(triangle, -1));
            Assert.ThrowsException <IndexOutOfRangeException>(() => group.InsertShape(ellipse, 2));
            group.InsertShape(ellipse, 1);
            Assert.AreEqual(2, group.GetShapesCount());
        }
예제 #23
0
        public void InsertShape_IndexOutOfRange_ThrowsOutOfRangeException()
        {
            // Arrange
            var groupShape = new GroupShape();

            // Act
            // Assert
            Assert.Throws <ArgumentOutOfRangeException>(() => groupShape.InsertShape(_shapeMock.Object, 3));
        }
예제 #24
0
        public void GetFrameFromGroupWithShapesAndOneEmptyGroup()
        {
            var rectangleFrame = new Rect(0, 200, 0, 150);
            var ellipseFrame   = new Rect(250, 100, -100, 100);
            var resultFrame    = new Rect(0, 350, -100, 250);

            var rectangle = new Rectangle(rectangleFrame, null, null);
            var ellipse   = new Elipse(ellipseFrame, null, null);

            var group      = new GroupShape();
            var emptyGroup = new GroupShape();

            group.InsertShape(rectangle, 0);
            group.InsertShape(ellipse, 0);
            group.InsertShape(emptyGroup, 0);

            Assert.IsTrue(IsEqualFrame(resultFrame, group.GetFrame().Value));
            Assert.IsNull(emptyGroup.GetFrame());
        }
예제 #25
0
        public void GetFrameFromGroupWithOneShape()
        {
            var rectangleFrame = new Rect(200, 200, 200, 150);
            var rectangle      = new Rectangle(rectangleFrame, null, null);
            var group          = new GroupShape();

            group.InsertShape(rectangle, 0);

            Assert.IsTrue(IsEqualFrame(rectangleFrame, group.GetFrame().Value));
        }
예제 #26
0
        public void InsertShape_InsertFirstShape_ShapesCountEqualsOne()
        {
            // Arrange
            var groupShape = new GroupShape();

            // Act
            groupShape.InsertShape(_shapeMock.Object, 0);

            // Assert
            Assert.Equal(1, groupShape.ShapesCount);
        }
예제 #27
0
        public void GetColorFromGroupWithEmptyGroupsAndShapes()
        {
            var outLineStyle   = new OutLineStyle(Color.Blue, true, 10);
            var rectangleFrame = new Rect(10, 10, 10, 10);
            var ellipseFrame   = new Rect(12, 12, 12, 12);
            var triangleFrame  = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, null, outLineStyle);
            var ellipse   = new Elipse(ellipseFrame, null, outLineStyle);
            var triangle  = new Triangle(triangleFrame, null, outLineStyle);

            var group      = new GroupShape();
            var emptyGroup = new GroupShape();

            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);
            group.InsertShape(triangle, 0);
            group.InsertShape(emptyGroup, 0);

            Assert.AreEqual(Color.Empty, group.GetOutlineStyle().GetColor());
        }
예제 #28
0
        public void IsEnabledTestFromGroupWithEmptyGroupsAndShapes()
        {
            var outLineStyle   = new OutLineStyle(Color.Blue, true, 10);
            var rectangleFrame = new Rect(10, 10, 10, 10);
            var ellipseFrame   = new Rect(12, 12, 12, 12);
            var triangleFrame  = new Rect(15, 15, 15, 15);

            var rectangle = new Rectangle(rectangleFrame, null, outLineStyle);
            var ellipse   = new Elipse(ellipseFrame, null, outLineStyle);
            var triangle  = new Triangle(triangleFrame, null, outLineStyle);

            var group      = new GroupShape();
            var emptyGroup = new GroupShape();

            group.InsertShape(ellipse, 0);
            group.InsertShape(rectangle, 0);
            group.InsertShape(triangle, 0);
            group.InsertShape(emptyGroup, 0);

            Assert.IsFalse(group.GetOutlineStyle().IsEnabled());
        }
예제 #29
0
        private void Drawing()
        {
            var wpfCanvas = (System.Windows.Controls.Canvas)FindName("canvas");
            var canvas    = new Canvas(wpfCanvas);
            var slide     = new Slide(1000, 700, new RGBAColor(137, 196, 244, 50));

            var grassFrame     = new Rect <double>(0, 500, 1000, 200);
            var grassFillStyle = new Slides.Styles.Style(new RGBAColor(135, 211, 124, 255), true);
            var grass          = new Rectangle(grassFrame, null, grassFillStyle);

            var lakeFrame        = new Rect <double>(600, 500, 300, 100);
            var lakeFillStyle    = new Slides.Styles.Style(new RGBAColor(44, 130, 201, 255), true);
            var lakeOutlineStyle = new OutlineStyle(new RGBAColor(1, 50, 67, 255), true, 2);
            var lake             = new Ellipse(lakeFrame, lakeOutlineStyle, lakeFillStyle);

            var house = new GroupShape();

            var baseFrame        = new Rect <double>(100, 400, 300, 200);
            var baseFillStyle    = new Slides.Styles.Style(new RGBAColor(205, 133, 63, 255), true);
            var baseOutlineStyle = new OutlineStyle(new RGBAColor(139, 69, 19, 255), true, 2);
            var baseShape        = new Rectangle(baseFrame, baseOutlineStyle, baseFillStyle);

            var roofFrame     = new Rect <double>(50, 300, 400, 100);
            var roofFillStyle = new Slides.Styles.Style(new RGBAColor(46, 49, 49, 255), true);
            var roof          = new Triangle(roofFrame, null, roofFillStyle);

            var pipeFrame        = new Rect <double>(330, 300, 50, 90);
            var pipeFillStyle    = new Slides.Styles.Style(new RGBAColor(128, 0, 0, 255), true);
            var pipeOutlineStyle = new OutlineStyle(new RGBAColor(255, 222, 173, 255), true, 2);
            var pipe             = new Rectangle(pipeFrame, pipeOutlineStyle, pipeFillStyle);

            house.InsertShape(baseShape, 0);
            house.InsertShape(pipe, 1);
            house.InsertShape(roof, 2);

            slide.InsertShape(grass);
            slide.InsertShape(lake, 1);
            slide.InsertShape(house, 2);
            slide.Draw(canvas);
        }
예제 #30
0
        public void RemoveShapeAtIndex_ShapeCountEqualsOne_ShapesCountEqualsZero()
        {
            // Arrange
            var groupShape = new GroupShape();

            groupShape.InsertShape(_shapeMock.Object, 0);

            // Act
            groupShape.RemoveShapeAtIndex(0);

            // Assert
            Assert.Equal(0, groupShape.ShapesCount);
        }