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);
        }
Esempio n. 2
0
        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;
 }