Index: Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingCalculationScenarioTest.cs =================================================================== diff -u --- Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingCalculationScenarioTest.cs (revision 0) +++ Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingCalculationScenarioTest.cs (revision 7fd4637720024016b375a42ba17657011a4cf9e1) @@ -0,0 +1,132 @@ +// Copyright (C) Stichting Deltares 2019. All rights reserved. +// +// This file is part of Riskeer. +// +// Riskeer is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Base.Data; +using Core.Common.Data.TestUtil; +using Core.Common.TestUtil; +using NUnit.Framework; +using Riskeer.Common.Data.Calculation; +using Riskeer.Common.Data.TestUtil; +using Riskeer.Piping.Data.Probabilistic; +using Riskeer.Piping.Data.TestUtil; + +namespace Riskeer.Piping.Data.Test.Probabilistic +{ + [TestFixture] + public class ProbabilisticPipingCalculationScenarioTest + { + [Test] + public void Constructor_ExpectedValues() + { + // Call + var scenario = new ProbabilisticPipingCalculationScenario(); + + // Assert + Assert.IsInstanceOf(scenario); + Assert.IsInstanceOf(scenario); + + Assert.IsTrue(scenario.IsRelevant); + Assert.AreEqual(4, scenario.Contribution.NumberOfDecimalPlaces); + Assert.AreEqual(1.0, scenario.Contribution, scenario.Contribution.GetAccuracy()); + } + + [Test] + [TestCase(true)] + [TestCase(false)] + public void IsRelevant_Always_ReturnsSetValue(bool isRelevant) + { + // Setup + var scenario = new ProbabilisticPipingCalculationScenario(); + + // Call + scenario.IsRelevant = isRelevant; + + // Assert + Assert.AreEqual(isRelevant, scenario.IsRelevant); + } + + [Test] + public void Contribution_Always_ReturnsSetValue() + { + // Setup + var random = new Random(21); + RoundedDouble contribution = random.NextRoundedDouble(); + + var scenario = new ProbabilisticPipingCalculationScenario(); + + // Call + scenario.Contribution = contribution; + + // Assert + Assert.AreEqual(4, scenario.Contribution.NumberOfDecimalPlaces); + Assert.AreEqual(contribution, scenario.Contribution, scenario.Contribution.GetAccuracy()); + } + + [Test] + public void Clone_AllPropertiesSet_ReturnNewInstanceWithCopiedValues() + { + // Setup + ProbabilisticPipingCalculationScenario original = CreateRandomCalculationScenarioWithoutOutput(); + + original.Output = PipingTestDataGenerator.GetRandomProbabilisticPipingOutput(); + + // Call + object clone = original.Clone(); + + // Assert + CoreCloneAssert.AreObjectClones(original, clone, PipingCloneAssert.AreClones); + } + + [Test] + public void Clone_NotAllPropertiesSet_ReturnNewInstanceWithCopiedValues() + { + // Setup + ProbabilisticPipingCalculationScenario original = CreateRandomCalculationScenarioWithoutOutput(); + + // Call + object clone = original.Clone(); + + // Assert + CoreCloneAssert.AreObjectClones(original, clone, PipingCloneAssert.AreClones); + } + + private static ProbabilisticPipingCalculationScenario CreateRandomCalculationScenarioWithoutOutput() + { + var random = new Random(21); + + var calculation = new ProbabilisticPipingCalculationScenario + { + Comments = + { + Body = "Random body" + }, + Name = "Random name", + IsRelevant = random.NextBoolean(), + Contribution = random.NextRoundedDouble() + }; + + PipingTestDataGenerator.SetRandomDataToPipingInput(calculation.InputParameters); + + return calculation; + } + } +} \ No newline at end of file