Index: Riskeer/Integration/src/Riskeer.Integration.Data/RiskeerProject.cs
===================================================================
diff -u -r991f347230a23a879fd6ea458586576c43e5e48b -r6499f75ebc2952a2232bca32c611ec05c7b99774
--- Riskeer/Integration/src/Riskeer.Integration.Data/RiskeerProject.cs (.../RiskeerProject.cs) (revision 991f347230a23a879fd6ea458586576c43e5e48b)
+++ Riskeer/Integration/src/Riskeer.Integration.Data/RiskeerProject.cs (.../RiskeerProject.cs) (revision 6499f75ebc2952a2232bca32c611ec05c7b99774)
@@ -19,6 +19,7 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using Core.Common.Base;
using Core.Common.Base.Data;
using Core.Common.Base.Properties;
@@ -33,22 +34,32 @@
///
/// Constructs a new .
///
- public RiskeerProject() : this(Resources.Project_Constructor_Default_name) {}
+ /// The of the project.
+ /// Thrown when is null.
+ public RiskeerProject(AssessmentSection assessmentSection) : this(Resources.Project_Constructor_Default_name, assessmentSection) {}
///
/// Constructs a new .
///
/// The name of the .
- public RiskeerProject(string name)
+ /// The of the project.
+ /// Thrown when is null.
+ public RiskeerProject(string name, AssessmentSection assessmentSection)
{
+ if (assessmentSection == null)
+ {
+ throw new ArgumentNullException(nameof(assessmentSection));
+ }
+
Name = name;
Description = "";
+ AssessmentSection = assessmentSection;
}
///
- /// Gets or sets the assessment section of the .
+ /// Gets the assessment section of the .
///
- public AssessmentSection AssessmentSection { get; set; }
+ public AssessmentSection AssessmentSection { get; }
///
/// Gets or sets the name of the .
Index: Riskeer/Integration/test/Riskeer.Integration.Data.Test/RiskeerProjectTest.cs
===================================================================
diff -u -r991f347230a23a879fd6ea458586576c43e5e48b -r6499f75ebc2952a2232bca32c611ec05c7b99774
--- Riskeer/Integration/test/Riskeer.Integration.Data.Test/RiskeerProjectTest.cs (.../RiskeerProjectTest.cs) (revision 991f347230a23a879fd6ea458586576c43e5e48b)
+++ Riskeer/Integration/test/Riskeer.Integration.Data.Test/RiskeerProjectTest.cs (.../RiskeerProjectTest.cs) (revision 6499f75ebc2952a2232bca32c611ec05c7b99774)
@@ -34,32 +34,60 @@
public class RiskeerProjectTest
{
[Test]
+ public void DefaultConstructor_AssessmentSectionNull_ThrowsArgumentNullException()
+ {
+ // Call
+ void Call() => new RiskeerProject(null);
+
+ // Assert
+ Assert.That(Call, Throws.TypeOf()
+ .With.Property(nameof(ArgumentNullException.ParamName))
+ .EqualTo("assessmentSection"));
+ }
+
+ [Test]
public void DefaultConstructor_ExpectedValue()
{
+ // Setup
+ AssessmentSection assessmentSection = CreateAssessmentSection();
+
// Call
- var project = new RiskeerProject();
+ var project = new RiskeerProject(assessmentSection);
// Assert
Assert.IsInstanceOf(project);
Assert.AreEqual("Project", project.Name);
Assert.AreEqual("", project.Description);
- Assert.IsNull(project.AssessmentSection);
+ Assert.AreSame(assessmentSection, project.AssessmentSection);
}
[Test]
+ public void NameConstructor_AssessmentSectionNull_ThrowsArgumentNullException()
+ {
+ // Call
+ void Call() => new RiskeerProject(string.Empty, null);
+
+ // Assert
+ Assert.That(Call, Throws.TypeOf()
+ .With.Property(nameof(ArgumentNullException.ParamName))
+ .EqualTo("assessmentSection"));
+ }
+
+ [Test]
public void NameConstructor_SetNameAndInitializeOtherProperties()
{
// Setup
const string someName = "";
+ AssessmentSection assessmentSection = CreateAssessmentSection();
// Call
- var project = new RiskeerProject(someName);
+ var project = new RiskeerProject(someName, assessmentSection);
// Assert
Assert.IsInstanceOf(project);
Assert.AreEqual(someName, project.Name);
Assert.AreEqual("", project.Description);
- Assert.IsNull(project.AssessmentSection);
+ Assert.AreSame(assessmentSection, project.AssessmentSection);
}
[Test]
@@ -70,7 +98,7 @@
const string nicerDescription = "Nicer description";
// Call
- var project = new RiskeerProject
+ var project = new RiskeerProject(CreateAssessmentSection())
{
Name = niceProjectName,
Description = nicerDescription
@@ -90,7 +118,7 @@
observer.Expect(o => o.UpdateObserver());
mockRepository.ReplayAll();
- var project = new RiskeerProject();
+ var project = new RiskeerProject(CreateAssessmentSection());
project.Attach(observer);
// Call
@@ -109,7 +137,7 @@
observer.Expect(o => o.UpdateObserver());
mockRepository.ReplayAll();
- var project = new RiskeerProject();
+ var project = new RiskeerProject(CreateAssessmentSection());
project.Attach(observer);
project.NotifyObservers();
@@ -121,9 +149,17 @@
mockRepository.VerifyAll();
}
+ private static AssessmentSection CreateAssessmentSection()
+ {
+ var random = new Random(21);
+ return new AssessmentSection(random.NextEnumValue());
+ }
+
[TestFixture]
private class RiskeerProjectEqualsTest : EqualsTestFixture
{
+ private static readonly AssessmentSection assessmentSection = CreateAssessmentSection();
+
protected override RiskeerProject CreateObject()
{
return CreateProject();
@@ -138,35 +174,34 @@
{
RiskeerProject baseProject = CreateProject();
- yield return new TestCaseData(new RiskeerProject("Different name")
+ yield return new TestCaseData(new RiskeerProject("Different name", assessmentSection)
{
Description = baseProject.Description
}).SetName("Name");
- yield return new TestCaseData(new RiskeerProject(baseProject.Name))
+ yield return new TestCaseData(new RiskeerProject(baseProject.Name, assessmentSection))
.SetName("Description");
- var random = new Random(21);
- RiskeerProject differentAssessmentSections = CreateProject();
- differentAssessmentSections.AssessmentSection = new AssessmentSection(random.NextEnumValue());
+ var differentAssessmentSections = new RiskeerProject("Some name", CreateAssessmentSection())
+ {
+ Description = "Some description"
+ };
yield return new TestCaseData(differentAssessmentSections)
.SetName("AssessmentSections");
}
private static RiskeerProject CreateProject()
{
- var random = new Random(21);
- return new RiskeerProject("Some name")
+ return new RiskeerProject("Some name", assessmentSection)
{
- Description = "Some description",
- AssessmentSection = new AssessmentSection(random.NextEnumValue())
+ Description = "Some description"
};
}
}
private class DerivedRiskeerProject : RiskeerProject
{
- public DerivedRiskeerProject(RiskeerProject project)
+ public DerivedRiskeerProject(RiskeerProject project) : base(project.AssessmentSection)
{
Name = project.Name;
Description = project.Description;