public void IsOnLine_CallsArcSegment_WhenCalled()
        {
            // Arrange
            var arcSegment = Substitute.For <IArcSegment>();
            var sut        = new TurnCircleArcSegment(arcSegment,
                                                      Constants.TurnDirection.Clockwise,
                                                      Constants.CircleOrigin.Start);

            // Act
            sut.IsOnLine(m_StartPoint);

            // Assert
            arcSegment.Received().IsOnLine(m_StartPoint);
        }
        public void IsOnLine_ReturnsValueFromCallingArcSegment_ForStartPoint()
        {
            // Arrange
            var arcSegment = Substitute.For <IArcSegment>();

            arcSegment.IsOnLine(m_StartPoint).Returns(true);

            var sut = new TurnCircleArcSegment(arcSegment,
                                               Constants.TurnDirection.Clockwise,
                                               Constants.CircleOrigin.Start);

            // Act
            bool actual = sut.IsOnLine(m_StartPoint);

            // Assert
            Assert.True(actual);
        }
        public void Constructor_SetsAngleToXAxisAtStartPoint_ForInternal()
        {
            // Arrange
            var arcSegment = Substitute.For <IArcSegment>();

            arcSegment.AngleToXAxisAtStartPoint.Returns(Angle.For45Degrees);
            var sut = new TurnCircleArcSegment(arcSegment,
                                               Constants.TurnDirection.Clockwise,
                                               Constants.CircleOrigin.Start);

            // Act
            sut.IsOnLine(m_StartPoint);

            // Assert
            Assert.AreEqual(arcSegment.AngleToXAxisAtStartPoint,
                            sut.AngleToXAxisAtStartPoint);
        }