public void MigrateFromV2ToV3_testUpdaterMigrate(string fileName) { var filePath = Path.Combine(TestFilesDirectory, fileName); // copy file to test temp dir var tempPath = Path.Combine(TestTempPath, fileName); File.Copy(filePath, tempPath); var newFilePath = new Migrator().MigrateFromV2ToV3(filePath, true); using (var destDB = new CruiseDatastore_V3()) using (var srcDB = new CruiseDatastore_V3(newFilePath)) { try { var destConn = destDB.OpenConnection(); Updater_V3.Migrate(srcDB, destDB); var dumpPath = newFilePath + ".dump.crz3"; RegesterFileForCleanUp(dumpPath); destDB.BackupDatabase(dumpPath); File.Exists(dumpPath).Should().BeTrue(); using (var newdb = new CruiseDatastore_V3(dumpPath)) { var tables = newdb.GetTableNames(); newdb.AttachDB(srcDB, "olddb"); foreach (var t in tables) { var stuff = newdb.QueryGeneric($"SELECT * FROM main.{t} EXCEPT SELECT * FROM olddb.{t};") .ToArray(); if (t == "MessageLog") { stuff.Should().NotBeEmpty(); continue; } stuff.Should().BeEmpty(); } } } finally { destDB.ReleaseConnection(); } } }
public void GetTallyPopulation(string unitCode, string stratum, string sampleGroup, string species, string liveDead, bool tallyBySubpop) { var tallyDescription = $"{stratum} {sampleGroup} {species} {liveDead}"; var hotKey = "A"; var method = CruiseDAL.Schema.CruiseMethods.STR; var cruiseID = CruiseID; var units = new[] { unitCode }; var strata = new[] { new Stratum() { StratumCode = stratum, Method = method, } }; var unit_strata = new[] { new CuttingUnit_Stratum() { CuttingUnitCode = unitCode, StratumCode = stratum, } }; var sampleGroups = new[] { new SampleGroup() { StratumCode = stratum, SampleGroupCode = sampleGroup, SamplingFrequency = 101, TallyBySubPop = tallyBySubpop, } }; var subPop = new[] { new SubPopulation() { StratumCode = stratum, SampleGroupCode = sampleGroup, SpeciesCode = species ?? "dummy", LiveDead = liveDead ?? "L", } }; using (var database = new CruiseDatastore_V3()) { base.InitializeDatabase(database, cruiseID, SaleID, units, strata, unit_strata, sampleGroups, new[] { species ?? "dummy" }, null, subPop); //database.Execute($"INSERT INTO CuttingUnit (CuttingUnitCode, CruiseID) VALUES ('{unitCode}', '{cruiseID}');"); //database.Execute($"INSERT INTO Stratum (CruiseID, StratumCode, Method) VALUES ('{cruiseID}', '{stratum}', '{method}');"); //database.Execute($"INSERT INTO CuttingUnit_Stratum (CruiseID, CuttingUnitCode, StratumCode) VALUES " + // $"('{cruiseID}', '{unitCode}','{stratum}');"); //database.Execute($"INSERT INTO SampleGroup (CruiseID, StratumCode, SampleGroupCode, SamplingFrequency, TallyBySubPop ) VALUES " + // $"('{cruiseID}', '{stratum}', '{sampleGroup}', 101, {tallyBySubpop});"); //database.Execute($"INSERT INTO SpeciesCode (CruiseID, SpeciesCode) VALUES ('{cruiseID}', '{((species == null || species == "") ? "dummy" : species)}');"); //database.Execute( //"INSERT INTO SubPopulation (" + //"CruiseID, " + //"StratumCode, " + //"SampleGroupCode, " + //"Species, " + //"LiveDead)" + //"VALUES " + //$"('{cruiseID}', '{stratum}', '{sampleGroup}', " + //$"'{((species == null || species == "") ? "dummy" : species)}', " + //$"'{((liveDead == null || liveDead == "") ? "L" : liveDead)}');"); database.Execute("INSERT INTO TallyDescription (CruiseID, StratumCode, SampleGroupCode, SpeciesCode, LiveDead, Description) VALUES " + "(@p1, @p2, @p3, @p4, @p5, @p6);", new object[] { cruiseID, stratum, sampleGroup, species, liveDead, tallyDescription }); database.Execute("INSERT INTO TallyHotKey (CruiseID, StratumCode, SampleGroupCode, SpeciesCode, LiveDead, HotKey) VALUES " + "(@p1, @p2, @p3, @p4, @p5, @p6);", new object[] { cruiseID, stratum, sampleGroup, species, liveDead, hotKey }); var datastore = new TallyPopulationDataservice(database, cruiseID, TestDeviceInfoService.TEST_DEVICEID); var spResult = database.QueryGeneric("select * from SubPopulation;"); var tpresult = database.QueryGeneric("select * from TallyPopulation;"); var pop = datastore.GetTallyPopulation(unitCode, stratum, sampleGroup, species, liveDead); pop.Should().NotBeNull(); VerifyTallyPopulation(pop); pop.TallyDescription.Should().NotBeNullOrWhiteSpace(); pop.TallyHotKey.Should().NotBeNullOrWhiteSpace(); pop.Method.Should().NotBeNullOrWhiteSpace(); } }