public void Read_DatabaseWithoutTrackId_ThrowsCriticalFileReadException()
        {
            // Setup
            string hydraulicBoundaryDatabaseFile = Path.Combine(testDataPath, "emptyGeneral.sqlite");

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

                // 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 Read_DatabaseSchemaInvalidLocationColumns_ThrowsLineParseException()
        {
            // Setup
            string hydraulicBoundaryDatabaseFile = Path.Combine(testDataPath, "corruptLocationSchema.sqlite");

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

                // 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 <ConversionException>(exception.InnerException);
            }
        }
Exemplo n.º 4
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);
            }
        }