public void Verify_that_ExecuteBatchDeleteSubscriptionCommand_works_as_expected() { this.messageBoxService.Setup(m => m.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButton>(), It.IsAny <MessageBoxImage>())).Returns(MessageBoxResult.OK); var dialogResult = new CDP4EngineeringModel.ViewModels.Dialogs.CategoryDomainParameterTypeSelectorResult(true, false, Enumerable.Empty <ParameterType>(), Enumerable.Empty <Category>(), Enumerable.Empty <DomainOfExpertise>()); this.dialogNavigationService.Setup(x => x.NavigateModal(It.IsAny <IDialogViewModel>())).Returns(dialogResult); var parameter = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri) { Container = this.elementDef, ParameterType = this.pt, }; parameter.ParameterSubscription.Add(new ParameterSubscription(Guid.NewGuid(), this.assembler.Cache, this.uri) { Owner = this.domain }); this.elementDef.Parameter.Add(parameter); this.iteration.Element.Add(this.elementDef); var vm = new ElementDefinitionsBrowserViewModel(this.iteration, this.session.Object, null, null, this.dialogNavigationService.Object, null, this.parameterSubscriptionBatchService.Object, null); vm.PopulateContextMenu(); Assert.AreEqual(2, vm.ContextMenu.Count); vm.BatchDeleteSubscriptionCommand.Execute(null); this.dialogNavigationService.Verify(x => x.NavigateModal(It.IsAny <IDialogViewModel>()), Times.Exactly(1)); this.parameterSubscriptionBatchService.Verify(x => x.Delete(this.session.Object, this.iteration, false, It.IsAny <IEnumerable <Category> >(), It.IsAny <IEnumerable <DomainOfExpertise> >(), It.IsAny <IEnumerable <ParameterType> >(), It.IsAny <Func <IEnumerable <Parameter>, bool> >()), Times.Exactly(1)); }
public void VerifyThatRefocusWorks() { var group = new ParameterGroup(Guid.NewGuid(), this.assembler.Cache, this.uri); var parameter = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri) { ParameterType = this.pt }; var def2 = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri); var parameter2 = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri); var usage = new ElementUsage(Guid.NewGuid(), this.assembler.Cache, this.uri); var paramOverride = new ParameterOverride(Guid.NewGuid(), this.assembler.Cache, this.uri) { Parameter = parameter2 }; parameter2.ParameterType = this.pt; var usage2 = new ElementUsage(Guid.NewGuid(), this.assembler.Cache, this.uri) { ElementDefinition = def2 }; def2.Parameter.Add(parameter2); usage.ParameterOverride.Add(paramOverride); usage.ElementDefinition = def2; this.elementDef.Parameter.Add(parameter); this.elementDef.ParameterGroup.Add(group); this.elementDef.ContainedElement.Add(usage); this.elementDef.ContainedElement.Add(usage2); this.iteration.Element.Add(this.elementDef); this.iteration.Element.Add(def2); var vm = new ElementDefinitionsBrowserViewModel(this.iteration, this.session.Object, null, null, null, null, null, null); vm.PopulateContextMenu(); Assert.AreEqual(2, vm.ContextMenu.Count); var defRow = vm.ElementDefinitionRowViewModels.Last(); var usageRow = defRow.ContainedRows[2]; vm.SelectedThing = usageRow; vm.ChangeFocusCommand.Execute(null); var def2Row = vm.ElementDefinitionRowViewModels.Single(x => x.Thing == def2); Assert.IsTrue(vm.SelectedThing == def2Row); Assert.IsTrue(vm.FocusedRow == def2Row); }
public void VerifyThatSubscriptionCommandWorks() { this.permissionService.Setup(x => x.CanWrite(It.IsAny <ClassKind>(), It.IsAny <Thing>())).Returns(true); this.session .Setup(x => x.OpenIterations) .Returns(new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> > { { this.iteration, new Tuple <DomainOfExpertise, Participant>(new DomainOfExpertise(), null) } }); var parameter = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri) { ParameterType = this.pt }; this.elementDef.Parameter.Add(parameter); this.iteration.Element.Add(this.elementDef); var vm = new ElementDefinitionsBrowserViewModel(this.iteration, this.session.Object, null, null, null, null, null, null); Assert.IsFalse(vm.CreateSubscriptionCommand.CanExecute(null)); var defRow = vm.ElementDefinitionRowViewModels.First(); vm.SelectedThing = defRow.ContainedRows.First(); vm.ComputePermission(); vm.PopulateContextMenu(); Assert.IsTrue(vm.CreateSubscriptionCommand.CanExecute(null)); vm.CreateSubscriptionCommand.Execute(null); this.session.Verify(x => x.Write(It.IsAny <OperationContainer>())); vm.SelectedThing = null; vm.CreateSubscriptionCommand.Execute(null); this.session.Verify(x => x.Write(It.IsAny <OperationContainer>()), Times.Once); vm.SelectedThing = defRow; vm.CreateSubscriptionCommand.Execute(null); this.session.Verify(x => x.Write(It.IsAny <OperationContainer>()), Times.Once); // Assert that is possible to subscribe to a ParameterOverride that is not owned by the current domain var parameterOverrideRow = defRow.ContainedRows.Last().ContainedRows.Last(); vm.SelectedThing = parameterOverrideRow; vm.ComputePermission(); Assert.IsTrue(vm.CanCreateSubscription); // Assert that is NOT possible to subscribe to a ParameterOverride that is owned by the current domain ((ParameterOverride)parameterOverrideRow.Thing).Owner = this.session.Object.OpenIterations.Values.Single().Item1; vm.ComputePermission(); Assert.IsFalse(vm.CanCreateSubscription); }
public void Verify_that_ExecuteBatchChangeOwnershipElementDefinition_works_as_expected() { var dialogResult = new CDP4EngineeringModel.ViewModels.Dialogs.ChangeOwnershipSelectionResult(true, this.domain, true); this.dialogNavigationService.Setup(x => x.NavigateModal(It.IsAny <IDialogViewModel>())).Returns(dialogResult); var vm = new ElementDefinitionsBrowserViewModel(this.iteration, this.session.Object, null, null, this.dialogNavigationService.Object, null, this.parameterSubscriptionBatchService.Object, this.changeOwnershipBatchService.Object); vm.SelectedThing = new ElementDefinitionRowViewModel(this.elementDef, this.domain, this.session.Object, null, this.obfuscationService.Object); vm.PopulateContextMenu(); vm.ChangeOwnershipCommand.Execute(null); this.dialogNavigationService.Verify(x => x.NavigateModal(It.IsAny <IDialogViewModel>()), Times.Exactly(1)); this.changeOwnershipBatchService.Verify(x => x.Update(this.session.Object, It.IsAny <ElementDefinition>(), this.domain, true, It.IsAny <IEnumerable <ClassKind> >()), Times.Exactly(1)); }
public void Verify_that_ExecuteBatchCreateSubscriptionCommand_works_as_expected() { var dialogResult = new CDP4EngineeringModel.ViewModels.Dialogs.CategoryDomainParameterTypeSelectorResult(true, false, Enumerable.Empty <ParameterType>(), Enumerable.Empty <Category>(), Enumerable.Empty <DomainOfExpertise>()); this.dialogNavigationService.Setup(x => x.NavigateModal(It.IsAny <IDialogViewModel>())).Returns(dialogResult); var vm = new ElementDefinitionsBrowserViewModel(this.iteration, this.session.Object, null, null, this.dialogNavigationService.Object, null, this.parameterSubscriptionBatchService.Object, null); vm.PopulateContextMenu(); Assert.AreEqual(2, vm.ContextMenu.Count); vm.BatchCreateSubscriptionCommand.Execute(null); this.dialogNavigationService.Verify(x => x.NavigateModal(It.IsAny <IDialogViewModel>()), Times.Exactly(1)); this.parameterSubscriptionBatchService.Verify(x => x.Create(this.session.Object, this.iteration, false, It.IsAny <IEnumerable <Category> >(), It.IsAny <IEnumerable <DomainOfExpertise> >(), It.IsAny <IEnumerable <ParameterType> >()), Times.Exactly(1)); }
public void VerifyThatContextMenuIsPopulated() { var group = new ParameterGroup(Guid.NewGuid(), this.assembler.Cache, this.uri); var parameter = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri) { ParameterType = this.pt }; var def2 = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri); var parameter2 = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri); var usage = new ElementUsage(Guid.NewGuid(), this.assembler.Cache, this.uri); var paramOverride = new ParameterOverride(Guid.NewGuid(), this.assembler.Cache, this.uri) { Parameter = parameter2 }; parameter2.ParameterType = this.pt; var usage2 = new ElementUsage(Guid.NewGuid(), this.assembler.Cache, this.uri) { ElementDefinition = def2 }; def2.Parameter.Add(parameter2); usage.ParameterOverride.Add(paramOverride); usage.ElementDefinition = def2; this.elementDef.Parameter.Add(parameter); this.elementDef.ParameterGroup.Add(group); this.elementDef.ContainedElement.Add(usage); this.elementDef.ContainedElement.Add(usage2); this.iteration.Element.Add(this.elementDef); this.iteration.Element.Add(def2); var vm = new ElementDefinitionsBrowserViewModel(this.iteration, this.session.Object, null, null, null, null, null, null); vm.PopulateContextMenu(); Assert.AreEqual(2, vm.ContextMenu.Count); var defRow = vm.ElementDefinitionRowViewModels.Last(); vm.SelectedThing = defRow; vm.PopulateContextMenu(); Assert.AreEqual(18, vm.ContextMenu.Count); vm.SelectedThing = defRow.ContainedRows[0]; vm.PopulateContextMenu(); Assert.AreEqual(12, vm.ContextMenu.Count); vm.SelectedThing = defRow.ContainedRows[1]; vm.PopulateContextMenu(); Assert.AreEqual(11, vm.ContextMenu.Count); var usageRow = defRow.ContainedRows[2]; var usage2Row = defRow.ContainedRows[3]; vm.SelectedThing = usageRow; vm.PopulateContextMenu(); Assert.AreEqual(8, vm.ContextMenu.Count); vm.SelectedThing = usageRow.ContainedRows.Single(); vm.PopulateContextMenu(); Assert.AreEqual(12, vm.ContextMenu.Count); vm.SelectedThing = usage2Row.ContainedRows.Single(); vm.PopulateContextMenu(); Assert.AreEqual(12, vm.ContextMenu.Count); vm.Dispose(); }