public void DependencyListEditorViewModel_SaveComponent()
        {
            const string expectedComponentName    = "PackageA";
            const string expectedComponentVersion = "1.0";
            const string expectedProviderType     = "BinaryRepository";
            const string expectedContentFromFile  = "<?xml version=\"1.0\"?><Component xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://schemas.aitgmbh.de/DependencyManager/2011/11\">  <Dependencies>    <Dependency Type=\"BinaryDependency\">      <Provider Type=\"" + expectedProviderType + "\">        <Settings Type=\"" + expectedProviderType + "Settings\">          <Setting Name=\"ComponentName\" Value=\"" + expectedComponentName + "\" />          <Setting Name=\"VersionNumber\" Value=\"" + expectedComponentVersion + "\" />        </Settings>      </Provider>    </Dependency>  </Dependencies></Component>";
            string       actualContentFromSave;
            string       actualContentFromSavedAs;

            const string dummyDepDefFile     = "C:\\Temp\\component.targets";
            const string generatedDepDefFile = "C:\\Temp\\component_saved.targets";

            InitializeEnvironmentForTests(expectedComponentName, expectedComponentVersion, expectedProviderType, expectedContentFromFile, dummyDepDefFile);
            var viewModel = new DependencyListEditorViewModel
            {
                EventPublisher = new EventPublisher()
            };

            // Save view model into original and other file
            viewModel.SaveCommand.Execute();
            using (var f = File.OpenText(dummyDepDefFile))
            {
                actualContentFromSave = f.ReadToEnd().Replace("\r", "").Replace("\n", "").Replace("\t", "");
            }
            viewModel.TargetsFileData.LocalPath = generatedDepDefFile;
            viewModel.SaveCommand.Execute();
            using (var f2 = File.OpenText(generatedDepDefFile))
            {
                actualContentFromSavedAs = f2.ReadToEnd().Replace("\r", "").Replace("\n", "").Replace("\t", "");
            }

            // Check generated dependency definition file
            Assert.AreEqual(expectedContentFromFile, actualContentFromSave);
            Assert.AreEqual(expectedContentFromFile, actualContentFromSavedAs);
        }
        public void DependencyListEditorViewModel_LoadComponent()
        {
            const string expectedComponentName    = "PackageA";
            const string expectedComponentVersion = "1.0";
            const string expectedProviderType     = "BinaryRepository";

            const string dummyDepDefFile      = "C:\\Temp\\component.targets";
            const string dummyContentFromFile = "<?xml version=\"1.0\"?><Component xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://schemas.aitgmbh.de/DependencyManager/2011/11\">  <Dependencies>    <Dependency Type=\"BinaryDependency\">      <Provider Type=\"" + expectedProviderType + "\">        <Settings Type=\"" + expectedProviderType + "Settings\">          <Setting Name=\"ComponentName\" Value=\"" + expectedComponentName + "\" />          <Setting Name=\"VersionNumber\" Value=\"" + expectedComponentVersion + "\" />        </Settings>      </Provider>    </Dependency>  </Dependencies></Component>";

            InitializeEnvironmentForTests(expectedComponentName, expectedComponentVersion, expectedProviderType, dummyContentFromFile, dummyDepDefFile);
            var viewModel = new DependencyListEditorViewModel
            {
                EventPublisher = new EventPublisher()
            };

            // Check generated view model
            Assert.IsNotNull(viewModel);
            Assert.AreEqual(1, viewModel.XmlDependencies.Count());
            var firstXmlDependency = viewModel.XmlDependencies.First() as XmlDependencyViewModel;

            Assert.AreEqual(expectedComponentName, firstXmlDependency.ReferencedComponentName);
            Assert.AreEqual(expectedComponentVersion, firstXmlDependency.ReferencedComponentVersion);
            Assert.AreEqual(expectedProviderType, firstXmlDependency.Type);
            Assert.AreEqual(2, firstXmlDependency.Settings.SettingsList.Count);
        }