예제 #1
0
        public void update_from_2_5_to_2_7()
        {
            var fileName = "v2_5_0.cruise";;
            var path     = InitializeTestFile(fileName);

            Output.WriteLine(path);

            using (var db = new CruiseDatastore(path))
            {
                var updater = new Updater_V2();
                updater.Update(db);

                db.CurrentTransaction.Should().BeNull();

                // insert multiple trees with the same guid to make sure that the tree guid uniqe constraint is removed
                //for (var i = 0; i < 2; i++)
                //{
                //    db.Insert(new V2.Models.Tree()
                //    {
                //        Tree_GUID = "something",
                //        CuttingUnit_CN = 1,
                //        Stratum_CN = 1,
                //        SampleGroup_CN = 1,
                //        TreeDefaultValue_CN = 1,
                //    });
                //}

                db.DatabaseVersion.Should().StartWith("2.7.");
            }
        }
예제 #2
0
        public void FixVersion_2_5_0(string fileName)
        {
            var targetPath = InitializeTestFile(fileName);

            using (var db = new CruiseDatastore(targetPath))
            {
                //var trees = db.From<TreeDO>().Query().ToArray();

                db.From <TreeDOold>().Invoking(x => x.Query().ToArray()).Should().NotThrow();

                var errorTrees = db.QueryGeneric("SELECT * FROM Tree WHERE typeof(Tree_GUID) = 'text' AND Tree_GUID NOT LIKE '________-____-____-____-____________';")
                                 .ToArray();
                errorTrees.Should().NotBeEmpty();

                var updater = new Updater_V2();
                updater.Update(db);
                //db.DatabaseVersion.Should().Be("2.5.1.1");

                var errorTreesAgain = db.QueryGeneric("SELECT * FROM Tree WHERE typeof(Tree_GUID) = 'text' AND Tree_GUID NOT LIKE '________-____-____-____-____________';")
                                      .ToArray();
                errorTreesAgain.Should().BeEmpty();

                db.From <TreeDOold>().Invoking(x => x.Query()).Should().NotThrow();
            }
        }