コード例 #1
0
        public void ProcessMergeTables_Test()
        {
            var(master, comps) = MakeFiles("ProcessMergeTables", 2);

            var compVMs = comps.Select((x, i) => { return(new ComponentFile()
                {
                    Database = x, Component_CN = i
                }); })
                          .ToArray();
            var commandBuilders = MergeComponentsPresenter.MakeCommandBuilders(master);

            PrepareMergeWorker.MakeMergeTables(master, commandBuilders, new System.Threading.CancellationToken(), (IProgress <int>)null, TestMergeLogWriter);

            PrepareMergeWorker.PopulateMergeTables(
                master,
                compVMs,
                commandBuilders,
                new CancellationToken(),
                (IProgress <int>)null,
                TestMergeLogWriter);

            PrepareMergeWorker.ProcessMergeTables(
                master,
                compVMs,
                commandBuilders,
                new CancellationToken(),
                (IProgress <int>)null,
                TestMergeLogWriter);
        }
コード例 #2
0
        // test merging new tally setup added to component one
        // after merge there should be new samplegroups and tally setup in master and component 2
        public void PerformMergeTest_newCountTree2()
        {
            var masterPath = TESTMERGENEWCOUNTS2_MASTER;
            var numComps   = 2;

            var(master, components) = FindFiles(masterPath);
            using (master)
            {
                var commandBuilders    = MergeComponentsPresenter.MakeCommandBuilders(master);
                var commandBuilderDict = commandBuilders.ToDictionary(x => x.ClientTableName);
                var mergeLog           = new TestMergeLogWriter(Output);

                PrepareMergeWorker.DoWork(master, components, commandBuilders, new System.Threading.CancellationToken(), (IProgress <int>)null, TestMergeLogWriter);

                MergeSyncWorker.DoMerge(master, components, commandBuilderDict, new System.Threading.CancellationToken(),
                                        (IProgress <int>)null,
                                        TestMergeLogWriter);

                var comp1 = components.ElementAt(0);
                var comp2 = components.ElementAt(1);

                comp2.Database.From <CountTreeDO>().Where("SampleGroup_CN > 1").Query().ToArray();

                var comp1CtCount  = comp1.Database.ExecuteScalar <int>("SELECT count(*) FROM CountTree;");
                var comp2CtCount  = comp2.Database.ExecuteScalar <int>("SELECT count(*) FROM CountTree;");
                var masterCtCount = master.ExecuteScalar <int>("SELECT count(*) FROM CountTree WHERE Component_CN IS NULL;");

                masterCtCount.Should().Be(comp1CtCount);
                comp2CtCount.Should().Be(comp1CtCount);
            }
        }
コード例 #3
0
        public void PrepareMerge_Test_With_Files(string masterPath, int numComps)
        {
            var(master, components) = FindFiles(masterPath);
            components.Should().HaveCount(numComps);
            var commandBuilders = MergeComponentsPresenter.MakeCommandBuilders(master);

            using (master)
            {
                PrepareMergeWorker.DoWork(
                    master,
                    components,
                    commandBuilders,
                    new System.Threading.CancellationToken(),
                    null,
                    new TestMergeLogWriter(Output));
            }
        }
コード例 #4
0
        public void MakeMergeTables_Test()
        {
            var(master, comps) = MakeFiles("MakeMergeTables", 2);

            var compVMs = comps.Select((x, i) => { return(new ComponentFile()
                {
                    Database = x, Component_CN = i
                }); })
                          .ToArray();
            var commandBuilders = MergeComponentsPresenter.MakeCommandBuilders(master);

            PrepareMergeWorker.MakeMergeTables(master, commandBuilders, new System.Threading.CancellationToken(), (IProgress <int>)null, TestMergeLogWriter);

            foreach (var cmd in commandBuilders)
            {
                master.CheckTableExists(cmd.MergeTableName).Should().BeTrue();
                Output.WriteLine(master.GetTableSQL(cmd.MergeTableName));
            }
        }
コード例 #5
0
        public void SyncFieldData_Pull_Tree_Insert()
        {
            var cancelation = new System.Threading.CancellationToken();

            var(master, compDbs, components, commandBuilders) = Setup();

            var comp1   = compDbs.First();
            var newTree = new Tree()
            {
                Stratum_CN     = 1,
                CuttingUnit_CN = 1,
                SampleGroup_CN = 1,
                Tree_GUID      = Guid.NewGuid().ToString().ToUpper(),
                TreeNumber     = 1,
            };

            comp1.Insert(newTree);

            PrepareMergeWorker.DoWork(
                master,
                components,
                commandBuilders.Values,
                cancelation,
                (IProgress <int>)null,
                TestMergeLogWriter);

            MergeSyncWorker.SyncFieldData(
                master,
                components,
                commandBuilders,
                cancelation,
                (IProgress <int>)null,
                TestMergeLogWriter);

            var masterNewTree = master.From <Tree>().Query().First();

            newTree.Tree_CN.Should().Be(masterNewTree.Tree_CN);
            newTree.CuttingUnit_CN.Should().Be(masterNewTree.CuttingUnit_CN);
            newTree.Stratum_CN.Should().Be(masterNewTree.Stratum_CN);
            newTree.SampleGroup_CN.Should().Be(masterNewTree.SampleGroup_CN);
            newTree.Tree_GUID.Should().Be(masterNewTree.Tree_GUID);
        }
コード例 #6
0
        public void PerformMergeTest()
        {
            WindowPresenterStub wPresenter = new WindowPresenterStub();
            using (DAL master = GetMaster())
            {
                wPresenter.Database = master;
                MergeComponentsPresenter cmPresenter = new MergeComponentsPresenter(wPresenter, null);

                Assert.IsTrue(cmPresenter.MissingComponents.Count == 0);

                PrepareMergeWorker worker = new PrepareMergeWorker(cmPresenter);
                worker.ProgressChanged += HandleProgressChanged;

                worker.BeginWork();

                worker.Wait();

                MergeSyncWorker syncWorker = new MergeSyncWorker(cmPresenter);
                syncWorker.ProgressChanged += HandleProgressChanged;

                syncWorker.BeginWork();

                syncWorker.Wait();

            }
        }