Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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"));
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 12
0
        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()));
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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));
        }
Ejemplo n.º 16
0
        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()));
        }
Ejemplo n.º 19
0
        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();
        }
Ejemplo n.º 20
0
        /// <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}"));
        }
Ejemplo n.º 23
0
        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));
        }
Ejemplo n.º 25
0
        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);
        }
Ejemplo n.º 26
0
        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>()));
        }
Ejemplo n.º 27
0
        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));
        }
Ejemplo n.º 29
0
        /// <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));
        }