protected override void Initialize() { base.Initialize(); var componentModel = this.GetService <SComponentModel, IComponentModel>(); componentModel.DefaultCompositionService.SatisfyImportsOnce(this); this.trackSelection = this.GetService <SVsTrackSelectionEx, IVsTrackSelectionEx>(); Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(this.trackSelection.OnSelectChange(this.selectionContainer)); var shell = this.GetService <SVsUIShell, IVsUIShell>(); var context = new SolutionBuilderContext { PatternManager = this.PatternManager, UserMessageService = this.UserMessageService, BindingFactory = this.BindingFactory, NewProductDialogFactory = ctx => shell.CreateDialog <AddNewProductView>(ctx), NewNodeDialogFactory = ctx => shell.CreateDialog <AddNewNodeView>(ctx), ShowProperties = this.ShowProperties }; this.viewModel = new SolutionBuilderViewModel(context, this.ServiceProvider); this.Content = new SolutionBuilderView { DataContext = this.viewModel }; }
public void WhenInvokingGuidanceAndGuidanceNotInstalled_ThenDisablesGuidance() { var serviceProvider = GetServiceProvider(); var guidanceManager = Mock.Get(serviceProvider.GetService <IGuidanceManager>()); guidanceManager.Setup(x => x.InstalledGuidanceExtensions).Returns(Enumerable.Empty <IGuidanceExtensionRegistration>()); var target = new SolutionBuilderViewModel(this.ctx, serviceProvider); target.GuidanceCommand.Execute(null); }
public void WhenSolutionIsOpened_ThenAddNewProductIsEnabled() { var serviceProvider = GetServiceProvider(); var solutionEvents = Mock.Get(serviceProvider.GetService <ISolutionEvents>()); solutionEvents.Setup(x => x.IsSolutionOpened).Returns(true); var target = new SolutionBuilderViewModel(this.ctx, serviceProvider); Assert.True(target.AddNewProductCommand.CanExecute(null)); }
public void WhenInvokingGuidanceAndGuidanceNotInstantiated_ThenInstantiatesGuidance() { var serviceProvider = GetServiceProvider(); var guidanceManager = Mock.Get(serviceProvider.GetService <IGuidanceManager>()); guidanceManager.Setup(x => x.InstalledGuidanceExtensions) .Returns(new[] { Mocks.Of <IGuidanceExtensionRegistration>().First(x => x.ExtensionId == SolutionBuilderViewModel.UsingGuidanceExtensionId) }); guidanceManager.Setup(x => x.InstantiatedGuidanceExtensions) .Returns(Enumerable.Empty <IGuidanceExtension>()); var target = new SolutionBuilderViewModel(this.ctx, serviceProvider); target.GuidanceCommand.Execute(null); guidanceManager.Verify(manager => manager.Instantiate(SolutionBuilderViewModel.UsingGuidanceExtensionId, It.IsAny <string>()), Times.Once()); }
public void Initialize() { var child1 = Create <ICollection, ICollectionInfo>("Bar1", Cardinality.ZeroToMany); var child2 = Create <IElement, IElementInfo>("Bar2", Cardinality.OneToOne); this.element = Create <IElement, IElementInfo>("Foo1", Cardinality.ZeroToMany, child1, child2); var children = (List <IAbstractElementInfo>) this.element.Info.Elements; children.Add(Mocks.Of <IElementInfo>().First(e => e.Name == "Element 1" && e.DisplayName == "Element 1" && e.IsVisible == true && e.AllowAddNew == true && e.Cardinality == Cardinality.ZeroToMany)); children.Add(Mocks.Of <ICollectionInfo>().First(e => e.Name == "Collection 1" && e.DisplayName == "Collection 1" && e.IsVisible == true && e.AllowAddNew == true && e.Cardinality == Cardinality.ZeroToMany)); var newNodeDialog = new Mock <IDialogWindow>(); newNodeDialog.Setup(x => x.ShowDialog()).Returns(true); var ctx = new SolutionBuilderContext { PatternManager = new Mock <IPatternManager>().Object, UserMessageService = Mock.Of <IUserMessageService>(ums => ums.PromptWarning(It.IsAny <string>()) == true), ShowProperties = () => { }, NewNodeDialogFactory = x => newNodeDialog.Object }; var serviceProvider = Mocks.Of <IServiceProvider>() .First(x => x.GetService(typeof(ISolutionEvents)) == new Mock <ISolutionEvents>().Object); var explorer = new SolutionBuilderViewModel(ctx, serviceProvider); this.target = new ElementViewModel(this.element, ctx); this.target.RenderHierarchyRecursive(); }
public void WhenInvokingGuidanceAndGuidanceInstantiated_ThenActivatesGuidance() { var serviceProvider = GetServiceProvider(); var extension = Mocks.Of <IGuidanceExtension>().First(x => x.ExtensionId == SolutionBuilderViewModel.UsingGuidanceExtensionId); var guidanceManager = Mock.Get(serviceProvider.GetService <IGuidanceManager>()); guidanceManager.Setup(x => x.InstalledGuidanceExtensions) .Returns(new[] { Mocks.Of <IGuidanceExtensionRegistration>().First(x => x.ExtensionId == SolutionBuilderViewModel.UsingGuidanceExtensionId) }); guidanceManager.Setup(x => x.InstantiatedGuidanceExtensions) .Returns(new[] { extension }); var target = new SolutionBuilderViewModel(this.ctx, serviceProvider); target.GuidanceCommand.Execute(null); guidanceManager.VerifySet(x => x.ActiveGuidanceExtension = extension); }
public void Initialize() { var serviceProvider = GetServiceProvider(); this.patternManager = new Mock <IPatternManager>(); this.patternManager.Setup(p => p.IsOpen).Returns(true); var products = Mocks.Of <IProduct>().Where(p => p.Views == GetViews() && p.CurrentView == GetViews().FirstOrDefault(v => v.Info.IsDefault) && p.InstanceName == Path.GetRandomFileName() && p.Info == new Mock <IPatternInfo>().Object&& p.BeginTransaction() == new Mock <ITransaction>().Object) .Take(2) .ToList(); this.patternManager.Setup(p => p.Products).Returns(products); this.patternManager.Setup(p => p.DeleteProduct(It.IsAny <IProduct>())) .Callback <IProduct>((p) => { products.Remove(p); this.patternManager.Raise(m => m.ElementDeleted += null, new ValueEventArgs <IProductElement>(p)); }) .Returns(true); this.solutionEvents = Mock.Get(serviceProvider.GetService <ISolutionEvents>()); this.solutionEvents.Setup(e => e.IsSolutionOpened).Returns(true); var ctx = new SolutionBuilderContext { PatternManager = this.patternManager.Object, NewProductDialogFactory = x => new Mock <IDialogWindow>().Object, NewNodeDialogFactory = x => new Mock <IDialogWindow>().Object, ShowProperties = () => { }, UserMessageService = new Mock <IUserMessageService>().Object }; this.target = new SolutionBuilderViewModel(ctx, serviceProvider); }
public void Initialize() { var serviceProvider = GetServiceProvider(); IProduct product = null; this.patternManager = new Mock <IPatternManager>(); this.patternManager.Setup(p => p.CreateProduct(It.IsAny <IInstalledToolkitInfo>(), It.IsAny <string>(), true)) .Callback(() => { product = Mocks.Of <IProduct>().First(p => p.Info.Name == "Foo" && p.Views == GetViews() && p.CurrentView == GetViews().FirstOrDefault(v => v.Info.IsDefault) && p.InstanceName == Path.GetRandomFileName()); this.patternManager.Setup(p => p.Products).Returns(new[] { product }); this.patternManager.Raise(p => p.ElementCreated += null, new ValueEventArgs <IProductElement>(product)); this.patternManager.Raise(p => p.ElementInstantiated += null, new ValueEventArgs <IProductElement>(product)); }) .Returns(() => product); var solutionListener = Mock.Get(serviceProvider.GetService <ISolutionEvents>()); solutionListener.Setup(sl => sl.IsSolutionOpened).Returns(true); this.dialog = new Mock <IDialogWindow>(); this.context = new SolutionBuilderContext { PatternManager = patternManager.Object, NewProductDialogFactory = x => this.dialog.Object, NewNodeDialogFactory = x => new Mock <IDialogWindow>().Object, UserMessageService = new Mock <IUserMessageService>().Object, ShowProperties = () => { } }; this.target = new SolutionBuilderViewModel(this.context, serviceProvider); }
public void WhenSolutionIsNotOpen_ThenAddNewProductIsDisabled() { var target = new SolutionBuilderViewModel(this.ctx, GetServiceProvider()); Assert.False(target.AddNewProductCommand.CanExecute(null)); }
public void Initialize() { var hiddenView = CreateView("HiddenView", false); Mock.Get(hiddenView.Info).Setup(x => x.IsVisible).Returns(false); var views = new[] { CreateView("View1", false, Create <IElement, IElementInfo>("Element1", Cardinality.OneToOne)), CreateView("View2", true, Create <ICollection, ICollectionInfo>("Collection2", Cardinality.OneToOne), Create <IElement, IElementInfo>("Element2", Cardinality.ZeroToMany)), hiddenView, }; var view1Children = (List <IAbstractElementInfo>)views[0].Info.Elements; Mock.Get((IElementInfo)view1Children[0]) .Setup(e => e.Parent) .Returns(views[0].Info); var view2Children = (List <IAbstractElementInfo>)views[1].Info.Elements; Mock.Get((ICollectionInfo)view2Children[0]) .Setup(e => e.Parent) .Returns(views[1].Info); Mock.Get((IElementInfo)view2Children[1]) .Setup(e => e.Parent) .Returns(views[1].Info); view2Children.Add(Mocks.Of <IElementInfo>().First(e => e.Name == "Foo1" && e.IsVisible == true && e.AllowAddNew == true && e.DisplayName == "Foo1" && e.Cardinality == Cardinality.ZeroToMany)); view2Children.Add(Mocks.Of <ICollectionInfo>().First(e => e.Name == "Foo2" && e.IsVisible == true && e.AllowAddNew == true && e.DisplayName == "Foo2" && e.Cardinality == Cardinality.ZeroToMany)); this.product = Mocks.Of <IProduct>().First(p => p.InstanceName == "Foo" && p.Views == views && p.CurrentView == views.FirstOrDefault(v => v.Info.IsDefault) && p.Info == new Mock <IPatternInfo>().Object); this.patternManager = Mocks.Of <IPatternManager>() .First(x => x.InstalledToolkits == Enumerable.Empty <IInstalledToolkitInfo>()); var newNodeDialog = new Mock <IDialogWindow>(); newNodeDialog.Setup(x => x.ShowDialog()).Returns(true); this.context = new SolutionBuilderContext { PatternManager = this.patternManager, UserMessageService = Mock.Of <IUserMessageService>(ums => ums.PromptWarning(It.IsAny <string>()) == true), ShowProperties = () => { }, NewNodeDialogFactory = x => newNodeDialog.Object, }; var serviceProvider = Mocks.Of <IServiceProvider>() .First(x => x.GetService(typeof(ISolutionEvents)) == new Mock <ISolutionEvents>().Object); var explorer = new SolutionBuilderViewModel(context, serviceProvider); this.target = new ProductViewModel(this.product, context); this.target.RenderHierarchyRecursive(); }