示例#1
0
        public async Task VerifyThatRelationShipsGetDrawnOnDrop()
        {
            this.diagram.DiagramElement.Clear();
            this.diagram.DiagramElement.Add(this.diagramObject1);
            var relationship = new BinaryRelationship(Guid.NewGuid(), this.cache, this.uri);

            relationship.Category.Add(this.relationshipCat);
            relationship.Source = this.diagramObject1.DepictedThing;
            relationship.Target = this.diagramObject2.DepictedThing;
            this.iteration.Relationship.Add(relationship);

            var viewModel = new DiagramEditorViewModel(this.diagram, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, this.pluginSettingsService.Object)
            {
                Behavior = this.mockDiagramBehavior.Object
            };

            viewModel.UpdateProperties();
            viewModel.ComputeDiagramConnector();
            Assert.IsEmpty(viewModel.DiagramConnectorCollection);
            var drop = new Mock <IDiagramDropInfo>();

            drop.Setup(x => x.Payload).Returns(this.diagramObject2.DepictedThing);
            drop.Setup(x => x.DiagramDropPoint).Returns(new Point(1, 1));
            await viewModel.Drop(drop.Object);

            Assert.IsNotEmpty(viewModel.DiagramConnectorCollection);
            viewModel.Dispose();
        }
示例#2
0
        public async Task VerifyThatSaveCommandWorks()
        {
            this.diagram.DiagramElement.Clear();
            var viewModel = new DiagramEditorViewModel(this.diagram, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, this.pluginSettingsService.Object)
            {
                Behavior = this.mockDiagramBehavior.Object
            };

            var drop1 = new Mock <IDiagramDropInfo>();

            drop1.Setup(x => x.Payload).Returns(this.diagramObject1.DepictedThing);
            drop1.Setup(x => x.DiagramDropPoint).Returns(new Point(1, 1));

            var drop2 = new Mock <IDiagramDropInfo>();

            drop2.Setup(x => x.Payload).Returns(this.diagramObject2.DepictedThing);
            drop2.Setup(x => x.DiagramDropPoint).Returns(new Point(10, 10));

            await viewModel.Drop(drop1.Object);

            await viewModel.Drop(drop2.Object);

            viewModel.SaveDiagramCommand.Execute(null);
            this.cache.TryAdd(new CacheKey(this.diagram.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.diagram));
            this.session.Verify(x => x.Write(It.Is <OperationContainer>(op => op.Operations.Count() == 5)));
            viewModel.Dispose();
        }
示例#3
0
        public void VerifyThatItemAreRemoved()
        {
            var viewModel = new DiagramEditorViewModel(this.diagram, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, this.pluginSettingsService.Object)
            {
                Behavior = this.mockDiagramBehavior.Object
            };

            viewModel.UpdateProperties();
            var itemNumber = viewModel.ThingDiagramItems.Count;

            viewModel.RemoveDiagramThingItem(viewModel.ThingDiagramItems.FirstOrDefault());
            Assert.IsTrue(itemNumber == viewModel.ThingDiagramItems.Count + 1);
            viewModel.Dispose();
        }
示例#4
0
        public async Task VerifyDragOver()
        {
            var viewModel = new DiagramEditorViewModel(this.diagram, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, this.pluginSettingsService.Object)
            {
                Behavior = this.mockDiagramBehavior.Object
            };

            this.dropinfo.Setup(x => x.Payload).Returns(this.domain);
            viewModel.DragOver(this.dropinfo.Object);
            this.dropinfo.VerifySet(x => x.Effects = It.IsAny <DragDropEffects>(), Times.Once);
            await viewModel.Drop(this.dropinfo.Object);

            Assert.IsNotEmpty(viewModel.ThingDiagramItems);
            viewModel.Dispose();
        }
示例#5
0
        public async Task VerifyThatIsDirtyIsTrueOnThingDropped()
        {
            var viewModel = new DiagramEditorViewModel(this.diagram, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, this.pluginSettingsService.Object)
            {
                Behavior = this.mockDiagramBehavior.Object
            };

            Assert.IsFalse(viewModel.IsDirty);
            var drop = new Mock <IDiagramDropInfo>();

            drop.Setup(x => x.Payload).Returns(this.elementDefinition);
            drop.Setup(x => x.DiagramDropPoint).Returns(new Point(1, 1));
            await viewModel.Drop(drop.Object);

            Assert.IsTrue(viewModel.IsDirty);
            viewModel.Dispose();
        }
示例#6
0
        public void VerifyThatPropertiesAreSet()
        {
            var viewModel = new DiagramEditorViewModel(this.diagram, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, this.pluginSettingsService.Object)
            {
                Behavior = this.mockDiagramBehavior.Object
            };

            viewModel.UpdateProperties();
            viewModel.ComputeDiagramConnector();

            Assert.That(viewModel.Caption, Is.Not.Null.Or.Empty);
            Assert.AreEqual(this.diagram.Name, viewModel.Caption);
            Assert.That(viewModel.ToolTip, Is.Not.Null.Or.Empty);
            Assert.IsNotEmpty(viewModel.ThingDiagramItems);
            Assert.IsNotEmpty(viewModel.DiagramConnectorCollection);
            Assert.IsFalse(viewModel.CanCreateDiagram);
            viewModel.Dispose();
        }
示例#7
0
        public async Task VerifyThatDropWorks()
        {
            this.diagram.DiagramElement.Clear();
            var viewModel = new DiagramEditorViewModel(this.diagram, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, this.pluginSettingsService.Object)
            {
                Behavior = this.mockDiagramBehavior.Object
            };

            viewModel.UpdateProperties();
            Assert.IsEmpty(viewModel.ThingDiagramItems);
            var drop = new Mock <IDiagramDropInfo>();

            drop.Setup(x => x.Payload).Returns(this.elementDefinition);
            drop.Setup(x => x.DiagramDropPoint).Returns(new Point(1, 1));
            await viewModel.Drop(drop.Object);

            Assert.IsNotEmpty(viewModel.ThingDiagramItems);
            viewModel.Dispose();
        }
示例#8
0
        public void VerifyThatRelationShipsGetDrawnOnLoad()
        {
            var relationship = new BinaryRelationship(Guid.NewGuid(), this.cache, this.uri);

            relationship.Category.Add(this.relationshipCat);
            relationship.Source = this.diagramObject1.DepictedThing;
            relationship.Target = this.diagramObject2.DepictedThing;

            this.iteration.Relationship.Add(relationship);

            var viewModel = new DiagramEditorViewModel(this.diagram, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, this.pluginSettingsService.Object)
            {
                Behavior = this.mockDiagramBehavior.Object
            };

            viewModel.UpdateProperties();
            viewModel.ComputeDiagramConnector();
            Assert.IsNotEmpty(viewModel.DiagramConnectorCollection);
            viewModel.Dispose();
        }
示例#9
0
        public void VerifyThatIsDirtyIsTrueOnThingDeleted()
        {
            var viewModel = new DiagramEditorViewModel(this.diagram, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, this.pluginSettingsService.Object)
            {
                Behavior = this.mockDiagramBehavior.Object
            };

            viewModel.UpdateProperties();
            viewModel.SaveDiagramCommand.Execute(null);
            Assert.IsFalse(viewModel.IsDirty);

            var thingNumber = viewModel.ThingDiagramItems.Count;

            Assert.IsTrue(viewModel.ThingDiagramItems.Any());

            viewModel.RemoveDiagramThingItem(viewModel.ThingDiagramItems.FirstOrDefault());
            Assert.Greater(thingNumber, viewModel.ThingDiagramItems.Count);
            Assert.IsTrue(viewModel.IsDirty);
            viewModel.Dispose();
        }
示例#10
0
        public void VerifyThatGenerateRelationDeepWorks()
        {
            this.diagram.DiagramElement.Clear();
            this.diagram.DiagramElement.Add(this.diagramObject1);

            var relationship0 = new BinaryRelationship(Guid.NewGuid(), this.cache, this.uri);

            relationship0.Category.Add(this.relationshipCat);
            relationship0.Source = this.diagramObject1.DepictedThing;
            relationship0.Target = this.diagramObject2.DepictedThing;
            this.iteration.Relationship.Add(relationship0);

            var relationship1 = new BinaryRelationship(Guid.NewGuid(), this.cache, this.uri);

            relationship1.Category.Add(this.relationshipCat);
            relationship1.Source = this.diagramObject2.DepictedThing;
            relationship1.Target = this.diagramObject3.DepictedThing;
            this.iteration.Relationship.Add(relationship1);

            var viewModel = new DiagramEditorViewModel(this.diagram, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, this.pluginSettingsService.Object)
            {
                Behavior = this.mockDiagramBehavior.Object
            };

            viewModel.UpdateProperties();
            Assert.AreEqual(1, viewModel.ThingDiagramItems.Count);

            var contentItem = new DiagramContentItem()
            {
                Content = viewModel.ThingDiagramItems.FirstOrDefault()
            };

            viewModel.SelectedItems.Clear();
            viewModel.SelectedItems.Add(contentItem);

            viewModel.ExecuteGenerateDiagramCommand(true);
            Assert.AreEqual(3, viewModel.ThingDiagramItems.Count);
            Assert.AreEqual(3, viewModel.DiagramConnectorCollection.Count);
            viewModel.Dispose();
        }