コード例 #1
0
        /// <summary>
        /// Show or close the <see cref="PublicationBrowserViewModel"/>
        /// </summary>
        /// <param name="iterationId">
        /// the unique id of the <see cref="Iteration"/> that is being represented by the <see cref="PublicationBrowserViewModel"/>
        /// </param>
        private void ShowOrClosePublicationBrowser(string iterationId)
        {
            var uniqueId  = Guid.Parse(iterationId);
            var iteration = this.Iterations.SingleOrDefault(x => x.Iid == uniqueId);

            if (iteration == null)
            {
                return;
            }

            // close the brower if it exists
            var browser = this.openPublicationBrowsers.SingleOrDefault(x => x.Thing == iteration);

            if (browser != null)
            {
                this.PanelNavigationService.CloseInAddIn(browser);
                this.openPublicationBrowsers.Remove(browser);
                return;
            }

            var model = (EngineeringModel)iteration.Container;

            if (model == null)
            {
                throw new InvalidOperationException("The Container of an Iteration is not a EngineeringModel.");
            }

            browser = new PublicationBrowserViewModel(iteration, this.Session, this.ThingDialogNavigationService, this.PanelNavigationService, this.DialogNavigationService, this.PluginSettingsService);

            this.openPublicationBrowsers.Add(browser);
            this.PanelNavigationService.OpenInAddIn(browser);
        }
コード例 #2
0
        public async Task VerifyThatCanPublish()
        {
            var viewmodel = new PublicationBrowserViewModel(this.iteration, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, null);

            this.parameter1.ValueSet.First().Published = new ValueArray <string>(new List <string>()
            {
                "-"
            },
                                                                                 this.parameter1.ValueSet.First());
            this.parameter1.ValueSet.First().ValueSwitch = ParameterSwitchKind.MANUAL;

            // verify that same row is updated
            this.parameter1.ValueSet.First().Manual = new ValueArray <string>(new List <string>()
            {
                "213"
            },
                                                                              this.parameter1.ValueSet.First());

            CDPMessageBus.Current.SendObjectChangeEvent(this.parameter1.ValueSet[0], EventKind.Updated);
            Assert.AreEqual(1, viewmodel.Domains[0].ContainedRows.Count);

            viewmodel.Domains[0].ToBePublished = true;
            ((PublicationParameterOrOverrideRowViewModel)viewmodel.Domains[0].ContainedRows[0]).ToBePublished = true;

            Assert.IsTrue(viewmodel.Domains.Any(x => x.ToBePublished));

            Assert.DoesNotThrowAsync(async() => viewmodel.ExecutePublishCommand());

            Assert.IsFalse(viewmodel.Domains.Any(x => x.ToBePublished));
        }
コード例 #3
0
        public void VerifyThatActiveDomainIsDisplayed()
        {
            var domain = new DomainOfExpertise(Guid.NewGuid(), null, this.uri)
            {
                Name = "domain"
            };

            this.session.Setup(x => x.OpenIterations).Returns(new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> >
            {
                { this.iteration, new Tuple <DomainOfExpertise, Participant>(domain, null) }
            });

            var vm = new PublicationBrowserViewModel(this.iteration, this.session.Object, null, null, null, null);

            Assert.AreEqual("domain []", vm.DomainOfExpertise);

            this.session.Setup(x => x.OpenIterations).Returns(new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> >
            {
                { this.iteration, null }
            });

            vm = new PublicationBrowserViewModel(this.iteration, this.session.Object, null, null, null, null);
            Assert.AreEqual("None", vm.DomainOfExpertise);

            this.session.Setup(x => x.OpenIterations).Returns(new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> >());
            vm = new PublicationBrowserViewModel(this.iteration, this.session.Object, null, null, null, null);
            Assert.AreEqual("None", vm.DomainOfExpertise);
        }
コード例 #4
0
        public void VerifyThatRowsAreCreated()
        {
            var viewmodel = new PublicationBrowserViewModel(this.iteration, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, null);

            Assert.AreEqual(1, viewmodel.Publications.Count);
            Assert.AreEqual(4, viewmodel.Publications[0].ContainedRows.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);

            var publicationRowViewModel = viewmodel.Publications.Single();

            Assert.That(publicationRowViewModel.OwnerShortName, Is.Not.Null.Or.Empty);
            Assert.That(publicationRowViewModel.Name, Is.Not.Null.Or.Empty);
        }
        public void VerifySelectAllTrue()
        {
            var viewmodel = new PublicationBrowserViewModel(this.iteration, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, null);

            var domain2 = new DomainOfExpertise(Guid.NewGuid(), this.cache, this.uri)
            {
                Name = "domain2", ShortName = "DM2"
            };

            this.sitedir.Domain.Add(domain2);
            this.publication.Domain.Add(domain2);
            this.modelsetup.ActiveDomain.Add(domain2);

            viewmodel.SelectAllCommand.Execute(true);

            Assert.That(viewmodel.SelectAll, Is.True);
            Assert.That(viewmodel.Domains, Is.All.Matches <PublicationDomainOfExpertiseRowViewModel>(d => d.ToBePublished));
        }
        public void VerifyThatActiveDomainIsDisplayed()
        {
            var testDomain = new DomainOfExpertise(Guid.NewGuid(), null, this.uri)
            {
                Name = "domain"
            };

            this.session.Setup(x => x.QuerySelectedDomainOfExpertise(this.iteration)).Returns(testDomain);

            var vm = new PublicationBrowserViewModel(this.iteration, this.session.Object, null, null, null, null);

            Assert.AreEqual("domain []", vm.DomainOfExpertise);

            testDomain = null;
            this.session.Setup(x => x.QuerySelectedDomainOfExpertise(this.iteration)).Returns(testDomain);

            vm = new PublicationBrowserViewModel(this.iteration, this.session.Object, null, null, null, null);
            Assert.AreEqual("None", vm.DomainOfExpertise);
        }
コード例 #7
0
        public void VerifyThatDomainsAreAdded()
        {
            var viewmodel = new PublicationBrowserViewModel(this.iteration, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, null);

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

            var domain2 = new DomainOfExpertise(Guid.NewGuid(), this.cache, this.uri)
            {
                Name = "domain2", ShortName = "DM2"
            };

            this.sitedir.Domain.Add(domain2);
            this.publication.Domain.Add(domain2);

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

            this.modelsetup.ActiveDomain.Add(domain2);
            CDPMessageBus.Current.SendObjectChangeEvent(this.modelsetup, EventKind.Updated);
            Assert.AreEqual(3, viewmodel.Domains.Count);
        }
コード例 #8
0
        public void VerifyThatPublicationRowsAreUpdated()
        {
            var viewmodel = new PublicationBrowserViewModel(this.iteration, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, null);

            var newpublication = new Publication(Guid.NewGuid(), null, this.uri);

            this.iteration.Publication.Add(newpublication);

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

            revision.SetValue(this.iteration, 2);

            CDPMessageBus.Current.SendObjectChangeEvent(this.iteration, EventKind.Updated);
            Assert.AreEqual(2, viewmodel.Publications.Count);

            this.iteration.Publication.Clear();
            revision.SetValue(this.iteration, 3);

            CDPMessageBus.Current.SendObjectChangeEvent(this.iteration, EventKind.Updated);
            Assert.AreEqual(0, viewmodel.Publications.Count);
        }
        public void VerifyPartialSelection()
        {
            var viewmodel = new PublicationBrowserViewModel(this.iteration, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, null);

            var domain2 = new DomainOfExpertise(Guid.NewGuid(), this.cache, this.uri)
            {
                Name = "domain2", ShortName = "DM2"
            };

            this.sitedir.Domain.Add(domain2);
            this.publication.Domain.Add(domain2);
            this.modelsetup.ActiveDomain.Add(domain2);

            viewmodel.SelectAllCommand.Execute(true);

            viewmodel.Domains.First().ToBePublished = false;
            viewmodel.PublicationRowCheckedCommand.Execute(null);

            Assert.That(viewmodel.SelectAll, Is.Null);
            Assert.That(viewmodel.Domains[0].ToBePublished, Is.False);
            Assert.That(viewmodel.Domains[1].ToBePublished, Is.True);
        }
コード例 #10
0
        public void VerifyThatParameterRowsAreAddedAndRemoved()
        {
            var viewmodel = new PublicationBrowserViewModel(this.iteration, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, null, null);

            this.parameter3.ValueSet.First().Published = new ValueArray <string>(new List <string>()
            {
                "-"
            },
                                                                                 this.parameter3.ValueSet.First());
            this.parameter3.ValueSet.First().ValueSwitch = ParameterSwitchKind.REFERENCE;
            this.parameter3.ValueSet.First().Reference   = new ValueArray <string>(new List <string>()
            {
                "20"
            },
                                                                                   this.parameter3.ValueSet.First());

            CDPMessageBus.Current.SendObjectChangeEvent(this.parameter3, EventKind.Added);

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

            this.parameter1.ValueSet.First().Published = new ValueArray <string>(new List <string>()
            {
                "-"
            },
                                                                                 this.parameter1.ValueSet.First());
            this.parameter1.ValueSet.First().ValueSwitch = ParameterSwitchKind.MANUAL;
            this.parameter1.ValueSet.First().Manual      = new ValueArray <string>(new List <string>()
            {
                "-"
            },
                                                                                   this.parameter1.ValueSet.First());

            CDPMessageBus.Current.SendObjectChangeEvent(this.parameter1.ValueSet[0], EventKind.Updated);

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

            this.parameter1.ValueSet.First().Manual = new ValueArray <string>(new List <string> {
                "134"
            });

            CDPMessageBus.Current.SendObjectChangeEvent(this.parameter1.ValueSet.First(), EventKind.Updated);
            Assert.AreEqual(2, viewmodel.Domains[0].ContainedRows.Count);

            // verify that same row is updated
            this.parameter1.ValueSet.First().Manual = new ValueArray <string>(new List <string>()
            {
                "213"
            });

            CDPMessageBus.Current.SendObjectChangeEvent(this.parameter1.ValueSet[0], EventKind.Updated);
            Assert.AreEqual(2, viewmodel.Domains[0].ContainedRows.Count);

            // verify that ownership of the parameter is changed
            this.parameter1.Owner = otherDomain;
            CDPMessageBus.Current.SendObjectChangeEvent(this.parameter1, EventKind.Updated);
            Assert.AreEqual(1, viewmodel.Domains[0].ContainedRows.Count);
            Assert.AreEqual(1, viewmodel.Domains[1].ContainedRows.Count);

            // verify that value is removed
            this.parameter1.ValueSet.First().Manual = new ValueArray <string>(new List <string> {
                "-"
            });

            CDPMessageBus.Current.SendObjectChangeEvent(this.parameter1.ValueSet[0], EventKind.Updated);
            Assert.AreEqual(0, viewmodel.Domains[1].ContainedRows.Count);

            // verify that parameter is removed
            this.parameter1.ValueSet.First().Manual = new ValueArray <string>(new List <string> {
                "268"
            });
            CDPMessageBus.Current.SendObjectChangeEvent(this.parameter1.ValueSet[0], EventKind.Updated);
            Assert.AreEqual(1, viewmodel.Domains[1].ContainedRows.Count);

            CDPMessageBus.Current.SendObjectChangeEvent(this.parameter1, EventKind.Removed);
            Assert.AreEqual(0, viewmodel.Domains[1].ContainedRows.Count);
        }