Example #1
0
        public void Sync_Plot_Stratum_Add()
        {
            var fromPath = base.GetTempFilePath(".crz3", "Sync_Plot_Add_fromFile");
            var toPath   = base.GetTempFilePath(".crz3", "Sync_Plot_Add_toFile");

            var syncOptions = new CruiseSyncOptions()
            {
                Design    = SyncFlags.Insert,
                FieldData = SyncFlags.Insert,
            };

            var cruiseID = Guid.NewGuid().ToString();
            var saleID   = Guid.NewGuid().ToString();

            using var fromDb = CreateDatabaseFile(fromPath, cruiseID, saleID);

            var newPlot = new Plot()
            {
                CruiseID        = cruiseID,
                PlotID          = Guid.NewGuid().ToString(),
                CuttingUnitCode = Units[0],
                PlotNumber      = 1,
            };

            fromDb.Insert(newPlot);

            fromDb.CopyTo(toPath, true);
            using var toDb = new CruiseDatastore_V3(toPath);

            var newPlotStratum = new Plot_Stratum()
            {
                CruiseID        = cruiseID,
                PlotNumber      = newPlot.PlotNumber,
                CuttingUnitCode = newPlot.CuttingUnitCode,
                StratumCode     = PlotStrata[0].StratumCode,
            };

            fromDb.Insert(newPlotStratum);

            var syncer = new CruiseSyncer();

            syncer.Sync(cruiseID, fromDb, toDb, syncOptions);

            toDb.GetRowCount("Plot", "WHERE PlotID = @p1", newPlot.PlotID)
            .Should().Be(1);
            toDb.ExecuteScalar2 <int>("SELECT COUNT(*) FROM Plot_Stratum WHERE CruiseID = @CruiseID AND PlotNumber = @PlotNumber AND CuttingUnitCode = @CuttingUnitCode", newPlotStratum)
            .Should().Be(1);
        }