public void VerifyUpdateSelectedParameterType() { this.viewModel.SelectedThing = null; Assert.DoesNotThrow(() => this.viewModel.UpdateSelectedParameterType()); this.viewModel.SelectedThing = this.viewModel.Variables.First(); var randomParameterType = new BooleanParameterType(); this.viewModel.SelectedThing.SelectedParameterType = randomParameterType; this.viewModel.SelectedThing.SelectedParameter = new Parameter() { ParameterType = randomParameterType }; Assert.DoesNotThrow(() => this.viewModel.UpdateSelectedParameterType()); Assert.IsNotNull(this.viewModel.SelectedThing.SelectedParameterType); this.viewModel.SelectedThing.SelectedParameter = new Parameter() { ParameterType = this.parameterType }; Assert.DoesNotThrow(() => this.viewModel.UpdateSelectedParameterType()); Assert.AreSame(this.viewModel.SelectedThing.SelectedParameter.ParameterType, this.viewModel.SelectedThing.SelectedParameterType); }
public void VerifyThatTheSwitchIsUpdatedWhenContainerRowIsAParameterOrOverrideBaseRowViewModel() { var parameter = new Parameter(Guid.NewGuid(), this.cache, this.uri); var boolPt = new BooleanParameterType(Guid.NewGuid(), this.cache, this.uri); var compoundParameterType = new CompoundParameterType(Guid.NewGuid(), this.cache, this.uri); var component1 = new ParameterTypeComponent(Guid.NewGuid(), this.cache, this.uri) { ParameterType = boolPt }; var component2 = new ParameterTypeComponent(Guid.NewGuid(), this.cache, this.uri) { ParameterType = boolPt }; compoundParameterType.Component.Add(component1); compoundParameterType.Component.Add(component2); parameter.ParameterType = compoundParameterType; var parameterOverride = new ParameterOverride(Guid.NewGuid(), this.cache, this.uri); parameterOverride.Parameter = parameter; this.elementUsage.ParameterOverride.Add(parameterOverride); var parameterOverrideRowViewModel = new ParameterOverrideRowViewModel(parameterOverride, this.session.Object, null); var component1row = (ParameterComponentValueRowViewModel)parameterOverrideRowViewModel.ContainedRows.First(); var component2row = (ParameterComponentValueRowViewModel)parameterOverrideRowViewModel.ContainedRows.Last(); component1row.Switch = ParameterSwitchKind.COMPUTED; Assert.AreEqual(ParameterSwitchKind.COMPUTED, component2row.Switch); }
public void VerifyThatRdlShortnameIsUpdated() { var vm = new ParameterTypesBrowserViewModel(this.session.Object, this.siteDirectory, null, null, null, null); var sRdl = new SiteReferenceDataLibrary(Guid.NewGuid(), this.assembler.Cache, this.uri); sRdl.Container = this.siteDirectory; var cat = new BooleanParameterType(Guid.NewGuid(), this.assembler.Cache, this.uri) { Name = "cat1", ShortName = "1", Container = sRdl }; var cat2 = new BooleanParameterType(Guid.NewGuid(), this.assembler.Cache, this.uri) { Name = "cat2", ShortName = "2", Container = sRdl }; CDPMessageBus.Current.SendObjectChangeEvent(cat, EventKind.Added); CDPMessageBus.Current.SendObjectChangeEvent(cat2, EventKind.Added); var rev = typeof(Thing).GetProperty("RevisionNumber"); rev.SetValue(sRdl, 3); sRdl.ShortName = "test"; CDPMessageBus.Current.SendObjectChangeEvent(sRdl, EventKind.Updated); Assert.IsTrue(vm.ParameterTypes.Count(x => x.ContainerRdl == "test") == 2); }
public void VerifyThatOwnerIsUpdatedForParameterOrOverride() { var parameter = new Parameter(Guid.NewGuid(), this.cache, this.uri); parameter.Owner = this.activeDomain; var boolPt = new BooleanParameterType(Guid.NewGuid(), this.cache, this.uri); var compoundParameterType = new CompoundParameterType(Guid.NewGuid(), this.cache, this.uri); var component1 = new ParameterTypeComponent(Guid.NewGuid(), this.cache, this.uri) { ParameterType = boolPt }; var component2 = new ParameterTypeComponent(Guid.NewGuid(), this.cache, this.uri) { ParameterType = boolPt }; compoundParameterType.Component.Add(component1); compoundParameterType.Component.Add(component2); parameter.ParameterType = compoundParameterType; this.elementDefinition.Parameter.Add(parameter); var parameterSubscriptionRowViewModel = new ParameterRowViewModel(parameter, this.session.Object, null, false); var component1row = (ParameterComponentValueRowViewModel)parameterSubscriptionRowViewModel.ContainedRows.First(); Assert.IsTrue(component1row.OwnerName.Contains(this.activeDomain.Name)); this.activeDomain.Name = "updated"; this.activeDomain.RevisionNumber = 100; CDPMessageBus.Current.SendObjectChangeEvent(this.activeDomain, EventKind.Updated); Assert.IsTrue(component1row.OwnerName.Contains("updated")); }
public void VerifyThatDragOverParameterWorks() { var containerRow = new RequirementsSpecificationRowViewModel(this.reqSpec, this.session.Object, null); var row = new RequirementsGroupRowViewModel(this.grp1, this.session.Object, containerRow, containerRow); var param = new BooleanParameterType(); var tuple = new Tuple <ParameterType, MeasurementScale>(param, null); var dropinfo = new Mock <IDropInfo>(); dropinfo.Setup(x => x.Payload).Returns(tuple); dropinfo.SetupProperty(x => x.Effects); row.DragOver(dropinfo.Object); Assert.AreEqual(dropinfo.Object.Effects, DragDropEffects.None); this.permissionService.Setup(x => x.CanWrite(ClassKind.RequirementsContainerParameterValue, It.IsAny <RequirementsGroup>())).Returns(true); row.DragOver(dropinfo.Object); Assert.AreEqual(dropinfo.Object.Effects, DragDropEffects.Copy); this.grp1.ParameterValue.Add(new RequirementsContainerParameterValue { ParameterType = param }); row.DragOver(dropinfo.Object); Assert.AreEqual(dropinfo.Object.Effects, DragDropEffects.None); }
public void SetUp() { CultureInfo.CurrentCulture = CultureInfo.InvariantCulture; this.uri = new Uri("http://www.rheagroup.com"); this.cache = new ConcurrentDictionary <CDP4Common.Types.CacheKey, Lazy <Thing> >(); this.ratioScale = new RatioScale(Guid.NewGuid(), this.cache, this.uri); var valuedefLow = new EnumerationValueDefinition(Guid.NewGuid(), this.cache, this.uri); valuedefLow.ShortName = "low"; var valuedefMedium = new EnumerationValueDefinition(Guid.NewGuid(), this.cache, this.uri); valuedefMedium.ShortName = "medium"; this.booleanParameterType = new BooleanParameterType(Guid.NewGuid(), this.cache, this.uri); this.dateParameterType = new DateParameterType(Guid.NewGuid(), this.cache, this.uri); this.dateTimeParameterType = new DateTimeParameterType(Guid.NewGuid(), this.cache, this.uri); this.enumerationParameterType = new EnumerationParameterType(Guid.NewGuid(), this.cache, this.uri); this.enumerationParameterType.Name = "test"; this.enumerationParameterType.ValueDefinition.Add(valuedefLow); this.enumerationParameterType.ValueDefinition.Add(valuedefMedium); this.simpleQuantityKind = new SimpleQuantityKind(Guid.NewGuid(), this.cache, this.uri); this.simpleQuantityKind.PossibleScale.Add(this.ratioScale); this.simpleQuantityKind.DefaultScale = this.ratioScale; this.textParameterType = new TextParameterType(Guid.NewGuid(), this.cache, this.uri); this.timeOfDayParameterType = new TimeOfDayParameterType(Guid.NewGuid(), this.cache, this.uri); }
public void VerifyThatParametertypesFromExistingRdlsAreLoaded() { var siterefenceDataLibrary = new SiteReferenceDataLibrary(Guid.NewGuid(), null, null); var pt1 = new TextParameterType(Guid.NewGuid(), null, null); var pt2 = new TextParameterType(Guid.NewGuid(), null, null); siterefenceDataLibrary.ParameterType.Add(pt1); siterefenceDataLibrary.ParameterType.Add(pt2); this.siteDirectory.SiteReferenceDataLibrary.Add(siterefenceDataLibrary); var engineeringModelSetup = new EngineeringModelSetup(Guid.NewGuid(), null, null); var modelReferenceDataLibrary = new ModelReferenceDataLibrary(Guid.NewGuid(), null, null); var pt3 = new BooleanParameterType(Guid.NewGuid(), null, null); var pt4 = new BooleanParameterType(Guid.NewGuid(), null, null); modelReferenceDataLibrary.ParameterType.Add(pt3); modelReferenceDataLibrary.ParameterType.Add(pt4); engineeringModelSetup.RequiredRdl.Add(modelReferenceDataLibrary); this.siteDirectory.Model.Add(engineeringModelSetup); this.session.Setup(x => x.OpenReferenceDataLibraries).Returns(new HashSet <ReferenceDataLibrary>(this.siteDirectory.SiteReferenceDataLibrary) { modelReferenceDataLibrary }); var browser = new ParameterTypesBrowserViewModel(this.session.Object, this.siteDirectory, null, null, null, null); Assert.AreEqual(4, browser.ParameterTypes.Count); Assert.IsNotNull(browser.ParameterTypes.First().Thing); browser.Dispose(); Assert.IsNull(browser.ParameterTypes.First().Thing); }
public void VerifyThatContainersCanBeAddedAndTheRouteIsGenerated() { BooleanParameterType booleanParameterType; var expectedRoute = string.Empty; var computedRoute = string.Empty; var booleanParameterTypeId = Guid.NewGuid(); var siteReferenceDataLibraryId = Guid.NewGuid(); var siteDirectoryId = Guid.NewGuid(); var modelReferenceDataLibraryId = Guid.NewGuid(); var engineeringModelSetupId = Guid.NewGuid(); // test that it works for a parameter type contained in SiteReferenceDataLibrary booleanParameterType = new BooleanParameterType(booleanParameterTypeId, 1); booleanParameterType.AddContainer(ClassKind.SiteReferenceDataLibrary, siteReferenceDataLibraryId); booleanParameterType.AddContainer(ClassKind.SiteDirectory, siteDirectoryId); expectedRoute = $"/SiteDirectory/{siteDirectoryId}/siteReferenceDataLibrary/{siteReferenceDataLibraryId}/parameterType/{booleanParameterTypeId}"; computedRoute = booleanParameterType.Route; Assert.That(computedRoute, Is.EqualTo(expectedRoute)); // test that it works for a parameter type contained in ModelReferenceDataLibrary booleanParameterType = new BooleanParameterType(booleanParameterTypeId, 1); booleanParameterType.AddContainer(ClassKind.ModelReferenceDataLibrary, modelReferenceDataLibraryId); booleanParameterType.AddContainer(ClassKind.EngineeringModelSetup, engineeringModelSetupId); booleanParameterType.AddContainer(ClassKind.SiteDirectory, siteDirectoryId); expectedRoute = $"/SiteDirectory/{siteDirectoryId}/model/{engineeringModelSetupId}/requiredRdl/{modelReferenceDataLibraryId}/parameterType/{booleanParameterTypeId}"; computedRoute = booleanParameterType.Route; Assert.That(computedRoute, Is.EqualTo(expectedRoute)); }
public void VerifyCreateParameterOverride() { var vm = new ProductTreeViewModel(this.option, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, this.dialogNavigationService.Object, null); var revisionNumber = typeof(Iteration).GetProperty("RevisionNumber"); revisionNumber.SetValue(this.iteration, 50); var elementdef = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri) { Container = this.iteration }; var boolParamType = new BooleanParameterType(Guid.NewGuid(), this.assembler.Cache, this.uri); var elementUsage = new ElementUsage(Guid.NewGuid(), this.assembler.Cache, this.uri) { Container = elementdef, ElementDefinition = elementdef }; var parameter = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri) { Owner = this.domain, Container = elementUsage, ParameterType = boolParamType }; elementdef.Parameter.Add(parameter); var published = new ValueArray <string>(new List <string> { "published" }); var paramValueSet = new ParameterValueSet(Guid.NewGuid(), this.assembler.Cache, this.uri) { Published = published, Manual = published, Computed = published, ValueSwitch = ParameterSwitchKind.COMPUTED }; parameter.ValueSet.Add(paramValueSet); var usageRow = new ElementUsageRowViewModel(elementUsage, this.option, this.session.Object, null); var parameterRow = new ParameterRowViewModel(parameter, this.option, this.session.Object, usageRow); this.iteration.TopElement = elementdef; vm.SelectedThing = parameterRow; Assert.IsTrue(vm.CreateOverrideCommand.CanExecute(null)); vm.SelectedThing = null; vm.CreateOverrideCommand.Execute(null); this.session.Verify(x => x.Write(It.IsAny <OperationContainer>()), Times.Never); vm.SelectedThing = vm.TopElement.Single(); vm.CreateOverrideCommand.Execute(null); this.session.Verify(x => x.Write(It.IsAny <OperationContainer>()), Times.Never); vm.SelectedThing = parameterRow; vm.CreateOverrideCommand.Execute(parameter); this.session.Verify(x => x.Write(It.IsAny <OperationContainer>())); vm.PopulateContextMenu(); Assert.AreEqual(6, vm.ContextMenu.Count); }
public void VerifyThatValidatorWorksForBooleanParameterType() { var boolPt = new BooleanParameterType(); Assert.That(ParameterValueValidator.Validate(true, boolPt), Is.Null.Or.Empty); Assert.That(ParameterValueValidator.Validate(false, boolPt), Is.Null.Or.Empty); Assert.That(ParameterValueValidator.Validate(null, boolPt), Is.Null.Or.Empty); Assert.That(ParameterValueValidator.Validate("hoho", boolPt), Is.Not.Null.Or.Empty); }
public void VerifyExecuteDeleteSubscriptionCommand() { var vm = new ProductTreeViewModel(this.option, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, this.dialogNavigationService.Object, null); var revisionNumber = typeof(Iteration).GetProperty("RevisionNumber"); revisionNumber.SetValue(this.iteration, 50); var elementdef = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri) { Container = this.iteration }; var anotherDomain = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri) { Name = "Not owned" }; var boolParamType = new BooleanParameterType(Guid.NewGuid(), this.assembler.Cache, this.uri); var parameter = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri) { Owner = anotherDomain, Container = elementdef, ParameterType = boolParamType }; parameter.ParameterSubscription.Add(new ParameterSubscription(Guid.NewGuid(), this.assembler.Cache, this.uri) { Owner = this.domain }); var published = new ValueArray <string>(new List <string> { "published" }); var paramValueSet = new ParameterValueSet(Guid.NewGuid(), this.assembler.Cache, this.uri) { Published = published, Manual = published, Computed = published, ValueSwitch = ParameterSwitchKind.COMPUTED }; parameter.ValueSet.Add(paramValueSet); elementdef.Parameter.Add(parameter); this.iteration.TopElement = elementdef; CDPMessageBus.Current.SendObjectChangeEvent(this.iteration, EventKind.Updated); Assert.AreSame(elementdef, vm.TopElement.Single().Thing); Assert.AreEqual(1, vm.TopElement.Single().ContainedRows.Count); var paramRow = vm.TopElement.Single().ContainedRows.First() as ParameterOrOverrideBaseRowViewModel; Assert.NotNull(paramRow); vm.SelectedThing = paramRow; vm.PopulateContextMenu(); Assert.AreEqual(8, vm.ContextMenu.Count); Assert.IsTrue(vm.DeleteSubscriptionCommand.CanExecute(null)); Assert.AreEqual(1, paramRow.Thing.ParameterSubscription.Count); vm.DeleteSubscriptionCommand.Execute(null); }
public void Setup() { RxApp.MainThreadScheduler = Scheduler.CurrentThread; this.permissionService = new Mock <IPermissionService>(); this.cache = new ConcurrentDictionary <CacheKey, Lazy <Thing> >(); this.session = new Mock <ISession>(); var person = new Person(Guid.NewGuid(), null, null) { Container = this.siteDir }; this.session.Setup(x => x.ActivePerson).Returns(person); this.siteDir = new SiteDirectory(Guid.NewGuid(), this.cache, null); this.siteDir.Person.Add(person); this.srdl = new SiteReferenceDataLibrary(Guid.NewGuid(), this.cache, null) { Name = "testRDL", ShortName = "test" }; this.compoundPt = new CompoundParameterType { Name = "parameterType", ShortName = "cat" }; this.cat = new Category(Guid.NewGuid(), this.cache, null) { Name = "category1", ShortName = "cat1" }; this.cat.PermissibleClass.Add(ClassKind.CompoundParameterType); this.srdl.DefinedCategory.Add(cat); this.siteDir.SiteReferenceDataLibrary.Add(this.srdl); this.session.Setup(x => x.RetrieveSiteDirectory()).Returns(this.siteDir); this.session.Setup(x => x.OpenReferenceDataLibraries).Returns(new HashSet <ReferenceDataLibrary>(this.siteDir.SiteReferenceDataLibrary)); this.bpt = new BooleanParameterType(Guid.NewGuid(), this.cache, null); this.cpt = new CompoundParameterType(Guid.NewGuid(), this.cache, null); this.srdl.ParameterType.Add(this.bpt); this.srdl.ParameterType.Add(this.cpt); this.qt = new SimpleQuantityKind(Guid.NewGuid(), this.cache, null); this.srdl.ParameterType.Add(this.qt); this.scale = new OrdinalScale(Guid.NewGuid(), this.cache, null); this.srdl.Scale.Add(this.scale); this.qt.PossibleScale.Add(this.scale); this.cache.TryAdd(new CacheKey(this.srdl.Iid, null), new Lazy <Thing>(() => this.srdl)); this.permissionService.Setup(x => x.CanWrite(It.IsAny <ClassKind>(), It.IsAny <Thing>())).Returns(true); this.permissionService.Setup(x => x.CanWrite(It.IsAny <Thing>())).Returns(true); this.session.Setup(x => x.PermissionService).Returns(this.permissionService.Object); var dal = new Mock <IDal>(); this.session.Setup(x => x.DalVersion).Returns(new Version(1, 1, 0)); this.session.Setup(x => x.Dal).Returns(dal.Object); dal.Setup(x => x.MetaDataProvider).Returns(new MetaDataProvider()); this.parameterType = new ParameterTypeComponent(); }
public void VerifyThatWrongContainerCantBeAdded() { BooleanParameterType booleanParameterType; var booleanParameterTypeId = Guid.NewGuid(); var siteReferenceDataLibraryId = Guid.NewGuid(); booleanParameterType = new BooleanParameterType(booleanParameterTypeId, 1); booleanParameterType.AddContainer(ClassKind.SiteReferenceDataLibrary, siteReferenceDataLibraryId); Assert.Throws <InvalidOperationException>(() => booleanParameterType.AddContainer(ClassKind.Person, Guid.NewGuid())); }
public void Setup() { RxApp.MainThreadScheduler = Scheduler.CurrentThread; this.serviceLocator = new Mock <IServiceLocator>(); this.navigation = new Mock <IThingDialogNavigationService>(); this.cache = new ConcurrentDictionary <CacheKey, Lazy <Thing> >(); ServiceLocator.SetLocatorProvider(() => this.serviceLocator.Object); this.serviceLocator.Setup(x => x.GetInstance <IThingDialogNavigationService>()).Returns(this.navigation.Object); this.permissionService = new Mock <IPermissionService>(); this.permissionService.Setup(x => x.CanWrite(It.IsAny <Thing>())).Returns(true); this.session = new Mock <ISession>(); var person = new Person(Guid.NewGuid(), null, null) { Container = this.siteDir }; this.session.Setup(x => x.ActivePerson).Returns(person); this.session.Setup(x => x.PermissionService).Returns(this.permissionService.Object); this.siteDir = new SiteDirectory(Guid.NewGuid(), this.cache, null); this.siteDir.Person.Add(person); var rdl = new SiteReferenceDataLibrary(Guid.NewGuid(), this.cache, null) { Name = "testRDL", ShortName = "test" }; this.booleanParameterType = new BooleanParameterType() { Name = "booleanParameterType", ShortName = "cat" }; var cat = new Category(Guid.NewGuid(), this.cache, null) { Name = "category1", ShortName = "cat1" }; rdl.DefinedCategory.Add(cat); this.siteDir.SiteReferenceDataLibrary.Add(rdl); var transactionContext = TransactionContextResolver.ResolveContext(this.siteDir); this.transaction = new ThingTransaction(transactionContext, null); this.session.Setup(x => x.RetrieveSiteDirectory()).Returns(this.siteDir); this.session.Setup(x => x.OpenReferenceDataLibraries).Returns(new HashSet <ReferenceDataLibrary>(this.siteDir.SiteReferenceDataLibrary)); this.cache.TryAdd(new CacheKey(rdl.Iid, null), new Lazy <Thing>(() => rdl)); var dal = new Mock <IDal>(); this.session.Setup(x => x.DalVersion).Returns(new Version(1, 1, 0)); this.session.Setup(x => x.Dal).Returns(dal.Object); dal.Setup(x => x.MetaDataProvider).Returns(new MetaDataProvider()); this.viewmodel = new BooleanParameterTypeDialogViewModel(this.booleanParameterType, this.transaction, this.session.Object, true, ThingDialogKind.Create, null, null, null); }
public void VerifyThatCreateParameterThrowsExceptionWhenElementDefinitionIsNull() { var elementDefinition = new ElementDefinition(Guid.NewGuid(), this.cache, null); var group = new ParameterGroup(Guid.NewGuid(), this.cache, null); var parameterType = new BooleanParameterType(Guid.NewGuid(), this.cache, null); var scale = new RatioScale(Guid.NewGuid(), this.cache, null); var domainOfExpertise = new DomainOfExpertise(Guid.NewGuid(), this.cache, null); Assert.ThrowsAsync <ArgumentNullException>(async() => await this.thingCreator.CreateParameter(null, group, parameterType, scale, domainOfExpertise, this.session.Object)); Assert.ThrowsAsync <ArgumentNullException>(async() => await this.thingCreator.CreateParameter(elementDefinition, group, null, scale, domainOfExpertise, this.session.Object)); Assert.ThrowsAsync <ArgumentNullException>(async() => await this.thingCreator.CreateParameter(elementDefinition, group, parameterType, scale, null, this.session.Object)); Assert.ThrowsAsync <ArgumentNullException>(async() => await this.thingCreator.CreateParameter(elementDefinition, group, parameterType, scale, domainOfExpertise, null)); }
public void VerifyThatDropParameterTypeWorks() { var containerRow = new RequirementsSpecificationRowViewModel(this.spec1, this.session.Object, null); var param = new BooleanParameterType(); var tuple = new Tuple <ParameterType, MeasurementScale>(param, null); var dropinfo = new Mock <IDropInfo>(); dropinfo.Setup(x => x.Payload).Returns(tuple); containerRow.Drop(dropinfo.Object); this.session.Verify(x => x.Write(It.IsAny <OperationContainer>())); }
public void VerifyThatParameterTypeEventsAreCaught() { var textParamType = new TextParameterType(Guid.NewGuid(), this.assembler.Cache, this.uri); CDPMessageBus.Current.SendObjectChangeEvent(textParamType, EventKind.Added); Assert.AreEqual(1, this.ParameterTypesBrowserViewModel.ParameterTypes.Count); CDPMessageBus.Current.SendObjectChangeEvent(textParamType, EventKind.Removed); Assert.IsFalse(this.ParameterTypesBrowserViewModel.ParameterTypes.Any()); var booleanParamType = new BooleanParameterType(Guid.NewGuid(), this.assembler.Cache, this.uri); CDPMessageBus.Current.SendObjectChangeEvent(booleanParamType, EventKind.Added); Assert.AreEqual(1, this.ParameterTypesBrowserViewModel.ParameterTypes.Count); CDPMessageBus.Current.SendObjectChangeEvent(booleanParamType, EventKind.Removed); Assert.IsFalse(this.ParameterTypesBrowserViewModel.ParameterTypes.Any()); var defaultScale = new CyclicRatioScale(Guid.NewGuid(), this.assembler.Cache, this.uri); var simpleQuantityKind = new SimpleQuantityKind(Guid.NewGuid(), this.assembler.Cache, this.uri) { DefaultScale = defaultScale }; CDPMessageBus.Current.SendObjectChangeEvent(simpleQuantityKind, EventKind.Added); Assert.AreEqual(1, this.ParameterTypesBrowserViewModel.ParameterTypes.Count); CDPMessageBus.Current.SendObjectChangeEvent(simpleQuantityKind, EventKind.Removed); Assert.IsFalse(this.ParameterTypesBrowserViewModel.ParameterTypes.Any()); var specializedQuantityKind = new SpecializedQuantityKind(Guid.NewGuid(), this.assembler.Cache, this.uri) { DefaultScale = defaultScale }; CDPMessageBus.Current.SendObjectChangeEvent(specializedQuantityKind, EventKind.Added); Assert.AreEqual(1, this.ParameterTypesBrowserViewModel.ParameterTypes.Count); CDPMessageBus.Current.SendObjectChangeEvent(specializedQuantityKind, EventKind.Removed); Assert.IsFalse(this.ParameterTypesBrowserViewModel.ParameterTypes.Any()); var derivedQuantityKind = new DerivedQuantityKind(Guid.NewGuid(), this.assembler.Cache, this.uri) { DefaultScale = defaultScale }; CDPMessageBus.Current.SendObjectChangeEvent(derivedQuantityKind, EventKind.Added); Assert.AreEqual(1, this.ParameterTypesBrowserViewModel.ParameterTypes.Count); CDPMessageBus.Current.SendObjectChangeEvent(derivedQuantityKind, EventKind.Removed); Assert.IsFalse(this.ParameterTypesBrowserViewModel.ParameterTypes.Any()); }
public void VerifyThatContainersCantBeAddedAfterSiteDirectory() { BooleanParameterType booleanParameterType; var booleanParameterTypeId = Guid.NewGuid(); var siteReferenceDataLibraryId = Guid.NewGuid(); var siteDirectoryId = Guid.NewGuid(); booleanParameterType = new BooleanParameterType(booleanParameterTypeId, 1); booleanParameterType.AddContainer(ClassKind.SiteReferenceDataLibrary, siteReferenceDataLibraryId); booleanParameterType.AddContainer(ClassKind.SiteDirectory, siteDirectoryId); Assert.Throws <InvalidOperationException>(() => booleanParameterType.AddContainer(ClassKind.EngineeringModel, Guid.NewGuid())); }
public void Setup() { this.booleanParameterType = new BooleanParameterType(Guid.NewGuid(), null, null) { ShortName = "bool" }; this.elementDefinition1 = new ElementDefinition(Guid.NewGuid(), null, null) { ShortName = "Sat" }; this.elementDefinition2 = new ElementDefinition(Guid.NewGuid(), null, null) { ShortName = "Bat" }; this.elementUsage = new ElementUsage(Guid.NewGuid(), null, null) { ShortName = "battery_1", ElementDefinition = this.elementDefinition2 }; this.elementDefinition1.ContainedElement.Add(this.elementUsage); this.parameter = new Parameter(Guid.NewGuid(), null, null); this.parameter.ParameterType = this.booleanParameterType; this.elementDefinition2.Parameter.Add(this.parameter); this.parameterOverride = new ParameterOverride(Guid.NewGuid(), null, null); this.parameterOverride.Parameter = this.parameter; this.parameterSubscriptionValueSet = new ParameterSubscriptionValueSet(); this.parameterValueSetBase = new ParameterValueSet(); this.parameterValueSetBase.Published = new ValueArray <string>(new List <string> { "computed" }); this.parameterValueSetBase.Computed = new ValueArray <string>(new List <string> { "computed" }); this.parameterValueSetBase.Reference = new ValueArray <string>(new List <string> { "ref" }); this.parameterValueSetBase.ActualState = new ActualFiniteState(); this.parameterValueSetBase.ActualOption = new Option(); this.parameterSubscriptionValueSet.SubscribedValueSet = this.parameterValueSetBase; this.parameterSubscriptionValueSet.Manual = new ValueArray <string>(new List <string> { "manual" }); this.parameterSubscription = new ParameterSubscription(); this.parameterSubscription.ValueSet.Add(this.parameterSubscriptionValueSet); this.parameterSubscription.Owner = new DomainOfExpertise(); }
/// <summary> /// Validates the <param name="value"></param> to check whether it is a <see cref="Boolean"/> /// </summary> /// <param name="parameterType"> /// A <see cref="BooleanParameterType"/> /// </param> /// <param name="value"> /// The value that is to be validated. /// </param> /// <returns> /// a <see cref="ValidationResult"/> that carries the <see cref="ValidationResultKind"/> and an optional message. /// </returns> public static ValidationResult Validate(this BooleanParameterType parameterType, object value) { ValidationResult result; if (value is bool) { result.ResultKind = ValidationResultKind.Valid; result.Message = string.Empty; return(result); } if (value is int) { var intValue = (int)value; if (intValue == 0 || intValue == 1) { result.ResultKind = ValidationResultKind.Valid; result.Message = string.Empty; return(result); } } var valueString = value as string; if (valueString != null) { var lowerCaseValue = valueString.ToLower(); if (ValidBoolan.Contains(lowerCaseValue)) { result.ResultKind = ValidationResultKind.Valid; result.Message = string.Empty; return(result); } bool booleanResult = false; bool.TryParse(valueString, out booleanResult); if (booleanResult) { result.ResultKind = ValidationResultKind.Valid; result.Message = string.Empty; return(result); } } result.ResultKind = ValidationResultKind.Invalid; result.Message = $"{value} is not a valid boolean, valid values are: {string.Join(",", ValidBoolan)}"; return(result); }
public void VerifyCopyPathToClipboardCommand() { var elementdef = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri) { Container = this.iteration, ShortName = "ELEMENT" }; var anotherDomain = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri) { Name = "Not owned" }; var boolParamType = new BooleanParameterType(Guid.NewGuid(), this.assembler.Cache, this.uri) { ShortName = "PARAM" }; var parameter = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri) { Owner = anotherDomain, Container = elementdef, ParameterType = boolParamType }; var published = new ValueArray <string>(new List <string> { "published" }); var paramValueSet = new ParameterValueSet(Guid.NewGuid(), this.assembler.Cache, this.uri) { Published = published, Manual = published, Computed = published, ValueSwitch = ParameterSwitchKind.COMPUTED }; parameter.ValueSet.Add(paramValueSet); elementdef.Parameter.Add(parameter); this.iteration.TopElement = elementdef; var vm = new ProductTreeViewModel(this.option, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, this.dialogNavigationService.Object, null); var paramRow = vm.TopElement.Single().ContainedRows.First() as ParameterOrOverrideBaseRowViewModel; Assert.NotNull(paramRow); vm.SelectedThing = paramRow; vm.PopulateContextMenu(); Assert.AreEqual(7, vm.ContextMenu.Count); Clipboard.SetText("Reset"); vm.CopyPathToClipboardCommand.Execute(null); Assert.IsTrue(Clipboard.GetDataObject().GetData(typeof(string)).ToString().Contains($"{this.nestedParameterPath}")); }
public void VerifyThatTopContainerRouteIsCorrect() { // iteration thing ElementDefinition elementDefinition; var elementDefinitionId = Guid.NewGuid(); var iterationId = Guid.NewGuid(); var engineeringModelId = Guid.NewGuid(); elementDefinition = new ElementDefinition(elementDefinitionId, 1); elementDefinition.AddContainer(ClassKind.Iteration, iterationId); elementDefinition.AddContainer(ClassKind.EngineeringModel, engineeringModelId); Assert.AreEqual(string.Format("/EngineeringModel/{0}/iteration/{1}", engineeringModelId, iterationId), elementDefinition.GetTopContainerRoute()); // engineering model thing Book book; Section section; book = new Book(Guid.NewGuid(), 1); book.AddContainer(ClassKind.EngineeringModel, engineeringModelId); section = new Section(Guid.NewGuid(), 1); section.AddContainer(ClassKind.Book, book.Iid); section.AddContainer(ClassKind.EngineeringModel, engineeringModelId); Assert.AreEqual($"/EngineeringModel/{engineeringModelId}", book.GetTopContainerRoute()); Assert.AreEqual($"/EngineeringModel/{engineeringModelId}", section.GetTopContainerRoute()); EngineeringModel enModel; enModel = new EngineeringModel(Guid.NewGuid(), 1); Assert.AreEqual($"/EngineeringModel/{enModel.Iid}", enModel.GetTopContainerRoute()); // site directory thing BooleanParameterType booleanParameterType; var booleanParameterTypeId = Guid.NewGuid(); var siteReferenceDataLibraryId = Guid.NewGuid(); var siteDirectoryId = Guid.NewGuid(); var siteDirectory = new SiteDirectory(siteDirectoryId, 1); booleanParameterType = new BooleanParameterType(booleanParameterTypeId, 1); booleanParameterType.AddContainer(ClassKind.SiteReferenceDataLibrary, siteReferenceDataLibraryId); booleanParameterType.AddContainer(ClassKind.SiteDirectory, siteDirectoryId); Assert.That(booleanParameterType.GetTopContainerRoute(), Is.EqualTo($"/SiteDirectory/{siteDirectoryId}")); Assert.That(siteDirectory.GetTopContainerRoute(), Is.EqualTo($"/SiteDirectory/{siteDirectoryId}")); }
public async Task VerifyThatCreateParameterWriteExceptionsAreThrown() { var engineeringModel = new EngineeringModel(Guid.NewGuid(), this.cache, null); var iteration = new Iteration(Guid.NewGuid(), this.cache, null); engineeringModel.Iteration.Add(iteration); var elementDefinition = new ElementDefinition(Guid.NewGuid(), this.cache, null); iteration.Element.Add(elementDefinition); var parameterType = new BooleanParameterType(Guid.NewGuid(), this.cache, null); var domainOfExpertise = new DomainOfExpertise(Guid.NewGuid(), this.cache, null); this.cache.TryAdd(new CacheKey(elementDefinition.Iid, iteration.Iid), new Lazy <Thing>(() => elementDefinition)); Assert.ThrowsAsync <Exception>(async() => await this.thingCreator.CreateParameter(elementDefinition, null, parameterType, null, domainOfExpertise, this.sessionThatThrowsException.Object)); }
public void VerifyThatResolveCopyReferenceWorks() { var parameter = new Parameter(Guid.NewGuid(), 1) { Owner = Guid.NewGuid(), ParameterType = Guid.NewGuid() }; var pt1 = new BooleanParameterType(parameter.ParameterType, 0); var pt2 = new BooleanParameterType(Guid.NewGuid(), 0); var originalToCopy = new Dictionary <CDP4Common.DTO.Thing, CDP4Common.DTO.Thing>(); originalToCopy.Add(pt1, pt2); parameter.ResolveCopyReference(originalToCopy); Assert.That(pt2.Iid, Is.EqualTo(parameter.ParameterType)); }
public void VerifyThatStartNonQuantityKindRowDragReturnsProperPayload() { var dragInfo = new Mock <IDragInfo>(); dragInfo.SetupProperty(x => x.Payload); var booleanParameterType = new BooleanParameterType(Guid.NewGuid(), null, null); var booleanParameterTypeRowViewModel = new ParameterTypeRowViewModel(booleanParameterType, this.session.Object, null); booleanParameterTypeRowViewModel.StartDrag(dragInfo.Object); Assert.IsInstanceOf <Tuple <ParameterType, MeasurementScale> >(dragInfo.Object.Payload); var payload = (Tuple <ParameterType, MeasurementScale>)dragInfo.Object.Payload; Assert.AreEqual(booleanParameterType, payload.Item1); Assert.IsNull(payload.Item2); }
public async Task VerifyThatWriteIsExecuted() { var engineeringModel = new EngineeringModel(Guid.NewGuid(), this.cache, null); var iteration = new Iteration(Guid.NewGuid(), this.cache, null); engineeringModel.Iteration.Add(iteration); var elementDefinition = new ElementDefinition(Guid.NewGuid(), this.cache, null); iteration.Element.Add(elementDefinition); var parameterType = new BooleanParameterType(); var domainOfExpertise = new DomainOfExpertise(Guid.NewGuid(), this.cache, null); this.cache.TryAdd(new CacheKey(elementDefinition.Iid, iteration.Iid), new Lazy <Thing>(() => elementDefinition)); await this.thingCreator.CreateParameter(elementDefinition, null, parameterType, null, domainOfExpertise, this.session.Object); this.session.Verify(x => x.Write(It.IsAny <OperationContainer>())); }
public void VerifyThatGetRequiredRdlsWorks() { var srdl1 = new SiteReferenceDataLibrary(Guid.NewGuid(), null, null); var mrdl = new SiteReferenceDataLibrary(Guid.NewGuid(), null, null); var srdl2 = new SiteReferenceDataLibrary(Guid.NewGuid(), null, null); var parameter = new Parameter(Guid.NewGuid(), null, null); var type = new BooleanParameterType(Guid.NewGuid(), null, null); mrdl.RequiredRdl = srdl1; srdl2.RequiredRdl = srdl1; parameter.ParameterType = type; mrdl.ParameterType.Add(type); Assert.IsTrue(parameter.RequiredRdls.Contains(srdl1)); Assert.IsTrue(parameter.RequiredRdls.Contains(mrdl)); Assert.IsFalse(parameter.RequiredRdls.Contains(srdl2)); }
public void TestComparer2() { var type1 = new CompoundParameterType { Name = "C" }; var type2 = new BooleanParameterType { Name = "a" }; var para1 = new Parameter { ParameterType = type1 }; var para2 = new Parameter { ParameterType = type2 }; var comparer = new ParameterBaseComparer(); Assert.AreEqual(2, comparer.Compare(para1, para2)); }
/// <summary> /// Serialize the <see cref="BooleanParameterType"/> /// </summary> /// <param name="booleanParameterType">The <see cref="BooleanParameterType"/> to serialize</param> /// <returns>The <see cref="JObject"/></returns> private JObject Serialize(BooleanParameterType booleanParameterType) { var jsonObject = new JObject(); jsonObject.Add("alias", this.PropertySerializerMap["alias"](booleanParameterType.Alias.OrderBy(x => x, this.guidComparer))); jsonObject.Add("category", this.PropertySerializerMap["category"](booleanParameterType.Category.OrderBy(x => x, this.guidComparer))); jsonObject.Add("classKind", this.PropertySerializerMap["classKind"](Enum.GetName(typeof(CDP4Common.CommonData.ClassKind), booleanParameterType.ClassKind))); jsonObject.Add("definition", this.PropertySerializerMap["definition"](booleanParameterType.Definition.OrderBy(x => x, this.guidComparer))); jsonObject.Add("excludedDomain", this.PropertySerializerMap["excludedDomain"](booleanParameterType.ExcludedDomain.OrderBy(x => x, this.guidComparer))); jsonObject.Add("excludedPerson", this.PropertySerializerMap["excludedPerson"](booleanParameterType.ExcludedPerson.OrderBy(x => x, this.guidComparer))); jsonObject.Add("hyperLink", this.PropertySerializerMap["hyperLink"](booleanParameterType.HyperLink.OrderBy(x => x, this.guidComparer))); jsonObject.Add("iid", this.PropertySerializerMap["iid"](booleanParameterType.Iid)); jsonObject.Add("isDeprecated", this.PropertySerializerMap["isDeprecated"](booleanParameterType.IsDeprecated)); jsonObject.Add("modifiedOn", this.PropertySerializerMap["modifiedOn"](booleanParameterType.ModifiedOn)); jsonObject.Add("name", this.PropertySerializerMap["name"](booleanParameterType.Name)); jsonObject.Add("revisionNumber", this.PropertySerializerMap["revisionNumber"](booleanParameterType.RevisionNumber)); jsonObject.Add("shortName", this.PropertySerializerMap["shortName"](booleanParameterType.ShortName)); jsonObject.Add("symbol", this.PropertySerializerMap["symbol"](booleanParameterType.Symbol)); jsonObject.Add("thingPreference", this.PropertySerializerMap["thingPreference"](booleanParameterType.ThingPreference)); return(jsonObject); }
public void VerifyCreateParameterOverrideIsDisabledForTopElement() { var vm = new ProductTreeViewModel(this.option, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, this.dialogNavigationService.Object, null); var revisionNumber = typeof(Iteration).GetProperty("RevisionNumber"); revisionNumber.SetValue(this.iteration, 50); var elementdef = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri) { Container = this.iteration }; this.iteration.TopElement = elementdef; var boolParamType = new BooleanParameterType(Guid.NewGuid(), this.assembler.Cache, this.uri); var parameter = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri) { Owner = this.domain, Container = elementdef, ParameterType = boolParamType }; elementdef.Parameter.Add(parameter); Assert.IsFalse(vm.CreateOverrideCommand.CanExecute(parameter)); }