public void Constructor_ValidParameters_ReturnsExpectedValues()
        {
            // Setup
            string       fromVersion = ProjectVersionHelper.GetCurrentDatabaseVersion();
            string       toVersion   = ProjectVersionHelper.GetCurrentDatabaseVersion();
            const string query       = ";";

            // Call
            var upgradeScript = new ProjectUpgradeScript(fromVersion, toVersion, query, string.Empty);

            // Assert
            Assert.IsInstanceOf <UpgradeScript>(upgradeScript);
            Assert.AreEqual(fromVersion, upgradeScript.FromVersion());
            Assert.AreEqual(toVersion, upgradeScript.ToVersion());
        }
        public void Upgrade_ValidParameters_ExpectedProperties()
        {
            // Setup
            string filePath    = TestHelper.GetScratchPadPath(nameof(Upgrade_ValidParameters_ExpectedProperties));
            string fromVersion = ProjectVersionHelper.GetCurrentDatabaseVersion();
            string toVersion   = ProjectVersionHelper.GetCurrentDatabaseVersion();

            var upgradeScript = new ProjectUpgradeScript(fromVersion, toVersion, ";", "");

            // Call
            upgradeScript.Upgrade("c:\\file.ext", filePath);

            // Assert
            Assert.IsTrue(File.Exists(filePath));
            File.Delete(filePath);
        }
        public void Upgrade_UpgradeFails_ThrowsCriticalMigrationException()
        {
            // Setup
            string fromVersion = ProjectVersionHelper.GetCurrentDatabaseVersion();
            string toVersion   = ProjectVersionHelper.GetCurrentDatabaseVersion();

            string fileLocation  = TestHelper.GetScratchPadPath(nameof(Upgrade_UpgradeFails_ThrowsCriticalMigrationException));
            var    upgradeScript = new ProjectUpgradeScript(fromVersion, toVersion, "THIS WILL FAIL", string.Empty);

            using (new FileDisposeHelper(fileLocation))
            {
                // Call
                TestDelegate call = () => upgradeScript.Upgrade(fileLocation, fileLocation);

                // Assert
                var exception = Assert.Throws <CriticalMigrationException>(call);
                Assert.AreEqual($"Het migreren van het Riskeer of Ringtoets projectbestand van versie '{fromVersion}' naar '{fromVersion}' is mislukt.",
                                exception.Message);
                Assert.IsInstanceOf <SQLiteException>(exception.InnerException);
            }
        }