// Copyright (C) Stichting Deltares 2018. All rights reserved.
//
// This file is part of Ringtoets.
//
// Ringtoets 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.TestUtil;
using NUnit.Framework;
using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Integration.Data.Merge;
namespace Ringtoets.Integration.Data.Test.Merge
{
[TestFixture]
public class AssessmentSectionMergeDataTest
{
[Test]
public void Constructor_AssessmentSectionNull_ThrowsArgumentNullException()
{
// Call
TestDelegate call = () => new AssessmentSectionMergeData(null, new AssessmentSectionMergeData.ConstructionProperties());
// Assert
var exception = Assert.Throws(call);
Assert.AreEqual("assessmentSection", exception.ParamName);
}
[Test]
public void Constructor_PropertiesNull_ThrowsArgumentNullException()
{
// Call
TestDelegate call = () => new AssessmentSectionMergeData(new AssessmentSection(AssessmentSectionComposition.Dike), null);
// Assert
var exception = Assert.Throws(call);
Assert.AreEqual("properties", exception.ParamName);
}
[Test]
public void Constructor_DefaultProperties_ExpectedValues()
{
// Setup
var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
// Call
var mergeData = new AssessmentSectionMergeData(assessmentSection, new AssessmentSectionMergeData.ConstructionProperties());
// Assert
Assert.AreSame(assessmentSection, mergeData.AssessmentSection);
Assert.IsFalse(mergeData.MergePiping);
Assert.IsFalse(mergeData.MergeGrassCoverErosionInwards);
Assert.IsFalse(mergeData.MergeMacroStabilityInwards);
Assert.IsFalse(mergeData.MergeMacroStabilityOutwards);
Assert.IsFalse(mergeData.MergeMicrostability);
Assert.IsFalse(mergeData.MergeStabilityStoneCover);
Assert.IsFalse(mergeData.MergeWaveImpactAsphaltCover);
Assert.IsFalse(mergeData.MergeWaterPressureAsphaltCover);
Assert.IsFalse(mergeData.MergeGrassCoverErosionOutwards);
Assert.IsFalse(mergeData.MergeGrassCoverSlipOffOutwards);
Assert.IsFalse(mergeData.MergeGrassCoverSlipOffInwards);
Assert.IsFalse(mergeData.MergeHeightStructures);
Assert.IsFalse(mergeData.MergeClosingStructures);
Assert.IsFalse(mergeData.MergePipingStructure);
Assert.IsFalse(mergeData.MergeStabilityPointStructures);
Assert.IsFalse(mergeData.MergeStrengthStabilityLengthwiseConstruction);
Assert.IsFalse(mergeData.MergeDuneErosion);
Assert.IsFalse(mergeData.MergeTechnicalInnovation);
}
[Test]
public void Constructor_PropertiesSet_ExpectedValues()
{
// Setup
var random = new Random(21);
var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
var constructionProperties = new AssessmentSectionMergeData.ConstructionProperties
{
MergePiping = random.NextBoolean(),
MergeGrassCoverErosionInwards = random.NextBoolean(),
MergeMacroStabilityInwards = random.NextBoolean(),
MergeMacroStabilityOutwards = random.NextBoolean(),
MergeMicrostability = random.NextBoolean(),
MergeStabilityStoneCover = random.NextBoolean(),
MergeWaveImpactAsphaltCover = random.NextBoolean(),
MergeWaterPressureAsphaltCover = random.NextBoolean(),
MergeGrassCoverErosionOutwards = random.NextBoolean(),
MergeGrassCoverSlipOffOutwards = random.NextBoolean(),
MergeGrassCoverSlipOffInwards = random.NextBoolean(),
MergeHeightStructures = random.NextBoolean(),
MergeClosingStructures = random.NextBoolean(),
MergePipingStructure = random.NextBoolean(),
MergeStabilityPointStructures = random.NextBoolean(),
MergeStrengthStabilityLengthwiseConstruction = random.NextBoolean(),
MergeDuneErosion = random.NextBoolean(),
MergeTechnicalInnovation = random.NextBoolean()
};
// Call
var mergeData = new AssessmentSectionMergeData(assessmentSection, constructionProperties);
// Assert
Assert.AreSame(assessmentSection, mergeData.AssessmentSection);
Assert.AreEqual(constructionProperties.MergePiping, mergeData.MergePiping);
Assert.AreEqual(constructionProperties.MergeGrassCoverErosionInwards, mergeData.MergeGrassCoverErosionInwards);
Assert.AreEqual(constructionProperties.MergeMacroStabilityInwards, mergeData.MergeMacroStabilityInwards);
Assert.AreEqual(constructionProperties.MergeMacroStabilityOutwards, mergeData.MergeMacroStabilityOutwards);
Assert.AreEqual(constructionProperties.MergeMicrostability, mergeData.MergeMicrostability);
Assert.AreEqual(constructionProperties.MergeStabilityStoneCover, mergeData.MergeStabilityStoneCover);
Assert.AreEqual(constructionProperties.MergeWaveImpactAsphaltCover, mergeData.MergeWaveImpactAsphaltCover);
Assert.AreEqual(constructionProperties.MergeWaterPressureAsphaltCover, mergeData.MergeWaterPressureAsphaltCover);
Assert.AreEqual(constructionProperties.MergeGrassCoverErosionOutwards, mergeData.MergeGrassCoverErosionOutwards);
Assert.AreEqual(constructionProperties.MergeGrassCoverSlipOffOutwards, mergeData.MergeGrassCoverSlipOffOutwards);
Assert.AreEqual(constructionProperties.MergeGrassCoverSlipOffInwards, mergeData.MergeGrassCoverSlipOffInwards);
Assert.AreEqual(constructionProperties.MergeHeightStructures, mergeData.MergeHeightStructures);
Assert.AreEqual(constructionProperties.MergeClosingStructures, mergeData.MergeClosingStructures);
Assert.AreEqual(constructionProperties.MergePipingStructure, mergeData.MergePipingStructure);
Assert.AreEqual(constructionProperties.MergeStabilityPointStructures, mergeData.MergeStabilityPointStructures);
Assert.AreEqual(constructionProperties.MergeStrengthStabilityLengthwiseConstruction, mergeData.MergeStrengthStabilityLengthwiseConstruction);
Assert.AreEqual(constructionProperties.MergeDuneErosion, mergeData.MergeDuneErosion);
Assert.AreEqual(constructionProperties.MergeTechnicalInnovation, mergeData.MergeTechnicalInnovation);
}
}
}