// 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 System.Collections.Generic;
using System.Linq;
using Core.Common.Base.Geometry;
using Ringtoets.Common.Data.DikeProfiles;
namespace Ringtoets.Common.Data.TestUtil
{
///
/// Factory that creates simple instances
/// which can be used for testing.
///
public class DikeProfileTestFactory
{
///
/// Creates a default at the world origin.
///
public static DikeProfile CreateDikeProfile()
{
return CreateDikeProfile(new Point2D(0, 0));
}
///
/// Creates a default at the world origin
/// with a specified name.
///
/// The name of the dike profile.
public static DikeProfile CreateDikeProfile(string name)
{
return CreateDikeProfile(name, new Point2D(0, 0));
}
///
/// Creates a default at the world origin
/// with a specified name and ID.
///
/// The name of the dike profile.
/// The ID of the dike profile.
/// Thrown when is
/// null, empty, or consists of whitespace.
public static DikeProfile CreateDikeProfile(string name, string id)
{
return CreateDikeProfile(id, name, new Point2D(0, 0), Enumerable.Empty(), Enumerable.Empty());
}
///
/// Creates a default at a specified world
/// location.
///
/// The world coordinate of the dike profile.
public static DikeProfile CreateDikeProfile(Point2D point)
{
return CreateDikeProfile(null, point);
}
///
/// Creates a default at a specified world
/// location and ID.
///
/// The world coordinate of the dike profile.
/// The ID of the dike profile.
/// Thrown when is
/// null, empty, or consists of whitespace.
public static DikeProfile CreateDikeProfile(Point2D point, string id)
{
return CreateDikeProfile(id, "name", point, Enumerable.Empty(), Enumerable.Empty());
}
///
/// Creates a default at the world origin with
/// a specified foreshore profile geometry.
///
/// The geometry of the .
public static DikeProfile CreateDikeProfile(IEnumerable foreshoreProfileGeometry)
{
return CreateDikeProfile("id", "name", new Point2D(0, 0), Enumerable.Empty(), foreshoreProfileGeometry);
}
///
/// Creates a default at the world origin with
/// a specified foreshore profile geometry and ID.
///
/// The geometry of the .
/// The ID of the dike profile.
/// Thrown when is
/// null, empty, or consists of whitespace.
public static DikeProfile CreateDikeProfile(IEnumerable foreshoreProfileGeometry, string id)
{
return CreateDikeProfile(id, "name", new Point2D(0, 0), Enumerable.Empty(), foreshoreProfileGeometry);
}
///
/// Creates a default at the world origin with
/// a specified dike profile geometry.
///
/// The geometry of the .
public static DikeProfile CreateDikeProfile(IEnumerable dikeGeometry)
{
return CreateDikeProfile("id", "name", new Point2D(0, 0), dikeGeometry, Enumerable.Empty());
}
///
/// Creates a default at the world location.
///
/// The name of the dike profile.
/// The world coordinate of the dike profile.
public static DikeProfile CreateDikeProfile(string name, Point2D point)
{
return CreateDikeProfile("id", name, point, Enumerable.Empty(), Enumerable.Empty());
}
///
/// Creates a default at the world location with
/// a specified foreshore profile geometry.
///
/// The ID of the dike profile.
/// The name of the dike profile.
/// The world coordinate of the dike profile.
/// The geometry of the dike.
/// The geometry of the .
/// Thrown when is
/// null, empty, or consists of whitespace.
private static DikeProfile CreateDikeProfile(string id,
string name,
Point2D point,
IEnumerable dikeGeometry,
IEnumerable foreshoreProfileGeometry)
{
return new DikeProfile(point, dikeGeometry, foreshoreProfileGeometry, null, new DikeProfile.ConstructionProperties
{
Id = id,
Name = name
});
}
}
}