public void Read_EntityWithValues_ReturnExpectedOutput()
        {
            // Setup
            var random = new Random(21);
            IEnumerable <MacroStabilityInwardsSlice> slices = new[]
            {
                MacroStabilityInwardsSliceTestFactory.CreateSlice()
            };
            IEnumerable <RoundedDouble> tangentLines = new[]
            {
                new RoundedDouble(2, random.NextDouble())
            };

            var entity = new MacroStabilityInwardsCalculationOutputEntity
            {
                FactorOfStability       = random.NextDouble(),
                ForbiddenZonesXEntryMin = random.NextDouble(),
                ForbiddenZonesXEntryMax = random.NextDouble(),
                SlidingCurveSliceXML    = new MacroStabilityInwardsSliceCollectionXmlSerializer().ToXml(slices),
                SlidingCurveNonIteratedHorizontalForce         = random.NextDouble(),
                SlidingCurveIteratedHorizontalForce            = random.NextDouble(),
                SlidingCurveLeftSlidingCircleCenterX           = random.NextDouble(),
                SlidingCurveLeftSlidingCircleCenterY           = random.NextDouble(),
                SlidingCurveLeftSlidingCircleRadius            = random.NextDouble(),
                SlidingCurveLeftSlidingCircleIsActive          = Convert.ToByte(random.NextBoolean()),
                SlidingCurveLeftSlidingCircleNonIteratedForce  = random.NextDouble(),
                SlidingCurveLeftSlidingCircleIteratedForce     = random.NextDouble(),
                SlidingCurveLeftSlidingCircleDrivingMoment     = random.NextDouble(),
                SlidingCurveLeftSlidingCircleResistingMoment   = random.NextDouble(),
                SlidingCurveRightSlidingCircleCenterX          = random.NextDouble(),
                SlidingCurveRightSlidingCircleCenterY          = random.NextDouble(),
                SlidingCurveRightSlidingCircleRadius           = random.NextDouble(),
                SlidingCurveRightSlidingCircleIsActive         = Convert.ToByte(random.NextBoolean()),
                SlidingCurveRightSlidingCircleNonIteratedForce = random.NextDouble(),
                SlidingCurveRightSlidingCircleIteratedForce    = random.NextDouble(),
                SlidingCurveRightSlidingCircleDrivingMoment    = random.NextDouble(),
                SlidingCurveRightSlidingCircleResistingMoment  = random.NextDouble(),
                SlipPlaneTangentLinesXml = new TangentLineCollectionXmlSerializer().ToXml(tangentLines),
                SlipPlaneLeftGridXLeft   = random.NextDouble(0.0, 1.0),
                SlipPlaneLeftGridXRight  = random.NextDouble(2.0, 3.0),
                SlipPlaneLeftGridNrOfHorizontalPoints = random.Next(1, 100),
                SlipPlaneLeftGridZTop                  = random.NextDouble(2.0, 3.0),
                SlipPlaneLeftGridZBottom               = random.NextDouble(0.0, 1.0),
                SlipPlaneLeftGridNrOfVerticalPoints    = random.Next(1, 100),
                SlipPlaneRightGridXLeft                = random.NextDouble(0.0, 1.0),
                SlipPlaneRightGridXRight               = random.NextDouble(2.0, 3.0),
                SlipPlaneRightGridNrOfHorizontalPoints = random.Next(1, 100),
                SlipPlaneRightGridZTop                 = random.NextDouble(2.0, 3.0),
                SlipPlaneRightGridZBottom              = random.NextDouble(0.0, 1.0),
                SlipPlaneRightGridNrOfVerticalPoints   = random.Next(1, 100)
            };

            // Call
            MacroStabilityInwardsOutput output = entity.Read();

            // Assert
            MacroStabilityInwardsCalculationOutputEntityTestHelper.AssertOutputPropertyValues(output, entity);
        }
        private static void SetCalculationOutputsToScenario(MacroStabilityInwardsCalculationScenario calculationScenario,
                                                            MacroStabilityInwardsCalculationEntity entity)
        {
            MacroStabilityInwardsCalculationOutputEntity outputEntity = entity.MacroStabilityInwardsCalculationOutputEntities.SingleOrDefault();

            if (outputEntity != null)
            {
                calculationScenario.Output = outputEntity.Read();
            }
        }
        public void Read_EntityWithNullValues_ReturnExpectedOutputWithNaNValues()
        {
            // Setup
            MacroStabilityInwardsCalculationOutputEntity entity = CreateValidCalculationOutputEntity();

            // Call
            MacroStabilityInwardsOutput output = entity.Read();

            // Assert
            MacroStabilityInwardsCalculationOutputEntityTestHelper.AssertOutputPropertyValues(output, entity);
        }
        public void Read_SlidingCurveSliceXMLEmpty_ThrowsArgumentException()
        {
            // Setup
            MacroStabilityInwardsCalculationOutputEntity entity = CreateValidCalculationOutputEntity();

            entity.SlidingCurveSliceXML = string.Empty;

            // Call
            TestDelegate call = () => entity.Read();

            // Assert
            var exception = Assert.Throws <ArgumentException>(call);

            Assert.AreEqual("xml", exception.ParamName);
        }