/// <summary>
        /// Show or close the <see cref="RequirementsBrowserViewModel"/>
        /// </summary>
        /// <param name="iterationId">
        /// the unique id of the <see cref="Iteration"/> that is being represented by the <see cref="RequirementsBrowserViewModel"/>
        /// </param>
        private void ShowOrCloseRequirements(string iterationId)
        {
            var iterationUniqueId = Guid.Parse(iterationId);

            var iteration = this.Iterations.SingleOrDefault(x => x.Iid == iterationUniqueId);

            if (iteration == null)
            {
                return;
            }

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

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

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

            this.openRequirementBrowser.Add(browser);
            this.PanelNavigationService.OpenInAddIn(browser);
        }
Exemple #2
0
        public void VerifyThatRequirementVerificationWorks()
        {
            var vm         = new RequirementsBrowserViewModel(this.iteration, this.session.Object, this.dialogNavigation.Object, this.panelNavigation.Object, null, null);
            var reqSpecRow = vm.ReqSpecificationRows.Single();

            Assert.IsTrue(vm.CanVerifyRequirements);
            vm.ExecuteVerifyRequirements(this.iteration.DefaultOption);
            Assert.AreEqual(RequirementStateOfCompliance.Inconclusive, reqSpecRow.RequirementStateOfCompliance);
        }
Exemple #3
0
        public void VerifyThatPropertiesAreSet()
        {
            var vm = new RequirementsBrowserViewModel(this.iteration, this.session.Object, null, null, null, null);

            Assert.AreEqual(1, vm.ReqSpecificationRows.Count);
            Assert.AreEqual(this.participant, vm.ActiveParticipant);
            Assert.AreEqual("Requirements, iteration_0", vm.Caption);
            Assert.AreEqual("model", vm.CurrentModel);
            Assert.AreEqual("test [test]", vm.DomainOfExpertise);
            Assert.AreEqual("model\nhttp://www.rheagroup.com/\n ", vm.ToolTip);
        }
Exemple #4
0
        public void VerifyThatDeprecatedRequirementSpecificationsAreNotVerified()
        {
            var vm         = new RequirementsBrowserViewModel(this.iteration, this.session.Object, this.dialogNavigation.Object, this.panelNavigation.Object, null, null);
            var reqSpecRow = vm.ReqSpecificationRows.Single();

            Assert.IsTrue(vm.CanVerifyRequirements);
            reqSpecRow.RequirementStateOfCompliance = RequirementStateOfCompliance.Unknown;
            reqSpecRow.Thing.IsDeprecated           = true;

            vm.ExecuteVerifyRequirements(this.iteration.DefaultOption);
            Assert.AreEqual(RequirementStateOfCompliance.Unknown, reqSpecRow.RequirementStateOfCompliance);
        }
        public override void Setup()
        {
            base.Setup();

            this.categories = new List <Category>()
            {
                new Category {
                    Name = "category1"
                }, new Category {
                    Name = "category2"
                }
            };
            this.spec1.Category = this.categories;

            RxApp.MainThreadScheduler        = Scheduler.CurrentThread;
            this.requirementBrowserViewModel = new RequirementsBrowserViewModel(this.iteration, this.session.Object, null, null, null, this.pluginService.Object);
        }
Exemple #6
0
        public void VerifyThatActiveDomainIsDisplayed()
        {
            this.session.Setup(x => x.OpenIterations).Returns(new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> >
            {
                { this.iteration, new Tuple <DomainOfExpertise, Participant>(this.domain, null) }
            });

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

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

            DomainOfExpertise domainOfExpertise = null;

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

            vm = new RequirementsBrowserViewModel(this.iteration, this.session.Object, null, null, null, null);
            Assert.AreEqual("None", vm.DomainOfExpertise);
        }
Exemple #7
0
        public void VerifyThatRequirementSpecificationMayBeAddedOrRemoved()
        {
            var revision = typeof(Thing).GetProperty("RevisionNumber");
            var vm       = new RequirementsBrowserViewModel(this.iteration, this.session.Object, this.dialogNavigation.Object, this.panelNavigation.Object, null, null);

            Assert.AreEqual(1, vm.ReqSpecificationRows.Count);

            var reqspec2 = new RequirementsSpecification(Guid.NewGuid(), this.cache, this.uri);

            this.iteration.RequirementsSpecification.Add(reqspec2);
            revision.SetValue(this.iteration, 2);

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

            this.iteration.RequirementsSpecification.Remove(reqspec2);
            revision.SetValue(this.iteration, 3);

            CDPMessageBus.Current.SendObjectChangeEvent(this.iteration, EventKind.Updated);
            Assert.AreEqual(1, vm.ReqSpecificationRows.Count);
        }
Exemple #8
0
        public void VerifyThatCreateRequirementWorks()
        {
            this.session.Setup(x => x.OpenIterations).Returns(new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> >
            {
                { this.iteration, new Tuple <DomainOfExpertise, Participant>(this.domain, null) }
            });

            var vm         = new RequirementsBrowserViewModel(this.iteration, this.session.Object, this.dialogNavigation.Object, this.panelNavigation.Object, null, null);
            var reqSpecRow = vm.ReqSpecificationRows.Single();

            vm.SelectedThing = reqSpecRow;
            Assert.IsTrue(vm.CanCreateRequirement);
            vm.CreateRequirementCommand.Execute(null);

            this.dialogNavigation.Verify(x => x.Navigate(It.IsAny <Requirement>(), It.IsAny <IThingTransaction>(), this.session.Object, true, ThingDialogKind.Create, this.dialogNavigation.Object, It.IsAny <RequirementsSpecification>(), null));

            vm.SelectedThing = (RequirementsGroupRowViewModel)reqSpecRow.ContainedRows.Single(x => x.Thing is RequirementsGroup);
            Assert.IsTrue(vm.CanCreateRequirement);
            vm.CreateRequirementCommand.Execute(null);

            this.dialogNavigation.Verify(x => x.Navigate(It.Is <Requirement>(r => r.Group != null), It.IsAny <IThingTransaction>(), this.session.Object, true, ThingDialogKind.Create, this.dialogNavigation.Object, It.IsAny <RequirementsSpecification>(), null));
        }
Exemple #9
0
 public override void Setup()
 {
     base.Setup();
     RxApp.MainThreadScheduler        = Scheduler.CurrentThread;
     this.requirementBrowserViewModel = new RequirementsBrowserViewModel(this.iteration, this.session.Object, null, null, null, this.pluginService.Object);
 }
Exemple #10
0
        public void Setup()
        {
            this.assembler = new Assembler(this.uri);

            RxApp.MainThreadScheduler = Scheduler.CurrentThread;
            this.session           = new Mock <ISession>();
            this.permissionService = new Mock <IPermissionService>();
            this.permissionService.Setup(x => x.CanRead(It.IsAny <Thing>())).Returns(true);
            this.permissionService.Setup(x => x.CanWrite(It.IsAny <Thing>())).Returns(true);
            this.session.Setup(x => x.PermissionService).Returns(this.permissionService.Object);
            this.session.Setup(x => x.DataSourceUri).Returns(this.uri.ToString);
            var person = new Person(Guid.NewGuid(), this.assembler.Cache, this.uri);

            this.domain = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "test"
            };
            var participant = new Participant(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Person = person, Domain = new List <DomainOfExpertise> {
                    this.domain
                }
            };

            this.session.Setup(x => x.ActivePerson).Returns(person);

            this.model      = new EngineeringModel(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.modelSetup = new EngineeringModelSetup(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "model"
            };
            this.modelSetup.Participant.Add(participant);
            this.iteration      = new Iteration(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.iterationSetup = new IterationSetup(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.modelSetup.IterationSetup.Add(this.iterationSetup);
            this.reqSpec = new RequirementsSpecification(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "rs1", ShortName = "1"
            };
            var tuple = new Tuple <DomainOfExpertise, Participant>(domain, participant);

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

            this.reqSpec.Owner = this.domain;

            this.iteration.RequirementsSpecification.Add(this.reqSpec);
            this.iteration.IterationSetup    = this.iterationSetup;
            this.model.EngineeringModelSetup = this.modelSetup;
            this.model.Iteration.Add(this.iteration);

            this.grp1  = new RequirementsGroup(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.grp11 = new RequirementsGroup(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.grp2  = new RequirementsGroup(Guid.NewGuid(), this.assembler.Cache, this.uri);

            this.reqSpec.Group.Add(this.grp1);
            this.reqSpec.Group.Add(this.grp2);
            this.grp1.Group.Add(this.grp11);

            this.req = new Requirement(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.reqSpec.Requirement.Add(this.req);

            this.requirementBrowserViewModel = new RequirementsBrowserViewModel(this.iteration, this.session.Object, null, null, null, null);
        }