Example #1
0
 /// <summary>
 /// Returns the version from the database pointed at by the <paramref name="filePath"/>.
 /// </summary>
 /// <param name="filePath">The location of the database.</param>
 /// <returns>The version from the database as a <see cref="string"/>.</returns>
 /// <exception cref="CriticalFileReadException">Thrown when no connection with the hydraulic
 /// boundary database could be created.</exception>
 private static string GetVersion(string filePath)
 {
     using (var db = new HydraulicBoundaryDatabaseReader(filePath))
     {
         return(db.ReadVersion());
     }
 }
        public void Constructor_ValidFile_ExpectedValues()
        {
            // Setup
            string hydraulicBoundaryDatabaseFile = Path.Combine(testDataPath, "complete.sqlite");

            // Call
            using (var reader = new HydraulicBoundaryDatabaseReader(hydraulicBoundaryDatabaseFile))
            {
                // Assert
                Assert.AreEqual(hydraulicBoundaryDatabaseFile, reader.Path);
                Assert.IsInstanceOf <SqLiteDatabaseReaderBase>(reader);
            }
        }
        public void ReadVersion_ValidFile_ReturnsReadVersion()
        {
            // Setup
            string hydraulicBoundaryDatabaseFile = Path.Combine(testDataPath, "complete.sqlite");

            using (var reader = new HydraulicBoundaryDatabaseReader(hydraulicBoundaryDatabaseFile))
            {
                // Call
                string version = reader.ReadVersion();

                // Assert
                Assert.AreEqual("Dutch coast South19-11-2015 12:0013", version);
            }
        }
        public void ReadTrackId_ValidFile_ReturnsReadVersion()
        {
            // Setup
            string hydraulicBoundaryDatabaseFile = Path.Combine(testDataPath, "complete.sqlite");

            using (var reader = new HydraulicBoundaryDatabaseReader(hydraulicBoundaryDatabaseFile))
            {
                // Call
                long trackId = reader.ReadTrackId();

                // Assert
                Assert.AreEqual(13, trackId);
            }
        }
        public void ReadVersion_EmptyDatabase_ThrowsCriticalFileReadException()
        {
            // Setup
            string hydraulicBoundaryDatabaseFile = Path.Combine(testDataPath, "emptyGeneral.sqlite");

            using (var reader = new HydraulicBoundaryDatabaseReader(hydraulicBoundaryDatabaseFile))
            {
                // Call
                TestDelegate test = () => reader.ReadVersion();

                // Assert
                string expectedMessage = $"Fout bij het lezen van bestand '{hydraulicBoundaryDatabaseFile}': kritieke fout opgetreden bij het uitlezen van waardes uit kolommen in de database.";
                var    exception       = Assert.Throws <CriticalFileReadException>(test);
                Assert.AreEqual(expectedMessage, exception.Message);
            }
        }
        public void Read_EmptyDatabase_ThrowsCriticalFileReadException()
        {
            // Setup
            string hydraulicBoundaryDatabaseFile = Path.Combine(testDataPath, "empty.sqlite");

            using (var reader = new HydraulicBoundaryDatabaseReader(hydraulicBoundaryDatabaseFile))
            {
                // Call
                TestDelegate test = () => reader.Read();

                // Assert
                string expectedMessage = $"Fout bij het lezen van bestand '{hydraulicBoundaryDatabaseFile}': kon geen locaties verkrijgen van de database.";
                var    exception       = Assert.Throws <CriticalFileReadException>(test);
                Assert.AreEqual(expectedMessage, exception.Message);
                Assert.IsInstanceOf <SQLiteException>(exception.InnerException);
            }
        }
        public void ReadTrackId_InvalidTrackIdColumn_ThrowsLineParseException()
        {
            // Setup
            string hydraulicBoundaryDatabaseFile = Path.Combine(testDataPath, "corruptSchema.sqlite");

            using (var reader = new HydraulicBoundaryDatabaseReader(hydraulicBoundaryDatabaseFile))
            {
                // Call
                TestDelegate test = () => reader.ReadTrackId();

                // Assert
                var    exception       = Assert.Throws <LineParseException>(test);
                string expectedMessage = $"Fout bij het lezen van bestand '{hydraulicBoundaryDatabaseFile}': kritieke fout opgetreden bij het uitlezen van waardes uit kolommen in de database.";
                Assert.AreEqual(expectedMessage, exception.Message);
                Assert.IsInstanceOf <InvalidCastException>(exception.InnerException);
            }
        }
Example #8
0
 private ReadResult <ReadHydraulicBoundaryDatabase> ReadHydraulicBoundaryDatabase()
 {
     NotifyProgress(Resources.HydraulicBoundaryDatabaseImporter_ProgressText_Reading_HRD_file, 1, numberOfSteps);
     try
     {
         using (var reader = new HydraulicBoundaryDatabaseReader(FilePath))
         {
             return(new ReadResult <ReadHydraulicBoundaryDatabase>(false)
             {
                 Items = new[]
                 {
                     reader.Read()
                 }
             });
         }
     }
     catch (Exception e) when(e is CriticalFileReadException || e is LineParseException)
     {
         return(HandleCriticalFileReadError <ReadHydraulicBoundaryDatabase>(e));
     }
 }
        public void Read_ValidFile_ReturnsReadHydraulicBoundaryDatabase()
        {
            // Setup
            string hydraulicBoundaryDatabaseFile = Path.Combine(testDataPath, "complete.sqlite");

            using (var reader = new HydraulicBoundaryDatabaseReader(hydraulicBoundaryDatabaseFile))
            {
                // Call
                ReadHydraulicBoundaryDatabase readDatabase = reader.Read();

                // Assert
                Assert.AreEqual("Dutch coast South19-11-2015 12:0013", readDatabase.Version);
                Assert.AreEqual(13, readDatabase.TrackId);
                Assert.AreEqual(18, readDatabase.Locations.Count());
                ReadHydraulicBoundaryLocation location = readDatabase.Locations.First();
                Assert.AreEqual(1, location.Id);
                Assert.AreEqual("punt_flw_ 1", location.Name);
                Assert.AreEqual(52697.5, location.CoordinateX);
                Assert.AreEqual(427567.0, location.CoordinateY);
            }
        }