internal void ImportSubscriptionProcess(string publishSettingsFile, string subscriptionsDataFile) { GlobalComponents globalComponents = GlobalComponents.CreateFromPublishSettings( GlobalPathInfo.GlobalSettingsDirectory, subscriptionsDataFile, publishSettingsFile); // Set a current and default subscription if possible if (globalComponents.Subscriptions != null && globalComponents.Subscriptions.Count > 0) { var currentDefaultSubscription = globalComponents.Subscriptions.Values.FirstOrDefault(subscription => subscription.IsDefault) ?? globalComponents.Subscriptions.Values.First(); // Set the default subscription as current currentDefaultSubscription.IsDefault = true; this.SetCurrentSubscription(currentDefaultSubscription); // Save subscriptions file to make sure publish settings subscriptions get merged // into the subscriptions data file and the default subscription is updated. globalComponents.SaveSubscriptions(subscriptionsDataFile); this.SafeWriteObject(string.Format( Resources.DefaultAndCurrentSubscription, currentDefaultSubscription.SubscriptionName)); } }
public void TestSaveSubscriptions() { for (var i = 0; i < Data.ValidPublishSettings.Count; i++) { var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings[i]); var subscriptionsManager = SubscriptionsManager.Import( Data.ValidSubscriptionsData[i], globalComponents.PublishSettings, globalComponents.Certificate); var newSubscription = new SubscriptionData { SubscriptionName = "newsubscription", IsDefault = false, SubscriptionId = "id" }; subscriptionsManager.Subscriptions[newSubscription.SubscriptionName] = newSubscription; subscriptionsManager.SaveSubscriptions(Path.Combine(GlobalPathInfo.GlobalSettingsDirectory, "test.xml")); var newSubscriptionsManager = SubscriptionsManager.Import( Path.Combine(GlobalPathInfo.GlobalSettingsDirectory, "test.xml"), globalComponents.PublishSettings, globalComponents.Certificate); var addedSubscription = newSubscriptionsManager.Subscriptions.Values.Single( subscription => subscription.SubscriptionName == newSubscription.SubscriptionName); Assert.AreEqual(newSubscription.SubscriptionId, addedSubscription.SubscriptionId); globalComponents.DeleteGlobalComponents(); } }
public void TestGetCurrentSubscriptionCurrent() { var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings.First()); var importSubscriptionCommand = new ImportAzurePublishSettingsCommand(); importSubscriptionCommand.ImportSubscriptionProcess( Data.ValidPublishSettings.First(), null); var currentSubscription = importSubscriptionCommand.GetCurrentSubscription(); Assert.AreEqual(currentSubscription.SubscriptionName, "Windows Azure Sandbox 9-220"); Assert.IsTrue(currentSubscription.IsDefault); // Test the get for the current subscription var getSubscriptionCommand = new GetSubscriptionCommandStub(); getSubscriptionCommand.GetSubscriptionProcess("Current", null, null); Assert.AreEqual(1, getSubscriptionCommand.Messages.Count); Assert.AreEqual(currentSubscription.SubscriptionName, getSubscriptionCommand.Messages.First().SubscriptionName); Assert.AreEqual(currentSubscription.SubscriptionId, getSubscriptionCommand.Messages.First().SubscriptionId); globalComponents.DeleteGlobalComponents(); }
public void TestGetCurrentSubscriptionByName() { var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings.First()); var importSubscriptionCommand = new ImportAzurePublishSettingsCommand(); importSubscriptionCommand.ImportSubscriptionFile( Data.ValidPublishSettings.First(), null); var currentSubscription = importSubscriptionCommand.GetCurrentSubscription(); Assert.AreEqual(currentSubscription.SubscriptionName, Data.Subscription1); Assert.IsTrue(currentSubscription.IsDefault); // Test the get for all subscription (null name) var getSubscriptionCommand = new GetSubscriptionCommandStub(); getSubscriptionCommand.GetSubscriptionProcess("ByName", null, null); Assert.AreEqual(6, getSubscriptionCommand.Messages.Count); // Test the get for a specific susbcription getSubscriptionCommand = new GetSubscriptionCommandStub(); getSubscriptionCommand.GetSubscriptionProcess("ByName", currentSubscription.SubscriptionName, null); Assert.AreEqual(1, getSubscriptionCommand.Messages.Count); Assert.AreEqual(currentSubscription.SubscriptionName, getSubscriptionCommand.Messages.First().SubscriptionName); Assert.AreEqual(currentSubscription.SubscriptionId, getSubscriptionCommand.Messages.First().SubscriptionId); globalComponents.DeleteGlobalComponents(); }
private GlobalComponents CreateGlobalComponents(string subscriptionsDataFile, string publishSettingsFile) { return(GlobalComponents.CreateFromPublishSettings( GlobalPathInfo.GlobalSettingsDirectory, subscriptionsDataFile, publishSettingsFile)); }
public void TestGetSubscription() { var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings.First()); var cmdletStub = new CmdletStub(); var subscription = cmdletStub.GetSubscription("TestSubscription1", null); Assert.AreEqual("TestSubscription1", subscription.SubscriptionName); globalComponents.DeleteGlobalComponents(); }
public void ProcessGetWebsiteWithNullSubscription() { // Setup GlobalComponents globalComponents = GlobalComponents.CreateFromPublishSettings( GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings[0]); RemoveAzureSubscriptionCommand removeCmdlet = new RemoveAzureSubscriptionCommand(); removeCmdlet.CommandRuntime = new MockCommandRuntime(); ICollection <string> subscriptions = globalComponents.Subscriptions.Keys; foreach (string subscription in subscriptions) { removeCmdlet.RemoveSubscriptionProcess(subscription, null); } SimpleWebsitesManagement channel = new SimpleWebsitesManagement(); channel.GetWebSpacesThunk = ar => new WebSpaces(new List <WebSpace> { new WebSpace { Name = "webspace1" }, new WebSpace { Name = "webspace2" } }); channel.GetSitesThunk = ar => { if (ar.Values["webspaceName"].Equals("webspace1")) { return(new Sites(new List <Site> { new Site { Name = "website1", WebSpace = "webspace1" } })); } return(new Sites(new List <Site> { new Site { Name = "website2", WebSpace = "webspace2" } })); }; // Test GetAzureWebsiteCommand getAzureWebsiteCommand = new GetAzureWebsiteCommand(channel) { ShareChannel = true, CommandRuntime = new MockCommandRuntime(), CurrentSubscription = null }; Testing.AssertThrows <Exception>(() => getAzureWebsiteCommand.ExecuteCmdlet(), Resources.NoDefaultSubscriptionMessage); }
public void GlobalComponentsCreateNewInvalidPublishSettingsFileFail() { foreach (string invalidFileName in Data.InvalidFileName) { Action <ArgumentException> verification = ex => { Assert.AreEqual <string>(ex.Message, Resources.IllegalPath); Assert.IsFalse(Directory.Exists(Data.AzureAppDir)); }; Testing.AssertThrows <ArgumentException>(() => GlobalComponents.CreateFromPublishSettings(Data.AzureAppDir, null, invalidFileName), verification); } }
public void GlobalComponentsCreateNewNullPublishSettingsFileFail() { try { GlobalComponents.CreateFromPublishSettings(Data.AzureAppDir, null, null); Assert.Fail("No exception thrown"); } catch (Exception ex) { Assert.IsTrue(ex is ArgumentException); Assert.AreEqual <string>(ex.Message, string.Format(Resources.InvalidOrEmptyArgumentMessage, Resources.PublishSettings)); Assert.IsFalse(Directory.Exists(Data.AzureAppDir)); } }
public void GlobalComponentsCreateNew() { foreach (string fileName in Data.ValidPublishSettings) { // Prepare GlobalComponents globalComponents = GlobalComponents.CreateFromPublishSettings(Data.AzureAppDir, null, fileName); PublishData expectedPublishSettings = General.DeserializeXmlFile <PublishData>(fileName); // Assert AzureAssert.AreEqualGlobalComponents(new GlobalPathInfo(Data.AzureAppDir), expectedPublishSettings, globalComponents); // Clean globalComponents.DeleteGlobalComponents(); } }
public void TestGetSubscriptions() { var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings.First()); var cmdletStub = new CmdletStub(); var subscriptions = cmdletStub.GetSubscriptions(null); // All subscriptions from both the publish settings file and the subscriptions file were imported Assert.AreEqual(6, subscriptions.Count); // There's a single default subscription Assert.AreEqual("Windows Azure Sandbox 9-220", subscriptions.Values.Single(subscription => subscription.IsDefault).SubscriptionName); globalComponents.DeleteGlobalComponents(); }
public void TestSetCurrentSubscription() { var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings.First()); var selectSubscriptionCommand = new SelectAzureSubscriptionCommand(); // Check that current subscription is the default one Assert.AreEqual("Windows Azure Sandbox 9-220", selectSubscriptionCommand.GetCurrentSubscription().SubscriptionName); // Change it and make sure it got changed selectSubscriptionCommand.SelectSubscriptionProcess("Set", "mysub1", Data.ValidSubscriptionsData.First()); Assert.AreEqual("mysub1", selectSubscriptionCommand.GetCurrentSubscription().SubscriptionName); // Clean globalComponents.DeleteGlobalComponents(); }
public void TestSetDefaultSubscription() { var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings.First()); var setSubscriptionCommand = new SetSubscriptionCommandStub(); // Check that current subscription is the default one Assert.AreEqual("Windows Azure Sandbox 9-220", setSubscriptionCommand.GetCurrentSubscription().SubscriptionName); // Change it and make sure it got changed setSubscriptionCommand.SetSubscriptionProcess("DefaultSubscription", null, null, null, null, "TestSubscription1", null, null); Assert.AreEqual("TestSubscription1", setSubscriptionCommand.GetCurrentSubscription().SubscriptionName); Assert.AreEqual("TestSubscription1", setSubscriptionCommand.GetSubscriptions(null).Values.Single(sub => sub.IsDefault).SubscriptionName); // Clean globalComponents.DeleteGlobalComponents(); }
/// <summary> /// Create a temporary Azure SDK directory to simulate global files. /// </summary> /// <param name="publishSettingsPath"> /// Path to the publish settings. /// </param> /// <returns>The path to the temporary Azure SDK directory.</returns> public string CreateAzureSdkDirectoryAndImportPublishSettings(string publishSettingsPath) { Debug.Assert(!string.IsNullOrEmpty(publishSettingsPath)); Debug.Assert(File.Exists(publishSettingsPath)); Debug.Assert(string.IsNullOrEmpty(AzureSdkPath)); AzureSdkPath = CreateDirectory("AzureSdk"); GlobalPathInfo.GlobalSettingsDirectory = AzureSdkPath; GlobalComponents globalComponents = GlobalComponents.CreateFromPublishSettings( GlobalPathInfo.GlobalSettingsDirectory, null, publishSettingsPath); GlobalPathInfo.GlobalSettingsDirectory = AzureSdkPath; return(AzureSdkPath); }
public void TestImportSubscriptionProcess() { var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings.First()); var importSubscriptionCommand = new ImportAzurePublishSettingsCommand(); importSubscriptionCommand.ImportSubscriptionProcess( Data.ValidPublishSettings.First(), null); var currentSubscription = importSubscriptionCommand.GetCurrentSubscription(); Assert.AreEqual(currentSubscription.SubscriptionName, "Windows Azure Sandbox 9-220"); Assert.IsTrue(currentSubscription.IsDefault); globalComponents.DeleteGlobalComponents(); }
public void GlobalComponentsCreateNewInvalidPublishSettingsSchemaFail() { foreach (string fileName in Data.InvalidPublishSettings) { try { GlobalComponents.CreateFromPublishSettings(Data.AzureAppDir, null, fileName); Assert.Fail("No exception thrown"); } catch (Exception ex) { Assert.IsTrue(ex is InvalidOperationException); Assert.AreEqual <string>(ex.Message, string.Format(Resources.InvalidPublishSettingsSchema, fileName)); Assert.IsFalse(Directory.Exists(Data.AzureAppDir)); } } }
public void TestUpdateSubscription() { var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings.First()); var setSubscriptionCommand = new SetSubscriptionCommandStub(); // Check that current subscription is the default one Assert.AreEqual("Windows Azure Sandbox 9-220", setSubscriptionCommand.GetCurrentSubscription().SubscriptionName); // Change it and make sure it got changed setSubscriptionCommand.SetSubscriptionProcess("CommonSettings", "TestSubscription1", "newSubscriptionId", null, "newEndpoint", null, null, null); var updatedSubscription = setSubscriptionCommand.GetSubscriptions(null).Values.First(subscription => subscription.SubscriptionName == "TestSubscription1"); Assert.AreEqual("newSubscriptionId", updatedSubscription.SubscriptionId); Assert.AreEqual("newEndpoint", updatedSubscription.ServiceEndpoint); // Clean globalComponents.DeleteGlobalComponents(); }
public void TestGetCurrentSubscription() { var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings.First()); var cmdletStub = new CmdletStub(); var subscriptions = cmdletStub.GetSubscriptions(null); var currentSubscription = subscriptions.Values.First(); cmdletStub.SetCurrentSubscription(currentSubscription.SubscriptionName, null); // Test var actualCurrentSubscription = cmdletStub.GetCurrentSubscription(); Assert.AreEqual(currentSubscription.SubscriptionName, actualCurrentSubscription.SubscriptionName); Assert.AreEqual(currentSubscription.SubscriptionId, actualCurrentSubscription.SubscriptionId); globalComponents.DeleteGlobalComponents(); }
public void TestRemoveNonDefaultSubscriptionProcess() { for (var i = 0; i < Data.ValidPublishSettings.Count; i++) { var targetFile = Path.Combine(Directory.GetParent(Data.ValidSubscriptionsData[i]).FullName, "removeagain" + Path.GetFileName(Data.ValidSubscriptionsData[i])); File.Copy(Data.ValidSubscriptionsData[i], targetFile, true); var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, targetFile, Data.ValidPublishSettings[i]); var removeSubscriptionCommand = new RemoveAzureSubscriptionCommand(); removeSubscriptionCommand.RemoveSubscriptionProcess("mysub2", targetFile); var subscriptionsManager = GlobalComponents.Load(GlobalPathInfo.GlobalSettingsDirectory, targetFile); Assert.IsFalse(subscriptionsManager.Subscriptions.Values.Any(subscription => subscription.SubscriptionName == "mysub2")); Assert.IsTrue(subscriptionsManager.Subscriptions.Values.Any(subscription => subscription.IsDefault)); // Clean globalComponents.DeleteGlobalComponents(); } }
public void TestUpdateSubscriptions() { var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings.First()); var cmdletStub = new CmdletStub(); var subscriptions = cmdletStub.GetSubscriptions(Data.ValidSubscriptionsData[0]); var deleteSubscriptionKey = subscriptions.Keys.First(); subscriptions.Remove(deleteSubscriptionKey); var newPath = Path.Combine(GlobalPathInfo.GlobalSettingsDirectory, "test.xml"); cmdletStub.UpdateSubscriptions(subscriptions, newPath); var newSubscriptions = cmdletStub.GetSubscriptions(newPath); Assert.IsFalse(newSubscriptions.ContainsKey(deleteSubscriptionKey)); globalComponents.DeleteGlobalComponents(); }
public void TestImportSubscriptionProcess() { MockCommandRuntime mockCommandRuntime; ImportAzurePublishSettingsCommand cmdlet; mockCommandRuntime = new MockCommandRuntime(); cmdlet = new ImportAzurePublishSettingsCommand(); cmdlet.CommandRuntime = mockCommandRuntime; var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings.First()); cmdlet.ImportSubscriptionFile( Data.ValidPublishSettings.First(), null); var currentSubscription = cmdlet.GetCurrentSubscription(); Assert.AreEqual(currentSubscription.SubscriptionName, Data.Subscription1); Assert.IsTrue(currentSubscription.IsDefault); globalComponents.DeleteGlobalComponents(); }
public void TestSetDefaultSubscription() { var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, null, Data.ValidPublishSettings.First()); var newPath = Path.Combine(GlobalPathInfo.GlobalSettingsDirectory, "test.xml"); File.Copy(Data.ValidSubscriptionsData[0], newPath, true); var cmdletStub = new CmdletStub(); var subscriptions = cmdletStub.GetSubscriptions(Data.ValidSubscriptionsData[0]); var newDefaultSubscription = subscriptions.Values.First(subscription => !subscription.IsDefault); cmdletStub.SetDefaultSubscription(newDefaultSubscription.SubscriptionName, newPath); // Test - reimport and make sure the current subscription after import is the correct one var subscriptionsManager = GlobalComponents.Load(GlobalPathInfo.GlobalSettingsDirectory, newPath).SubscriptionManager; var defaultSubscription = subscriptionsManager.Subscriptions.Values.First(subscription => subscription.IsDefault); Assert.AreEqual(newDefaultSubscription.SubscriptionName, defaultSubscription.SubscriptionName); globalComponents.DeleteGlobalComponents(); }
public void TestRemoveCurrentSubscriptionProcess() { for (var i = 0; i < Data.ValidPublishSettings.Count; i++) { var targetFile = Path.Combine(Directory.GetParent(Data.ValidSubscriptionsData[i]).FullName, "removeonce" + Path.GetFileName(Data.ValidSubscriptionsData[i])); File.Copy(Data.ValidSubscriptionsData[i], targetFile, true); var globalComponents = GlobalComponents.CreateFromPublishSettings(GlobalPathInfo.GlobalSettingsDirectory, targetFile, Data.ValidPublishSettings[i]); MockCommandRuntime mockCommandRuntime = new MockCommandRuntime(); var removeSubscriptionCommand = new RemoveAzureSubscriptionCommand(); removeSubscriptionCommand.SetCurrentSubscription(globalComponents.Subscriptions["mysub1"]); removeSubscriptionCommand.CommandRuntime = mockCommandRuntime; removeSubscriptionCommand.RemoveSubscriptionProcess("mysub1", targetFile); var subscriptionsManager = SubscriptionsManager.Import(targetFile); Assert.IsFalse(subscriptionsManager.Subscriptions.Values.Any(subscription => subscription.SubscriptionName == "mysub1")); Assert.IsFalse(subscriptionsManager.Subscriptions.Values.Any(subscription => subscription.IsDefault)); Assert.IsNull(removeSubscriptionCommand.GetCurrentSubscription()); // Clean globalComponents.DeleteGlobalComponents(); } }
public void GlobalComponentsLoadIgnoresPublishExisting() { var publishSettingsFile = Data.ValidPublishSettings.First(); var subscriptionDataFile = Data.ValidSubscriptionsData.First(); var outputSubscriptionDataFile = Path.Combine(Directory.GetParent(subscriptionDataFile).FullName, "outputNoPublish.xml"); File.Copy(subscriptionDataFile, outputSubscriptionDataFile); // Create with both an existing ouput subscription data file and the publish settings file GlobalComponents globalComponents = GlobalComponents.CreateFromPublishSettings(Data.AzureAppDir, outputSubscriptionDataFile, publishSettingsFile); Assert.AreEqual(5, globalComponents.Subscriptions.Count); // Remove one of the subscriptions from the publish settings file globalComponents.Subscriptions.Remove("TestSubscription1"); globalComponents.SaveSubscriptions(); // Load and make sure the subscription is still gone although it still is in the publish settings file globalComponents = GlobalComponents.Load(Data.AzureAppDir, outputSubscriptionDataFile); Assert.AreEqual(4, globalComponents.Subscriptions.Count); // Clean globalComponents.DeleteGlobalComponents(); }