/// <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); }
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)); }
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); }
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); }
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); }
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); }
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); }