コード例 #1
0
        public async Task VerifyThatCreateBinaryRelationshipWorks()
        {
            var viewmodel = new RelationshipBrowserViewModel(this.iteration, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, null);
            var creator   = viewmodel.RelationshipCreator.BinaryRelationshipCreator;

            var dropinfo = new Mock <IDropInfo>();

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

            creator.SourceViewModel.DragOver(dropinfo.Object);
            dropinfo.VerifySet(x => x.Effects = DragDropEffects.Copy);

            await creator.SourceViewModel.Drop(dropinfo.Object);

            Assert.AreSame(creator.SourceViewModel.RelatedThing, this.elementDefinition1);
            Assert.AreEqual(string.Format("({0}) {1}", this.elementDefinition1.ClassKind, this.elementDefinition1.Name), creator.SourceViewModel.RelatedThingDenomination);

            var dropinfo2 = new Mock <IDropInfo>();

            dropinfo2.Setup(x => x.Payload).Returns(this.elementDefinition2);
            await creator.TargetViewModel.Drop(dropinfo2.Object);

            Assert.IsTrue(viewmodel.RelationshipCreator.CreateRelationshipCommand.CanExecute(null));
            viewmodel.RelationshipCreator.CreateRelationshipCommand.Execute(null);

            creator.ReInitializeControl();
            Assert.IsNull(creator.SourceViewModel.RelatedThing);
            Assert.IsNull(creator.TargetViewModel.RelatedThing);
        }
コード例 #2
0
        public void VerifyThatCreateMultiRelationshipWorks()
        {
            var viewmodel = new RelationshipBrowserViewModel(this.iteration, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, null);

            viewmodel.RelationshipCreator.SelectedRelationshipCreator = viewmodel.RelationshipCreator.MultiRelationshipCreator;
            var creator = viewmodel.RelationshipCreator.MultiRelationshipCreator;

            var dropinfo = new Mock <IDropInfo>();

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

            creator.DragOver(dropinfo.Object);
            dropinfo.VerifySet(x => x.Effects = DragDropEffects.Copy);

            creator.Drop(dropinfo.Object);
            Assert.IsTrue(creator.RelatedThings.Any(x => x.Thing == this.elementDefinition1));

            var dropinfo2 = new Mock <IDropInfo>();

            dropinfo2.Setup(x => x.Payload).Returns(this.elementDefinition2);
            creator.Drop(dropinfo2.Object);

            Assert.AreEqual(2, creator.RelatedThings.Count);
            creator.RelatedThings.First().RemoveRelatedThingCommand.Execute(null);
            Assert.AreEqual(1, creator.RelatedThings.Count);

            Assert.IsTrue(viewmodel.RelationshipCreator.CreateRelationshipCommand.CanExecute(null));
            viewmodel.RelationshipCreator.CreateRelationshipCommand.Execute(null);

            creator.ReInitializeControl();
            Assert.AreEqual(0, creator.RelatedThings.Count);

            creator.Dispose();
        }
コード例 #3
0
        public void VerifyThatRelationsBrowserIsCreated()
        {
            var viewmodel = new RelationshipBrowserViewModel(this.iteration, this.session.Object,
                                                             this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, null);

            Assert.AreEqual(2, viewmodel.RelationshipTypes.Count);

            Assert.That(viewmodel.Caption, Is.Not.Null.Or.Empty);
            Assert.That(viewmodel.ToolTip, Is.Not.Null.Or.Empty);
            Assert.That(viewmodel.DataSource, Is.Not.Null.Or.Empty);
            Assert.That(viewmodel.DomainOfExpertise, Is.Not.Null.Or.Empty);
            Assert.That(viewmodel.CurrentModel, Is.Not.Null.Or.Empty);
        }
コード例 #4
0
        public void VerifyThatMultiRelationshipsAreAddedModifiedRemoved()
        {
            var viewmodel = new RelationshipBrowserViewModel(this.iteration, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, null);

            //Add relationship1 and relationship2 and relationship3
            var relationship = new MultiRelationship(Guid.NewGuid(), this.cache, this.uri)
            {
                Owner = this.domain, ModifiedOn = DateTime.Now
            };

            relationship.RelatedThing.Add(this.elementDefinition1);
            relationship.RelatedThing.Add(this.elementDefinition2);
            relationship.RelatedThing.Add(this.elementDefinition3);
            this.iteration.Relationship.Add(relationship);

            var revision = typeof(Iteration).GetProperty("RevisionNumber");

            revision.SetValue(this.iteration, 1);
            CDPMessageBus.Current.SendObjectChangeEvent(this.iteration, EventKind.Updated);

            Assert.AreEqual(1, viewmodel.RelationshipTypes[1].ContainedRows.Count);

            //Modify element definition name
            this.elementDefinition3.Name = "EG";

            var revisionE = typeof(ElementDefinition).GetProperty("RevisionNumber");

            revisionE.SetValue(this.elementDefinition3, 1);
            CDPMessageBus.Current.SendObjectChangeEvent(this.elementDefinition3, EventKind.Updated);

            Assert.IsTrue(((MultiRelationshipRowViewModel)viewmodel.RelationshipTypes[1].ContainedRows[0]).Name.Contains("EG"));

            //Modify relationship content

            relationship.RelatedThing.Add(this.elementDefinition4);
            var revisionR = typeof(Relationship).GetProperty("RevisionNumber");

            revisionR.SetValue(relationship, 1);
            CDPMessageBus.Current.SendObjectChangeEvent(relationship, EventKind.Updated);

            Assert.IsTrue(((MultiRelationshipRowViewModel)viewmodel.RelationshipTypes[1].ContainedRows[0]).Name.Contains("E4"));

            //Remove relationships

            this.iteration.Relationship.Clear();
            revision.SetValue(this.iteration, 2);
            CDPMessageBus.Current.SendObjectChangeEvent(this.iteration, EventKind.Updated);

            Assert.AreEqual(0, viewmodel.RelationshipTypes[1].ContainedRows.Count);
        }
コード例 #5
0
        public void VerifyThatBinaryRelationshipsAreAddedModifiedRemoved()
        {
            var viewmodel = new RelationshipBrowserViewModel(this.iteration, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, null);

            //Add relationship1 and relationship2
            var relationship = new BinaryRelationship(Guid.NewGuid(), this.cache, this.uri)
            {
                Source = this.elementDefinition1, Target = this.elementDefinition2, Owner = this.domain
            };

            this.iteration.Relationship.Add(relationship);

            var revision = typeof(Iteration).GetProperty("RevisionNumber");

            revision.SetValue(this.iteration, 1);
            CDPMessageBus.Current.SendObjectChangeEvent(this.iteration, EventKind.Updated);

            Assert.AreEqual(1, viewmodel.RelationshipTypes[0].ContainedRows.Count);

            //Modify element name
            this.elementDefinition1.Name = "EX";

            var revisionE = typeof(ElementDefinition).GetProperty("RevisionNumber");

            revisionE.SetValue(this.elementDefinition1, 1);
            CDPMessageBus.Current.SendObjectChangeEvent(this.elementDefinition1, EventKind.Updated);

            Assert.IsTrue(((BinaryRelationshipRowViewModel)viewmodel.RelationshipTypes[0].ContainedRows[0]).Name.Contains("EX"));

            //Modify relationship

            relationship.Source = this.elementDefinition3;

            var revisionR = typeof(Relationship).GetProperty("RevisionNumber");

            revisionR.SetValue(relationship, 1);
            CDPMessageBus.Current.SendObjectChangeEvent(relationship, EventKind.Updated);

            Assert.IsTrue(((BinaryRelationshipRowViewModel)viewmodel.RelationshipTypes[0].ContainedRows[0]).Name.Contains("E3"));

            //Remove relationships

            this.iteration.Relationship.Clear();
            revision.SetValue(this.iteration, 2);
            CDPMessageBus.Current.SendObjectChangeEvent(this.iteration, EventKind.Updated);

            Assert.AreEqual(0, viewmodel.RelationshipTypes[0].ContainedRows.Count);
        }