public void null_when_it_does_not_have_it() { var tracker = new VersionTracker(); tracker.Version <User>(Guid.NewGuid()) .ShouldBeNull(); }
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(); } }
public void ShouldTrackExecutedScripts() { DbUpgrader .PerformUpgrade() .Scripts.ToList() .ForEach(script => VersionTracker.Received().StoreExecutedScript(script)); }
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()); }
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; }
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]); }
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(); }
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 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"); }
public void null_when_it_does_not_have_it() { var tracker = new VersionTracker(); SpecificationExtensions.ShouldBeNull(tracker.Version <User>(Guid.NewGuid())); }
public static bool IsCacheFresh(VersionTracker versionTracker, in MutableTopologyCache cache)
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(); }
public void ShouldNotStoreAnyScripts() { DbUpgrader.PerformUpgrade(); VersionTracker.DidNotReceiveWithAnyArgs().StoreExecutedScript(null); }