public void DependencyDetailsEditorViewModel_XmlDependencyViewModelAndTypeAreSet() { var componentName = "PackageA"; var componentVersion = "1.0"; var providerType = "BinaryRepository"; string dummyDepDefFile = "C:\\Temp\\component.targets"; var bootstrapper = InitializeEnvironmentForTests(componentName, componentVersion, providerType, dummyDepDefFile); var iXmlDef = bootstrapper.DependencyService.LoadXmlComponent(dummyDepDefFile, bootstrapper.Logger).Dependencies.First(); XmlDependencyViewModel expected = new XmlDependencyViewModel(iXmlDef, true); XmlDependencyViewModel actual; String actualType; // Get the DependencyDetailsEditorViewModel DependencyDetailsEditorViewModel ddEditor = new DependencyDetailsEditorViewModel(); Assert.IsNotNull(ddEditor); Assert.IsNull(ddEditor.XmlDependency); // Assert they are equal EventPublisher publ = new EventPublisher(); ddEditor.EventPublisher = publ; publ.Publish(new SelectedXmlDependencyChangedEvent(null, expected)); // FIXME: This fails because the event is not published into the DependencyDetailsEditorViewModel actual = ddEditor.XmlDependency; Assert.AreEqual(expected, actual); }
private List <object> _InitializeViewModelDependencies() { const DependencyType usedDependencyType = DependencyType.BinaryDependency; var resolverTypeLookUp = "Resolver_" + usedDependencyType; var result = new List <object>(); // the fake editor var fakeDefinitionEditor = new TextBox(); result.Add(fakeDefinitionEditor as FrameworkElement); // create xml dependency fakes var dependencyProviderConfigFake = new Mock <IDependencyProviderConfig>(); dependencyProviderConfigFake.Setup(o => o.Type) .Returns(usedDependencyType.ToString()); result.Add(dependencyProviderConfigFake); var xmlDependencyFake = new Mock <IXmlDependency>(); xmlDependencyFake.Setup(o => o.Type) .Returns(usedDependencyType); xmlDependencyFake.Setup(o => o.ProviderConfiguration) .Returns(dependencyProviderConfigFake.Object); result.Add(xmlDependencyFake); var xmlDependencyViewModel = new XmlDependencyViewModel(xmlDependencyFake.Object, true); result.Add(xmlDependencyViewModel); // create the fake resolver var dependencyResolverTypeFake = new Mock <IDependencyResolverType>(); dependencyResolverTypeFake.Setup(o => o.ReferenceName) .Returns(resolverTypeLookUp); dependencyResolverTypeFake.Setup(o => o.GetDefinitionEditor(It.IsAny <IDependencyInjectionService>(), xmlDependencyViewModel, "component.targets", FakeTPCUrl)) .Returns(fakeDefinitionEditor); result.Add(dependencyResolverTypeFake); // create the IDependencyService fake var dependencyServiceFake = new Mock <IDependencyService>(); dependencyServiceFake.Setup(o => o.GetDependencyResolvers()) .Returns(new List <IDependencyResolverType>(new[] { dependencyResolverTypeFake.Object })); result.Add(dependencyServiceFake); // create event fakes var selectedXmlDependencyChangedEvent = new SelectedXmlDependencyChangedEvent(null, xmlDependencyViewModel); result.Add(selectedXmlDependencyChangedEvent); // create an event observable fake Action <SelectedXmlDependencyChangedEvent> eventHandler = null; var selectedXmlDependencyChangedEventObservableFake = new Mock <IObservable <SelectedXmlDependencyChangedEvent> >(); result.Add(selectedXmlDependencyChangedEventObservableFake); // use moles to stub the static extension method _hasCalledIObservableSubscribe = false; System.Moles.MObservableExtensions.SubscribeIObservableOfTSourceActionOfTSource <SelectedXmlDependencyChangedEvent>((func, action) => { _hasCalledIObservableSubscribe = true; eventHandler = action; return(null); }); // create an IEventPublisher fake var eventPublisherFake = new Mock <IEventPublisher>(); eventPublisherFake.Setup(o => o.GetEvent <SelectedXmlDependencyChangedEvent>()) .Returns(selectedXmlDependencyChangedEventObservableFake.Object); eventPublisherFake.Setup(o => o.Publish(selectedXmlDependencyChangedEvent)) .Callback <SelectedXmlDependencyChangedEvent>(o => eventHandler(o)); result.Add(eventPublisherFake); // create targets file data var targetsFileData = new TargetsFileData(); targetsFileData.LocalPath = FakePath; result.Add(targetsFileData); // create team project collection data var tpcUrlData = new TeamProjectCollectionData(); tpcUrlData.TPCUri = FakeTPCUrl; result.Add(tpcUrlData); // initialize injection service _InitializeDependenyInjectionService <ProviderSettingsEditorViewModel>(vm => { vm.DependencyService = dependencyServiceFake.Object; vm.EventPublisher = eventPublisherFake.Object; vm.TargetsFileData = targetsFileData; vm.TeamProjectCollectionData = tpcUrlData; }); return(result); }
public SelectedXmlDependencyChangedEvent(XmlDependencyViewModel oldValue, XmlDependencyViewModel newValue) { OldValue = oldValue; NewValue = newValue; }