//-----------------------------------------------------------------------
//
// Copyright (c) 2011 Deltares. All rights reserved.
//
// Tom The
// tom.the@deltares.nl
// 10-08-2011
// n.a.
//-----------------------------------------------------------------------
namespace Deltares.Dam.Tests
{
using System.IO;
using NUnit.Framework;
using Deltares.Dam.Data;
[TestFixture]
public class DamProjectTest
{
[Test]
public void CanDetermineProjectWorkingPathApplication()
{
Data.DamProject.ProjectWorkingPathLocation = ProjectPathLocation.InApplicationMap;
string projectWorkingPath = DamProject.ProjectWorkingPath;
Assert.AreEqual(Path.GetDirectoryName(typeof(DamProject).Assembly.Location) + @"\DamCalculation", projectWorkingPath);
}
[Test]
public void CanDetermineProjectWorkingPathUserDefined()
{
const string userProjectPath = "c:\\";
DamProject.ProjectWorkingPathLocation = ProjectPathLocation.InUserMap;
DamProject.UserWorkingPath = userProjectPath;
string projectWorkingPath = DamProject.ProjectWorkingPath;
Assert.AreEqual(userProjectPath, projectWorkingPath);
}
[Test]
public void CanDetermineProjectWorkingPathProjectMap()
{
const string cProjectFilename = @"d:\Projects\MyProject.damx";
const string cProjectWorkingPath = @"d:\Projects\MyProject.Calc";
using (var damProject = new DamProject())
{
damProject.ProjectFileName = cProjectFilename;
DamProject.ProjectWorkingPathLocation = ProjectPathLocation.InProjectMap;
string projectWorkingPath = DamProject.ProjectWorkingPath;
Assert.AreEqual(cProjectWorkingPath, projectWorkingPath);
}
}
[Test]
public void NewSoilmaterialsFilenameCorrectIfNewLocation()
{
string projectFilename = "Delfland.damx";
string soilmaterialsFilename = @"..\..\soilmaterials.mdb";
string newSoilmaterialsFilename = DamProject.CreateNewSoilMaterialsFilename(projectFilename, soilmaterialsFilename, 2);
Assert.AreEqual("Delfland2.soilmaterials.mdb", newSoilmaterialsFilename);
}
[Test]
public void NewSoilmaterialsFilenameCorrectIfSourceIsTarget()
{
string projectFilename = "Delfland.damx";
string soilmaterialsFilename = @"Delfland.soilmaterials.mdb";
string newSoilmaterialsFilename = DamProject.CreateNewSoilMaterialsFilename(projectFilename, soilmaterialsFilename, 10);
Assert.AreEqual("Delfland10.soilmaterials.mdb", newSoilmaterialsFilename);
}
[Test]
public void NewGeometry2DMapnameCorrectIfNewLocation()
{
string projectFilename = "Delfland.damx";
string mapName = @"..\..\geometries\";
string newMapname = DamProject.CreateNewGeometry2DMapname(projectFilename, mapName, 2);
Assert.AreEqual(@"Delfland.geometries2D.2\", newMapname);
}
[Test]
public void NewGeometry2DMapnameCorrectIfSourceIsTarget()
{
string projectFilename = "Delfland.damx";
string mapName = @"Delfland.geometries2D.10\";
string newMapname = DamProject.CreateNewGeometry2DMapname(projectFilename, mapName, 10);
Assert.AreEqual(@"Delfland.geometries2D.10\", newMapname);
}
[Test]
public void CanAssignGeometry2DMapnameIfNotAssigned()
{
const string mapName1 = @"Test1\";
const string mapName2 = @"Test2\";
using (var damProject = new DamProject())
{
damProject.DamProjectData.WaterBoard.Dikes.Add(new Dike());
damProject.DamProjectData.WaterBoard.Dikes.Add(new Dike() { MapForSoilGeometries2D = mapName1 });
damProject.DamProjectData.WaterBoard.Dikes.Add(new Dike());
damProject.AssignGeometry2DMapnameIfNotAssigned(mapName2);
Assert.AreEqual(mapName2, damProject.DamProjectData.WaterBoard.Dikes[0].MapForSoilGeometries2D);
Assert.AreEqual(mapName1, damProject.DamProjectData.WaterBoard.Dikes[1].MapForSoilGeometries2D);
Assert.AreEqual(mapName2, damProject.DamProjectData.WaterBoard.Dikes[2].MapForSoilGeometries2D);
}
}
}
}