using System; using System.IO; using Deltares.Dam.Data; using Deltares.Maps; using NUnit.Framework; namespace Deltares.Dam.Tests { [TestFixture] public class GeometryFileTest { private string existingFile; #region Setup [TestFixtureSetUp] public void FixtureSetup() { existingFile = Guid.NewGuid() + ".tst"; using (var f = File.CreateText(existingFile)) { } } [TestFixtureTearDown] public void FixtureTearDown() { File.Delete(existingFile); } [SetUp] public void TestSetup() { } [TearDown] public void TestTearDown() { } #endregion #region Mock private class MockFile : FileLocation { private const string Extension = ".tst"; public MockFile(string fileLocation, string fileName) : base(fileLocation, fileName, Extension) { } public MockFile(string fileName) : base(fileName, Extension) { } } #endregion [Test] public void FileAcceptsEmptyLocation() { var file = new MockFile("", "test.tst"); } [Test] public void FileReturnsValidFullPath() { const string fileName = "test.tst"; var file = new MockFile("", fileName); var expected = Path.Combine(Directory.GetCurrentDirectory(), fileName); Assert.AreEqual(expected, file.FullPath); file = new MockFile(fileName); Assert.AreEqual(expected, file.FullPath); } [Test] public void FileReturnsTheFileNameWithoutExtension() { var file = new MockFile(string.Empty, "test.tst"); Assert.AreEqual("test", file.NameWithoutExtension); } [Test] public void FileReturnsOnlyTheLocation() { var file = new MockFile("", "test.tst"); Assert.AreEqual(Directory.GetCurrentDirectory(), file.DirectoryName); } [Test] public void FileReturnsOnlyTheExtension() { var file = new MockFile(string.Empty, "test.tst"); Assert.AreEqual(".tst", file.FileExtension); } [Test] public void FileReturnsOnlyTheName() { var file = new MockFile("", "test.tst"); Assert.AreEqual("test.tst", file.FileName); file = new MockFile("test.tst"); Assert.AreEqual("test.tst", file.FileName); } [Test] public void FileReturnsFalseIfNotExists() { var file = new MockFile(string.Empty, "test.tst"); Assert.IsFalse(file.Exists); file = new MockFile("test.tst"); Assert.IsFalse(file.Exists); } [Test] public void FileReturnsTrueIfFileExists() { var file = new MockFile(existingFile); Assert.IsTrue(file.Exists); } [Test] public void FileReturnsCorrectFullPathOnExistingFile() { string location = Directory.GetCurrentDirectory(); var file = new MockFile(location, existingFile); Assert.AreEqual(location + "\\" + existingFile, file.FullPath); } [Test] public void FileReturnsCorrectFullPathOnExistingFileUsingToString() { string location = Directory.GetCurrentDirectory(); var file = new MockFile(location, existingFile); Assert.AreEqual(location + "\\" + existingFile, file.ToString()); } [Test] public void FileReturnsIsValidReturnsTrueOnExistingFile() { string location = Directory.GetCurrentDirectory(); var file = new MockFile(location, existingFile); Assert.IsTrue(file.IsValid); } } }