public void Invoke_WithNoSiteModels() { var message = new SiteModelAttributesChangedEvent(); var listener = new SiteModelAttributesChangedEventListener(); listener.Invoke(Guid.NewGuid(), message).Should().BeTrue(); }
public void Invoke_WithSiteModels() { var message = new SiteModelAttributesChangedEvent { SiteModelID = Guid.NewGuid() }; var listener = new SiteModelAttributesChangedEventListener(TRexGrids.ImmutableGridName()); listener.Invoke(Guid.NewGuid(), message).Should().BeTrue(); }
private void TestIt(Func <ISiteModel, bool> loadedFunc, Func <ISiteModel, object> loadAction, Action <SiteModelAttributesChangedEvent, bool> modifyAction, bool modified, bool finalState) { var siteModels = DIContext.Obtain <ISiteModels>(); // Create the new site model var guid = Guid.NewGuid(); var siteModel = siteModels.GetSiteModel(guid, true); // Force the site model to be reloaded in a virgin state so the 'loaded' state is as expected // as metadata registration sets all the loaded flags to 'true' var _evt = new SiteModelAttributesChangedEvent { SiteModelID = guid, AlignmentsModified = true, CsibModified = true, DesignsModified = true, ExistenceMapModified = true, MachineDesignsModified = true, MachineTargetValuesModified = true, MachinesModified = true, ProofingRunsModified = true, SurveyedSurfacesModified = true, SiteModelMarkedForDeletion = false }; siteModels.SiteModelAttributesHaveChanged(_evt); siteModel = siteModels.GetSiteModel(guid, false); loadedFunc.Invoke(siteModel).Should().BeFalse(); var _ = loadAction.Invoke(siteModel); loadedFunc.Invoke(siteModel).Should().BeTrue(); var evt = new SiteModelAttributesChangedEvent { SiteModelID = guid }; modifyAction.Invoke(evt, modified); siteModels.SiteModelAttributesHaveChanged(evt); var siteModel2 = siteModels.GetSiteModel(guid, false); siteModel2.Should().NotBeNull(); siteModel2.Should().NotBe(siteModel); loadedFunc.Invoke(siteModel2).Should().Be(finalState); }
public void Test_ProjectImmutableDataEventsTests_MergingOverrides(int startMins, int endMins) { var siteModel = DITAGFileAndSubGridRequestsWithIgniteFixture.NewEmptyModel(); //Mutable context var bulldozerMachineIndex = siteModel.Machines.Locate("Bulldozer", false).InternalSiteModelMachineIndex; var events = siteModel.MachinesTargetValues[bulldozerMachineIndex]; var layerIds = new[] { (ushort)1, (ushort)2, (ushort)3 }; var layerOverrideId = (ushort)4; var designIds = new[] { 1, 2, 3 }; var designOverrideId = 4; var referenceDate = DateTime.UtcNow; var dateTimes = new[] { referenceDate.AddMinutes(-90), referenceDate.AddMinutes(-60), referenceDate.AddMinutes(-30) }; for (var i = 0; i < 3; i++) { events.MachineDesignNameIDStateEvents.PutValueAtDate(dateTimes[i], designIds[i]); events.LayerIDStateEvents.PutValueAtDate(dateTimes[i], layerIds[i]); } var overrideStartDate = referenceDate.AddMinutes(startMins); var overrideEndDate = referenceDate.AddMinutes(endMins); events.DesignOverrideEvents.PutValueAtDate(overrideStartDate, new OverrideEvent <int>(overrideEndDate, designOverrideId)); events.LayerOverrideEvents.PutValueAtDate(overrideStartDate, new OverrideEvent <ushort>(overrideEndDate, layerOverrideId)); //Now save added events events.SaveMachineEventsToPersistentStore(siteModel.PrimaryStorageProxy); var evt = new SiteModelAttributesChangedEvent { SiteModelID = siteModel.ID, AlignmentsModified = false, CsibModified = false, DesignsModified = false, ExistenceMapModified = false, MachineDesignsModified = false, MachineTargetValuesModified = true, MachinesModified = false, ProofingRunsModified = false, SurveyedSurfacesModified = false }; var siteModels = DIContext.Obtain <ISiteModels>(); siteModels.SiteModelAttributesHaveChanged(evt); //Re-get site model to get newly created one siteModel = siteModels.GetSiteModel(siteModel.ID, false); siteModel.SetStorageRepresentationToSupply(StorageMutability.Immutable);//so that merge will occur events = siteModel.MachinesTargetValues[bulldozerMachineIndex]; CheckMergedList(startMins, endMins, events.MachineDesignNameIDStateEvents, designOverrideId, designIds, dateTimes, overrideStartDate, overrideEndDate); CheckMergedList(startMins, endMins, events.LayerIDStateEvents, layerOverrideId, layerIds, dateTimes, overrideStartDate, overrideEndDate); }
public void Creation() { var evt = new SiteModelAttributesChangedEvent(); evt.Should().NotBeNull(); evt.AlignmentsModified.Should().BeFalse(); evt.CsibModified.Should().BeFalse(); evt.DesignsModified.Should().BeFalse(); evt.ExistenceMapChangeMask.Should().BeNull(); evt.ExistenceMapModified.Should().BeFalse(); evt.MachineDesignsModified.Should().BeFalse(); evt.MachineTargetValuesModified.Should().BeFalse(); evt.MachinesModified.Should().BeFalse(); evt.ProofingRunsModified.Should().BeFalse(); evt.SurveyedSurfacesModified.Should().BeFalse(); evt.SiteModelMarkedForDeletion.Should().BeFalse(); evt.SiteModelID.Should().Be(Guid.Empty); }
public void Test_SiteModelAttributesChangedEvent_WithNullMask() { var argument = new SiteModelAttributesChangedEvent { SiteModelID = Guid.NewGuid(), ExistenceMapModified = true, CsibModified = true, DesignsModified = true, SurveyedSurfacesModified = true, MachinesModified = true, MachineTargetValuesModified = true, MachineDesignsModified = true, ProofingRunsModified = true, AlignmentsModified = true, ExistenceMapChangeMask = null }; SimpleBinarizableInstanceTester.TestClass(argument, "Custom SiteModelAttributesChangedEvent not same after round trip serialisation"); }
public void FromToBinary_WithNullMask() { var newGuid = Guid.NewGuid(); var evt = new SiteModelAttributesChangedEvent { AlignmentsModified = true, CsibModified = true, DesignsModified = true, ExistenceMapChangeMask = new byte[0], ExistenceMapModified = true, MachineDesignsModified = true, MachineTargetValuesModified = true, MachinesModified = true, ProofingRunsModified = true, SurveyedSurfacesModified = true, SiteModelMarkedForDeletion = true, SiteModelID = newGuid }; TestBinarizable_ReaderWriterHelper.RoundTripSerialise(evt); }
public void Test_SiteModel_ChangeNotification_SiteModelMarkedForDeletion() { var siteModels = DIContext.Obtain <ISiteModels>(); // Create the new site model var guid = Guid.NewGuid(); var siteModel = siteModels.GetSiteModel(guid, true); siteModel.SetStorageRepresentationToSupply(StorageMutability.Mutable); siteModel.MarkForDeletion(); // Note the site model is marked for deletion var evt = new SiteModelAttributesChangedEvent { SiteModelID = guid, SiteModelMarkedForDeletion = true }; siteModels.SiteModelAttributesHaveChanged(evt); siteModel = siteModels.GetSiteModel(guid, false); // Check the site model cannot be retrieved when marked for deletion siteModel.Should().BeNull(); }