public void GetPlotTreeProxies()
        {
            var unitCode   = "u1";
            var plotNumber = 1;

            using (var db = CreateDatabase())
            {
                var ds     = new CuttingUnitDatastore(db, CruiseID, TestDeviceInfoService.TEST_DEVICEID, new SamplerInfoDataservice(db, CruiseID, TestDeviceInfoService.TEST_DEVICEID));
                var plotid = ds.AddNewPlot(unitCode);

                var plot_stratum = ds.GetPlot_Strata(unitCode, plotNumber).First();

                var tp = ds.GetPlotTallyPopulationsByUnitCode(unitCode, plotNumber).First();

                var firstTreeid = ds.CreatePlotTree(unitCode, plotNumber, tp.StratumCode, tp.SampleGroupCode);
                ds.CreatePlotTree(unitCode, plotNumber, tp.StratumCode, tp.SampleGroupCode);

                var trees = ds.GetPlotTreeProxies(unitCode, plotNumber).ToArray();

                trees.Should().HaveCount(2);
                trees.Select(x => x.TreeNumber).Should().BeInAscendingOrder();

                db.Execute("UPDATE Tree SET TreeNumber = 3 WHERE TreeNumber = 1;");

                var treesAgain = ds.GetPlotTreeProxies(unitCode, plotNumber).ToArray();
                treesAgain.Select(x => x.TreeNumber).Should().BeInAscendingOrder();
            }
        }
예제 #2
0
        public void IncrementFixCNTTreeCount()
        {
            var unitCode   = Units.First();
            var plotNumber = 1;
            var fieldName  = "DBH";
            var value      = 10;

            var subpop = Subpops.First();

            var sgCode = subpop.SampleGroupCode;
            var stCode = subpop.StratumCode;
            var sp     = subpop.SpeciesCode;
            var ld     = subpop.LiveDead;

            using (var database = CreateDatabase())
            {
                var plotds = new CuttingUnitDatastore(database, CruiseID, TestDeviceInfoService.TEST_DEVICEID, new SamplerInfoDataservice(database, CruiseID, TestDeviceInfoService.TEST_DEVICEID));

                var plotID = plotds.AddNewPlot(unitCode);

                var ds = new FixCNTDataservice(database, CruiseID, TestDeviceInfoService.TEST_DEVICEID);

                ds.GetTreeCount(unitCode, plotNumber, stCode, sgCode, sp, ld, fieldName, value)
                .Should().Be(0);

                // after incrementing once, tree count should be 1
                // and there shold only be one tree in the tree table
                ds.IncrementFixCNTTreeCount(unitCode, plotNumber, stCode, sgCode, sp, ld, fieldName, value);
                ds.GetTreeCount(unitCode, plotNumber, stCode, sgCode, sp, ld, fieldName, value)
                .Should().Be(1);
                database.ExecuteScalar <int>("SELECT count(*) FROM Tree;").Should().Be(1);

                // after incrementing a second time, tree count should be 2
                // and there shold still only be one tree in the tree table
                ds.IncrementFixCNTTreeCount(unitCode, plotNumber, stCode, sgCode, sp, ld, fieldName, value);
                ds.GetTreeCount(unitCode, plotNumber, stCode, sgCode, sp, ld, fieldName, value)
                .Should().Be(2);

                database.ExecuteScalar <int>("SELECT count(*) FROM Tree;").Should().Be(1);

                var plotTrees = plotds.GetPlotTreeProxies(unitCode, plotNumber);
                plotTrees.Should().HaveCount(1);
            }
        }