Ejemplo n.º 1
0
        public void Sync_CuttingUnit_Update()
        {
            var fromPath = base.GetTempFilePath(".crz3", "CuttingUnit_Updated_fromFile");
            var toPath   = base.GetTempFilePath(".crz3", "CuttingUnit_Update_toFile");

            var syncOptions = new CruiseSyncOptions();

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

            // initialize source database
            using var fromDb = CreateDatabaseFile(fromPath, cruiseID, saleID);
            var cuttingUnitID = Guid.NewGuid().ToString();
            var cuttingUnit   = new CuttingUnit()
            {
                CruiseID        = cruiseID,
                CuttingUnitID   = cuttingUnitID,
                CuttingUnitCode = "10",
            };

            fromDb.Insert(cuttingUnit);

            // initialize dest database
            // as exact copy of source database
            fromDb.CopyTo(toPath, true);
            using var toDb = new CruiseDatastore_V3(toPath);

            // modify cutting unit value and save to source database
            cuttingUnit.Area          = Rand.Int();
            cuttingUnit.Description   = Rand.String();
            cuttingUnit.LoggingMethod = "401";
            cuttingUnit.PaymentUnit   = Rand.AlphaNumeric(3);
            cuttingUnit.Rx            = Rand.AlphaNumeric(3);
            cuttingUnit.ModifiedBy    = Rand.AlphaNumeric(4);
            fromDb.Update(cuttingUnit);

            // run sync
            var syncer = new CruiseSyncer();

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

            var cuttingUnitAgain = toDb.From <CuttingUnit>().Where("CuttingUnitID =  @p1")
                                   .Query(cuttingUnitID).FirstOrDefault();

            cuttingUnitAgain.Should().BeEquivalentTo(cuttingUnit, x => x.Excluding(y => y.Modified_TS));
        }