コード例 #1
0
        public void VerifyThatParameterNotInRdlCannotBeDropped()
        {
            this.permissionService.Setup(x => x.CanWrite(It.IsAny <ClassKind>(), It.IsAny <Thing>())).Returns(true);

            var domainOfExpertise = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri);
            var elementDefinition = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri);

            elementDefinition.Owner = domainOfExpertise;
            var parameterGroup = new ParameterGroup(Guid.NewGuid(), this.assembler.Cache, this.uri);

            elementDefinition.ParameterGroup.Add(parameterGroup);

            this.iteration.Element.Add(elementDefinition);

            var row = new ParameterGroupRowViewModel(parameterGroup, domainOfExpertise, this.session.Object, null);

            var simpleQuantityKind = new SimpleQuantityKind(Guid.NewGuid(), this.assembler.Cache, this.uri);
            var ratioScale         = new RatioScale(Guid.NewGuid(), null, null);

            simpleQuantityKind.DefaultScale = ratioScale;

            var payload  = new Tuple <ParameterType, MeasurementScale>(simpleQuantityKind, ratioScale);
            var dropInfo = new Mock <IDropInfo>();

            dropInfo.Setup(x => x.Payload).Returns(payload);
            dropInfo.SetupProperty(x => x.Effects);

            row.DragOver(dropInfo.Object);

            Assert.AreEqual(DragDropEffects.None, dropInfo.Object.Effects);
        }
コード例 #2
0
        public void VerifyThatPropertiesAreSet()
        {
            var vm = new ParameterGroupRowViewModel(this.group1, this.session.Object, null);

            Assert.AreEqual("group1", vm.Name);
            Assert.AreEqual("group1", vm.ShortName);
        }
コード例 #3
0
        public async Task VerifyThatGroupMayBeDropped()
        {
            var domainOfExpertise = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri);
            var elementDefinition = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri);

            elementDefinition.Owner = domainOfExpertise;
            var parameterGroup = new ParameterGroup(Guid.NewGuid(), this.assembler.Cache, this.uri);

            elementDefinition.ParameterGroup.Add(parameterGroup);
            this.iteration.Element.Add(elementDefinition);

            var row = new ParameterGroupRowViewModel(parameterGroup, domainOfExpertise, this.session.Object, null);

            var gr2 = new ParameterGroup(Guid.NewGuid(), this.assembler.Cache, this.uri);

            this.assembler.Cache.TryAdd(new CacheKey(gr2.Iid, this.iteration.Iid), new Lazy <Thing>(() => gr2));

            elementDefinition.ParameterGroup.Add(gr2);

            var dropinfo = new Mock <IDropInfo>();

            dropinfo.Setup(x => x.Payload).Returns(gr2);
            dropinfo.SetupProperty(x => x.Effects);

            row.DragOver(dropinfo.Object);

            Assert.AreEqual(DragDropEffects.Move, dropinfo.Object.Effects);

            await row.Drop(dropinfo.Object);

            this.session.Verify(x => x.Write(It.IsAny <OperationContainer>()));
        }
コード例 #4
0
        public async Task VerifyThatParameterCanBeDropped()
        {
            var domainOfExpertise = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri);
            var elementDefinition = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri);

            elementDefinition.Owner = domainOfExpertise;
            var parameterGroup = new ParameterGroup(Guid.NewGuid(), this.assembler.Cache, this.uri);

            elementDefinition.ParameterGroup.Add(parameterGroup);
            this.iteration.Element.Add(elementDefinition);

            var row = new ParameterGroupRowViewModel(parameterGroup, domainOfExpertise, this.session.Object, null);

            var payload = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri);

            elementDefinition.Parameter.Add(payload);
            this.assembler.Cache.TryAdd(new CacheKey(payload.Iid, this.iteration.Iid), new Lazy <Thing>(() => payload));
            var dropInfo = new Mock <IDropInfo>();

            dropInfo.Setup(x => x.Payload).Returns(payload);
            dropInfo.SetupProperty(x => x.Effects);

            row.DragOver(dropInfo.Object);
            await row.Drop(dropInfo.Object);

            this.session.Verify(x => x.Write(It.Is <OperationContainer>(op => ((CDP4Common.DTO.Parameter)op.Operations.Single().ModifiedThing).Group == parameterGroup.Iid)));
        }
コード例 #5
0
        public async Task VerifyThatParameterGetsCreatedWhenParameterTypeIsDropped()
        {
            var domainOfExpertise = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri);
            var elementDefinition = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri);

            elementDefinition.Owner = domainOfExpertise;
            var parameterGroup = new ParameterGroup(Guid.NewGuid(), this.assembler.Cache, this.uri);

            elementDefinition.ParameterGroup.Add(parameterGroup);

            var row = new ParameterGroupRowViewModel(parameterGroup, domainOfExpertise, this.session.Object, null);

            row.ThingCreator = this.thingCreator.Object;

            var simpleQuantityKind = new SimpleQuantityKind(Guid.NewGuid(), this.assembler.Cache, this.uri);
            var ratioScale         = new RatioScale(Guid.NewGuid(), null, null);

            simpleQuantityKind.DefaultScale = ratioScale;

            var payload  = new Tuple <ParameterType, MeasurementScale>(simpleQuantityKind, ratioScale);
            var dropInfo = new Mock <IDropInfo>();

            dropInfo.Setup(x => x.Payload).Returns(payload);
            dropInfo.SetupProperty(x => x.Effects);

            await row.Drop(dropInfo.Object);

            this.thingCreator.Verify(x => x.CreateParameter(elementDefinition, parameterGroup, simpleQuantityKind, ratioScale, domainOfExpertise, this.session.Object));
        }
        public void VerifyThatRowsAreInsertedCorrectly()
        {
            var list     = new ReactiveList <IRowViewModelBase <Thing> >();
            var comparer = new ParameterGroupChildRowComparer();

            var parameter1 = new Parameter(Guid.NewGuid(), null, this.uri)
            {
                ParameterType = this.type, Owner = this.domain, Container = this.elementDef
            };

            parameter1.ValueSet.Add(this.valueSet);

            var subscription = new ParameterSubscription(Guid.NewGuid(), null, this.uri);

            parameter1.ParameterSubscription.Add(subscription);

            var parameterRow1 = new ParameterRowViewModel(parameter1, this.session.Object, null, false);

            var group1 = new ParameterGroup(Guid.NewGuid(), null, this.uri)
            {
                Name = "a"
            };
            var groupRow1 = new ParameterGroupRowViewModel(group1, this.domain, this.session.Object, null);

            var group2 = new ParameterGroup(Guid.NewGuid(), null, this.uri)
            {
                Name = "b"
            };
            var groupRow2 = new ParameterGroupRowViewModel(group2, this.domain, this.session.Object, null);

            var subscriptionRow = new ParameterSubscriptionRowViewModel(subscription, this.session.Object, null, false);

            list.SortedInsert(parameterRow1, comparer);
            list.SortedInsert(groupRow1, comparer);
            list.SortedInsert(groupRow2, comparer);
            list.SortedInsert(subscriptionRow, comparer);

            Assert.AreSame(subscriptionRow, list[0]);
            Assert.AreSame(parameterRow1, list[1]);
            Assert.AreSame(groupRow1, list[2]);
            Assert.AreSame(groupRow2, list[3]);
        }
コード例 #7
0
        public void VerifyThatGroupMayBeDraggedWithPermission()
        {
            var domainOfExpertise = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri);
            var elementDefinition = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri);

            elementDefinition.Owner = domainOfExpertise;
            var parameterGroup = new ParameterGroup(Guid.NewGuid(), this.assembler.Cache, this.uri);

            elementDefinition.ParameterGroup.Add(parameterGroup);
            this.iteration.Element.Add(elementDefinition);

            var row      = new ParameterGroupRowViewModel(parameterGroup, domainOfExpertise, this.session.Object, null);
            var draginfo = new Mock <IDragInfo>();

            draginfo.SetupProperty(x => x.Payload);
            draginfo.SetupProperty(x => x.Effects);

            row.StartDrag(draginfo.Object);

            Assert.AreEqual(DragDropEffects.All, draginfo.Object.Effects);
            Assert.AreSame(parameterGroup, draginfo.Object.Payload);
        }
コード例 #8
0
        public void VerifyThatGroupMayNotBeDraggedWithoutPermission()
        {
            this.permissionService.Setup(x => x.CanWrite(It.IsAny <Thing>())).Returns(false);

            var domainOfExpertise = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri);
            var elementDefinition = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri);

            elementDefinition.Owner = domainOfExpertise;
            var parameterGroup = new ParameterGroup(Guid.NewGuid(), this.assembler.Cache, this.uri);

            elementDefinition.ParameterGroup.Add(parameterGroup);
            this.iteration.Element.Add(elementDefinition);

            var row      = new ParameterGroupRowViewModel(parameterGroup, domainOfExpertise, this.session.Object, null);
            var draginfo = new Mock <IDragInfo>();

            draginfo.SetupProperty(x => x.Payload);
            draginfo.SetupProperty(x => x.Effects);

            row.StartDrag(draginfo.Object);

            Assert.AreEqual(DragDropEffects.None, draginfo.Object.Effects);
        }
コード例 #9
0
        public void VerifyThatRowsAreInsertedCorrectly()
        {
            var list     = new ReactiveList <IRowViewModelBase <Thing> >();
            var comparer = new ElementBaseChildRowComparer();

            var parameter1 = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = this.type, Owner = this.domain, Container = this.elementDef
            };

            parameter1.ValueSet.Add(this.valueSet);

            var parameterRow1 = new ParameterRowViewModel(parameter1, this.session.Object, null, false);

            var typeClone = this.type.Clone(false);

            typeClone.Name = "b";
            var paraClone = parameter1.Clone(false);

            paraClone.ParameterType = typeClone;

            var parameterRow2 = new ParameterRowViewModel(paraClone, this.session.Object, null, false)
            {
                Name = "b"
            };

            var group1 = new ParameterGroup(Guid.NewGuid(), this.cache, this.uri)
            {
                Name = "a"
            };
            var groupRow1 = new ParameterGroupRowViewModel(group1, this.domain, this.session.Object, null);

            var group2 = new ParameterGroup(Guid.NewGuid(), this.cache, this.uri)
            {
                Name = "b"
            };
            var groupRow2 = new ParameterGroupRowViewModel(group2, this.domain, this.session.Object, null);

            var usage1 = this.elementUsage.Clone(false);

            usage1.Name = "def";
            var usageRow1 = new ElementUsageRowViewModel(usage1, this.domain, this.session.Object, null);

            var usage2 = this.elementUsage.Clone(false);

            usage2.Name = "abc";
            var usageRow2 = new ElementUsageRowViewModel(usage2, this.domain, this.session.Object, null);

            var usage3 = this.elementUsage.Clone(false);

            usage3.Name = "ghi";
            var usageRow3 = new ElementUsageRowViewModel(usage3, this.domain, this.session.Object, null);

            list.SortedInsert(usageRow1, comparer);
            list.SortedInsert(usageRow3, comparer);

            list.SortedInsert(parameterRow1, comparer);
            list.SortedInsert(groupRow1, comparer);
            list.SortedInsert(parameterRow2, comparer);
            list.SortedInsert(groupRow2, comparer);

            list.SortedInsert(usageRow2, comparer);

            Assert.AreSame(parameterRow1, list[0]);
            Assert.AreSame(parameterRow2, list[1]);
            Assert.AreSame(groupRow1, list[2]);
            Assert.AreSame(groupRow2, list[3]);
            Assert.AreSame(usageRow2, list[4]);
            Assert.AreSame(usageRow1, list[5]);
            Assert.AreSame(usageRow3, list[6]);
        }