Ejemplo n.º 1
0
        public void Create_HasCalculationOutputWithWaveImpactWithWaveDirection_EntityHasCalculationOutputEntity()
        {
            // Setup
            var registry    = new PersistenceRegistry();
            var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation
            {
                Output = GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveImpactWithWaveDirection(
                    new[]
                {
                    new TestWaveConditionsOutput(),
                    new TestWaveConditionsOutput()
                })
            };

            // Call
            GrassCoverErosionOutwardsWaveConditionsCalculationEntity entity = calculation.Create(registry, 0);

            // Assert
            ICollection <GrassCoverErosionOutwardsWaveConditionsOutputEntity> outputEntities = entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities;

            Assert.AreEqual(2, outputEntities.Count);
            CollectionAssert.AreEqual(new[]
            {
                0,
                1
            }, outputEntities.Select(oe => oe.Order));

            Assert.IsTrue(outputEntities.All(oe => oe.OutputType == Convert.ToByte(GrassCoverErosionOutwardsWaveConditionsOutputType.WaveImpactWithWaveDirection)));
        }
Ejemplo n.º 2
0
        private static GrassCoverErosionOutwardsWaveConditionsOutput CreateGrassCoverErosionOutwardsWaveConditionsOutput(IEnumerable <WaveConditionsOutput> waveRunUpOutput,
                                                                                                                         IEnumerable <WaveConditionsOutput> waveImpactOutput,
                                                                                                                         IEnumerable <WaveConditionsOutput> waveImpactWithWaveDirectionOutput)
        {
            bool hasWaveRunUpOutput  = waveRunUpOutput.Any();
            bool hasWaveImpactOutput = waveImpactOutput.Any();
            bool hasWaveImpactWithWaveDirectionOutput = waveImpactWithWaveDirectionOutput.Any();

            if (!hasWaveRunUpOutput)
            {
                return(hasWaveImpactOutput
                           ? GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveImpact(waveImpactOutput)
                           : GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveImpactWithWaveDirection(waveImpactWithWaveDirectionOutput));
            }

            if (hasWaveImpactOutput)
            {
                return(!hasWaveImpactWithWaveDirectionOutput
                           ? GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveRunUpAndWaveImpact(waveRunUpOutput, waveImpactOutput)
                           : GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveRunUpWaveImpactAndWaveImpactWithWaveDirection(waveRunUpOutput, waveImpactOutput, waveImpactWithWaveDirectionOutput));
            }

            return(hasWaveImpactWithWaveDirectionOutput
                       ? GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveRunUpAndWaveImpactWithWaveDirection(waveRunUpOutput, waveImpactWithWaveDirectionOutput)
                       : GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveRunUp(waveRunUpOutput));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates output for the wave conditions calculation.
        /// </summary>
        /// <param name="calculationType">The type of the calculation.</param>
        /// <param name="waveRunUpOutput">The output of the wave run up calculation.</param>
        /// <param name="waveImpactOutput">The output of the wave impact calculation.</param>
        /// <param name="waveImpactWithWaveDirectionOutput">The output of the wave impact with wave direction calculation.</param>
        /// <returns>The created <see cref="GrassCoverErosionOutwardsWaveConditionsOutput"/>.</returns>
        /// <exception cref="NotSupportedException">Thrown when <see cref="GrassCoverErosionOutwardsWaveConditionsCalculationType"/>
        /// is a valid value, but unsupported.</exception>
        private static GrassCoverErosionOutwardsWaveConditionsOutput CreateOutput(GrassCoverErosionOutwardsWaveConditionsCalculationType calculationType,
                                                                                  IEnumerable <WaveConditionsOutput> waveRunUpOutput,
                                                                                  IEnumerable <WaveConditionsOutput> waveImpactOutput,
                                                                                  IEnumerable <WaveConditionsOutput> waveImpactWithWaveDirectionOutput)
        {
            switch (calculationType)
            {
            case GrassCoverErosionOutwardsWaveConditionsCalculationType.WaveRunUp:
                return(GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveRunUp(waveRunUpOutput));

            case GrassCoverErosionOutwardsWaveConditionsCalculationType.WaveImpact:
                return(GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveImpact(waveImpactOutput));

            case GrassCoverErosionOutwardsWaveConditionsCalculationType.WaveRunUpAndWaveImpact:
                return(GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveRunUpAndWaveImpact(waveRunUpOutput, waveImpactOutput));

            case GrassCoverErosionOutwardsWaveConditionsCalculationType.WaveImpactWithWaveDirection:
                return(GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveImpactWithWaveDirection(waveImpactWithWaveDirectionOutput));

            case GrassCoverErosionOutwardsWaveConditionsCalculationType.WaveRunUpAndWaveImpactWithWaveDirection:
                return(GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveRunUpAndWaveImpactWithWaveDirection(waveRunUpOutput, waveImpactWithWaveDirectionOutput));

            case GrassCoverErosionOutwardsWaveConditionsCalculationType.All:
                return(GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveRunUpWaveImpactAndWaveImpactWithWaveDirection(waveRunUpOutput, waveImpactOutput, waveImpactWithWaveDirectionOutput));

            default:
                throw new NotSupportedException();
            }
        }
        public void CreateOutputWithWaveImpact_WaveImpactOutputNull_ThrowsArgumentNullException()
        {
            // Call
            TestDelegate call = () =>
                                GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveImpact(null);

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

            Assert.AreEqual("waveImpactOutput", exception.ParamName);
        }
        public void CreateOutputWithWaveImpact_WithWaveImpactOutput_ReturnsOutput()
        {
            // Setup
            IEnumerable <WaveConditionsOutput> waveImpactOutput = Enumerable.Empty <WaveConditionsOutput>();

            // Call
            GrassCoverErosionOutwardsWaveConditionsOutput output =
                GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveImpact(waveImpactOutput);

            // Assert
            Assert.AreSame(waveImpactOutput, output.WaveImpactOutput);
            Assert.IsNull(output.WaveRunUpOutput);
            Assert.IsNull(output.WaveImpactWithWaveDirectionOutput);
        }
        public void CreateOutputWithWaveRunUpAndWaveImpact_WaveRunUpOutputNull_ThrowsArgumentNullException()
        {
            // Setup
            IEnumerable <WaveConditionsOutput> waveImpactOutput = Enumerable.Empty <WaveConditionsOutput>();

            // Call
            TestDelegate call = () =>
                                GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveRunUpAndWaveImpact(null,
                                                                                                                            waveImpactOutput);

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

            Assert.AreEqual("waveRunUpOutput", exception.ParamName);
        }
Ejemplo n.º 7
0
        public void Create_HasCalculationOutputWithWaveRunUpAndWaveImpact_EntityHasCalculationOutputEntity()
        {
            // Setup
            var registry    = new PersistenceRegistry();
            var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation
            {
                Output = GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveRunUpWaveImpactAndWaveImpactWithWaveDirection(
                    new[]
                {
                    new TestWaveConditionsOutput()
                },
                    new[]
                {
                    new TestWaveConditionsOutput()
                },
                    new[]
                {
                    new TestWaveConditionsOutput()
                })
            };

            // Call
            GrassCoverErosionOutwardsWaveConditionsCalculationEntity entity = calculation.Create(registry, 0);

            // Assert
            ICollection <GrassCoverErosionOutwardsWaveConditionsOutputEntity> outputEntities = entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities;

            Assert.AreEqual(3, outputEntities.Count);
            CollectionAssert.AreEqual(new[]
            {
                0,
                1,
                2
            }, outputEntities.Select(oe => oe.Order));

            Assert.AreEqual(Convert.ToByte(GrassCoverErosionOutwardsWaveConditionsOutputType.WaveRunUp), outputEntities.ElementAt(0).OutputType);
            Assert.AreEqual(Convert.ToByte(GrassCoverErosionOutwardsWaveConditionsOutputType.WaveImpact), outputEntities.ElementAt(1).OutputType);
            Assert.AreEqual(Convert.ToByte(GrassCoverErosionOutwardsWaveConditionsOutputType.WaveImpactWithWaveDirection), outputEntities.ElementAt(2).OutputType);
        }