public void null_when_it_does_not_have_it()
        {
            var tracker = new VersionTracker();

            tracker.Version <User>(Guid.NewGuid())
            .ShouldBeNull();
        }
Exemple #2
0
            internal static void UpdateCacheInline <TTopologyFromVertex>(
                VersionTracker versionTracker,
                ComputationOptions options,
                ref ComputationContext <TTopologyFromVertex> context
                )
                where TTopologyFromVertex : Database.ITopologyFromVertex
            {
                if (IsCacheFresh(versionTracker, context.Cache))
                {
                    return;
                }

                if (!options.ComputeJobified)
                {
                    RecomputeCache(ref context);
                    context.Cache.Version[0] = versionTracker.Version;
                }
                else
                {
                    ScheduleTopologyComputation(
                        new JobHandle(),
                        versionTracker,
                        context
                        ).Complete();
                }
            }
Exemple #3
0
 public void ShouldTrackExecutedScripts()
 {
     DbUpgrader
     .PerformUpgrade()
     .Scripts.ToList()
     .ForEach(script => VersionTracker.Received().StoreExecutedScript(script));
 }
Exemple #4
0
        public void ShouldExecuteCorrectScript()
        {
            var result         = DbUpgrader.PerformUpgrade();
            var expectedScript = AllScripts.Last();

            ScriptExecutor.Received().Execute(expectedScript, Arg.Any <IDictionary <string, string> >());
            VersionTracker.Received().StoreExecutedScript(expectedScript);

            Assert.AreEqual(expectedScript, result.Scripts.First());
        }
Exemple #5
0
        public UpdateBatch(StoreOptions options, ISerializer serializer, IManagedConnection connection, VersionTracker versions)
        {
            if (versions == null) throw new ArgumentNullException(nameof(versions));

            _options = options;
            _serializer = serializer;
            Versions = versions;

            _commands.Push(new BatchCommand(serializer));
            Connection = connection;
        }
Exemple #6
0
        public override void BeforeEach()
        {
            base.BeforeEach();
            AllScripts = new List <SqlScript>
            {
                new SqlScript("0001.southwind.sql", "--LITTLE BOBBY DROP TABLES WAS HERE."),
                new SqlScript("0002.southwind.sql", "CREATE TABLE USERS --AGAIN")
            };

            ScriptProvider.GetScripts(Arg.Any <Func <IDbConnection> >()).Returns(AllScripts);
            VersionTracker.GetExecutedScripts().Returns(new[] { "0001.southwind.sql" });
        }
        public override void BeforeEach()
        {
            base.BeforeEach();

            AllScripts = new List <SqlScript>
            {
                new SqlScript("0001.sql", "CREATE TABLE $sometable$ (Id int)")
            };

            ScriptProvider.GetScripts(Arg.Any <Func <IDbConnection> >()).Returns(AllScripts);
            VersionTracker.GetExecutedScripts().Returns(new string[0]);
        }
Exemple #8
0
        public override void BeforeEach()
        {
            base.BeforeEach();

            AllScripts = new List <SqlScript>
            {
                new SqlScript("0001.sql", ""),
                new SqlScript("0004.sql", ""),
                new SqlScript("0002.sql", "")
            };

            ScriptProvider.GetScripts(Arg.Any <Func <IDbConnection> >()).Returns(AllScripts);
            VersionTracker.GetExecutedScripts().Returns(new string[] {});
        }
        public void can_overwrite_version()
        {
            var id = Guid.NewGuid();

            var version1 = Guid.NewGuid();
            var version2 = Guid.NewGuid();

            var tracker = new VersionTracker();
            tracker.Store<User>(id, version1);

            tracker.Store<User>(id, version2);

            tracker.Version<User>(id).ShouldBe(version2);
        }
        public override void CreateInitialVersion(DatabaseConnection databaseConnection, SqlDatabaseUpdate update)
        {
            var result = CreateUpdate(update.Sql);

            string path = FileManager.Manager.GeneratePhysicalUpdate(databaseConnection.DatabaseName, DatabaseManager.CreateVersionNumber, result.Content);

            DatabaseVersionCollection databaseVersion = VersionTracker.GetDatabaseVersions(databaseConnection.DatabaseName);

            databaseVersion.AddVersion(new DatabaseVersion()
            {
                Name = DatabaseManager.CreateVersionNumber, From = DatabaseManager.CreateVersionNumber, To = DatabaseManager.InitialVersionNumber, Path = path
            });
            VersionTracker.WriteFile();
        }
Exemple #11
0
        public void can_overwrite_version()
        {
            var id = Guid.NewGuid();

            var version1 = Guid.NewGuid();
            var version2 = Guid.NewGuid();

            var tracker = new VersionTracker();

            tracker.Store <User>(id, version1);

            tracker.Store <User>(id, version2);

            tracker.Version <User>(id).ShouldBe(version2);
        }
Exemple #12
0
        public void find_version_for_doc_by_type_and_id()
        {
            var id = Guid.NewGuid();

            var userVersion = Guid.NewGuid();

            var issueVersion = Guid.NewGuid();

            var tracker = new VersionTracker();

            tracker.Store <User>(id, userVersion);
            tracker.Store <Issue>(id, issueVersion);

            tracker.Version <User>(id).ShouldBe(userVersion);
            tracker.Version <Issue>(id).ShouldBe(issueVersion);
        }
        public void find_version_for_doc_by_type_and_id()
        {
            var id = Guid.NewGuid();

            var userVersion = Guid.NewGuid();

            var issueVersion = Guid.NewGuid();

            var tracker = new VersionTracker();

            tracker.Store<User>(id, userVersion);
            tracker.Store<Issue>(id, issueVersion);

            tracker.Version<User>(id).ShouldBe(userVersion);
            tracker.Version<Issue>(id).ShouldBe(issueVersion);

        }
        public override void CreateDatabaseUpdate(DatabaseConnection databaseConnection, SqlDatabaseUpdate update)
        {
            var result = CreateUpdate(update.Sql);

            string currentVersion = GetDatabaseVersion(databaseConnection);
            string newVersion     = GenerateVersionLabel();

            string path = FileManager.Manager.GeneratePhysicalUpdate(databaseConnection.DatabaseName, newVersion, result.Content);

            DatabaseVersionCollection databaseVersion = VersionTracker.GetDatabaseVersions(databaseConnection.DatabaseName);

            databaseVersion.AddVersion(new DatabaseVersion()
            {
                Name = newVersion, To = newVersion, From = currentVersion, Path = path
            });
            VersionTracker.WriteFile();
        }
        public override void UpgradeDatabaseToVersion(DatabaseConnection databaseConnection, string targetVersion)
        {
            string currentVersion = GetDatabaseVersion(databaseConnection);

            this.LogInfo($"Upgrade from {currentVersion} to {targetVersion} - started");

            IEnumerable <DatabaseVersion> versionsToRun = VersionTracker.GetAvailableVersions(databaseConnection.DatabaseName, currentVersion, targetVersion);

            this.LogInfo($"{versionsToRun.Count()} upgrades found to run");

            foreach (var version in versionsToRun)
            {
                string sql = FileManager.Manager.GetSqlScript(databaseConnection.DatabaseName, version.Name);
                databaseConnection.ExcecuteScript(sql);

                IncrementVersion(databaseConnection, version.To);

                this.LogInfo($"- Upgrade from {version.From} to {version.To} - completed");
            }

            this.LogInfo($"Upgrade from {currentVersion} to {targetVersion} - completed");
        }
Exemple #16
0
        public void null_when_it_does_not_have_it()
        {
            var tracker = new VersionTracker();

            SpecificationExtensions.ShouldBeNull(tracker.Version <User>(Guid.NewGuid()));
        }
Exemple #17
0
 public static bool IsCacheFresh(VersionTracker versionTracker, in MutableTopologyCache cache)
Exemple #18
0
 public static JobHandle ScheduleTopologyComputation <TTopologyFromVertex>(
     JobHandle inputDependencies,
     VersionTracker versionTracker,
     in ComputationContext <TTopologyFromVertex> context
 public void null_when_it_does_not_have_it()
 {
     var tracker = new VersionTracker();
     tracker.Version<User>(Guid.NewGuid())
         .ShouldBeNull();
 }
Exemple #20
0
        public void ShouldNotStoreAnyScripts()
        {
            DbUpgrader.PerformUpgrade();

            VersionTracker.DidNotReceiveWithAnyArgs().StoreExecutedScript(null);
        }