public void NewAzureSqlDatabaseServerFirewallRuleProcessTest() { MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); bool newFirewallRuleCalled = false; channel.NewServerFirewallRuleThunk = ar => { newFirewallRuleCalled = true; Assert.AreEqual("Server1", (string)ar.Values["serverName"]); Assert.AreEqual("Rule1", ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).Name); Assert.AreEqual("0.0.0.0", ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).StartIPAddress); Assert.AreEqual("1.1.1.1", ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).EndIPAddress); }; // New firewall rule with IpRange parameter set NewAzureSqlDatabaseServerFirewallRule newAzureSqlDatabaseServerFirewallRule = new NewAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; newAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelpers.CreateUnitTestSubscription(); newAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var newFirewallResult = newAzureSqlDatabaseServerFirewallRule.NewAzureSqlDatabaseServerFirewallRuleProcess("IpRange", "Server1", "Rule1", "0.0.0.0", "1.1.1.1"); Assert.AreEqual("Server1", newFirewallResult.ServerName); Assert.AreEqual("Rule1", newFirewallResult.RuleName); Assert.AreEqual("0.0.0.0", newFirewallResult.StartIpAddress); Assert.AreEqual("1.1.1.1", newFirewallResult.EndIpAddress); Assert.AreEqual("Success", newFirewallResult.OperationStatus); Assert.AreEqual(true, newFirewallRuleCalled); Assert.AreEqual(0, commandRuntime.ErrorRecords.Count); }
public void NewAzureSqlDatabaseServerProcessTest() { MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.NewServerThunk = ar => { string newServerName = "NewServerName"; Assert.AreEqual("MyLogin", ((NewSqlDatabaseServerInput)ar.Values["input"]).AdministratorLogin); Assert.AreEqual("MyPassword", ((NewSqlDatabaseServerInput)ar.Values["input"]).AdministratorLoginPassword); Assert.AreEqual("MyLocation", ((NewSqlDatabaseServerInput)ar.Values["input"]).Location); XmlElement operationResult = new XmlDocument().CreateElement("ServerName", "http://schemas.microsoft.com/sqlazure/2010/12/"); operationResult.InnerText = newServerName; return(operationResult); }; NewAzureSqlDatabaseServer newAzureSqlDatabaseServer = new NewAzureSqlDatabaseServer(channel) { ShareChannel = true }; newAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); newAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var newServerResult = newAzureSqlDatabaseServer.NewAzureSqlDatabaseServerProcess("MyLogin", "MyPassword", "MyLocation"); Assert.AreEqual("NewServerName", newServerResult.ServerName); Assert.AreEqual("Success", newServerResult.OperationStatus); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); }
public void GetAzureSqlDatabaseServerFirewallRuleProcessTest() { SqlDatabaseFirewallRulesList firewallList = new SqlDatabaseFirewallRulesList(); MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.NewServerFirewallRuleThunk = ar => { Assert.AreEqual("Server1", (string)ar.Values["serverName"]); SqlDatabaseFirewallRule newRule = new SqlDatabaseFirewallRule(); newRule.Name = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).Name; newRule.StartIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).StartIPAddress; newRule.EndIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).EndIPAddress; firewallList.Add(newRule); }; channel.GetServerFirewallRulesThunk = ar => { return firewallList; }; // New firewall rule with IpRange parameter set NewAzureSqlDatabaseServerFirewallRule newAzureSqlDatabaseServerFirewallRule = new NewAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; newAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); newAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var newFirewallResult = newAzureSqlDatabaseServerFirewallRule.NewAzureSqlDatabaseServerFirewallRuleProcess("IpRange", "Server1", "Rule1", "0.0.0.0", "1.1.1.1"); Assert.AreEqual("Success", newFirewallResult.OperationStatus); newFirewallResult = newAzureSqlDatabaseServerFirewallRule.NewAzureSqlDatabaseServerFirewallRuleProcess("IpRange", "Server1", "Rule2", "1.1.1.1", "2.2.2.2"); Assert.AreEqual("Success", newFirewallResult.OperationStatus); // Get all rules GetAzureSqlDatabaseServerFirewallRule getAzureSqlDatabaseServerFirewallRule = new GetAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; getAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); getAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var getFirewallResult = getAzureSqlDatabaseServerFirewallRule.GetAzureSqlDatabaseServerFirewallRuleProcess("Server1", null); Assert.AreEqual(2, getFirewallResult.Count()); var firstRule = getFirewallResult.First(); Assert.AreEqual("Server1", firstRule.ServerName); Assert.AreEqual("Rule1", firstRule.RuleName); Assert.AreEqual("0.0.0.0", firstRule.StartIpAddress); Assert.AreEqual("1.1.1.1", firstRule.EndIpAddress); Assert.AreEqual("Success", firstRule.OperationStatus); var lastRule = getFirewallResult.Last(); Assert.AreEqual("Server1", lastRule.ServerName); Assert.AreEqual("Rule2", lastRule.RuleName); Assert.AreEqual("1.1.1.1", lastRule.StartIpAddress); Assert.AreEqual("2.2.2.2", lastRule.EndIpAddress); Assert.AreEqual("Success", lastRule.OperationStatus); // Get one rule getFirewallResult = getAzureSqlDatabaseServerFirewallRule.GetAzureSqlDatabaseServerFirewallRuleProcess("Server1", "Rule2"); Assert.AreEqual(1, getFirewallResult.Count()); firstRule = getFirewallResult.First(); Assert.AreEqual("Server1", firstRule.ServerName); Assert.AreEqual("Rule2", firstRule.RuleName); Assert.AreEqual("1.1.1.1", firstRule.StartIpAddress); Assert.AreEqual("2.2.2.2", firstRule.EndIpAddress); Assert.AreEqual("Success", firstRule.OperationStatus); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); }
public void NewAzureSqlDatabaseWithCertAuth() { SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.NewDatabaseThunk = ar => { Assert.AreEqual( ((SqlDatabaseInput)ar.Values["input"]).Name, "UnitTestNewDatabase", "The database Name input parameter does not match"); Assert.AreEqual( ((SqlDatabaseInput)ar.Values["input"]).MaxSizeGB, "1", "The database MaxSizeGB input parameter does not match"); Assert.AreEqual( ((SqlDatabaseInput)ar.Values["input"]).CollationName, "Japanese_CI_AS", "The database CollationName input parameter does not match"); Assert.AreEqual( ((SqlDatabaseInput)ar.Values["input"]).Edition, "Web", "The database Edition input parameter does not match"); SqlDatabaseResponse operationResult = new SqlDatabaseResponse(); operationResult.CollationName = "Japanese_CI_AS"; operationResult.Edition = "Web"; operationResult.Id = "1"; operationResult.MaxSizeGB = "1"; operationResult.Name = "TestDatabaseName"; operationResult.CreationDate = DateTime.Now.ToString(); operationResult.IsFederationRoot = true.ToString(); operationResult.IsSystemObject = true.ToString(); operationResult.MaxSizeBytes = "1073741824"; return(operationResult); }; SubscriptionData subscriptionData = UnitTestHelper.CreateUnitTestSubscription(); subscriptionData.ServiceEndpoint = MockHttpServer.DefaultHttpsServerPrefixUri.AbsoluteUri; NewAzureSqlDatabaseServerContext contextCmdlet = new NewAzureSqlDatabaseServerContext(); ServerDataServiceCertAuth service = contextCmdlet.GetServerDataServiceByCertAuth("TestServer", subscriptionData); service.Channel = channel; Database result = service.CreateNewDatabase("UnitTestNewDatabase", 1, "Japanese_CI_AS", DatabaseEdition.Web); // Verify that the result matches the stuff in the thunk. Assert.AreEqual(result.CollationName, "Japanese_CI_AS", "The collation does not match"); Assert.AreEqual(result.Edition, DatabaseEdition.Web.ToString(), "The edition does not match"); Assert.AreEqual(result.MaxSizeGB, 1, "The max db size does not match"); Assert.AreEqual(result.Name, "TestDatabaseName", "The name does not match"); }
public void GetAzureSqlDatabaseWithCertAuth() { SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.GetDatabaseThunk = ar => { Assert.AreEqual( ar.Values["databaseName"], "testdb1", "The input databaseName did not match the expected"); SqlDatabaseResponse db1 = new SqlDatabaseResponse(); db1.CollationName = "Japanese_CI_AS"; db1.Edition = "Web"; db1.Id = "1"; db1.MaxSizeGB = "1"; db1.Name = "testdb1"; db1.CreationDate = DateTime.Now.ToString(); db1.IsFederationRoot = true.ToString(); db1.IsSystemObject = true.ToString(); db1.MaxSizeBytes = "1073741824"; return(db1); }; SubscriptionData subscriptionData = UnitTestHelper.CreateUnitTestSubscription(); subscriptionData.ServiceEndpoint = MockHttpServer.DefaultHttpsServerPrefixUri.AbsoluteUri; NewAzureSqlDatabaseServerContext contextCmdlet = new NewAzureSqlDatabaseServerContext(); ServerDataServiceCertAuth service = contextCmdlet.GetServerDataServiceByCertAuth("TestServer", subscriptionData); service.Channel = channel; Database database = service.GetDatabase("testdb1"); Assert.AreEqual("testdb1", database.Name, "Expected db name to be testdb1"); Assert.AreEqual( "Japanese_CI_AS", database.CollationName, "Expected collation to be Japanese_CI_AS"); Assert.AreEqual("Web", database.Edition, "Expected edition to be Web"); Assert.AreEqual(1, database.MaxSizeGB, "Expected max size to be 1 GB"); }
public void NewAzureSqlDatabaseServerFirewallRuleProcessTest() { MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); bool newFirewallRuleCalled = false; channel.NewServerFirewallRuleThunk = ar => { newFirewallRuleCalled = true; Assert.AreEqual("Server1", (string)ar.Values["serverName"]); Assert.AreEqual("Rule1", ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).Name); Assert.AreEqual("0.0.0.0", ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).StartIPAddress); Assert.AreEqual("1.1.1.1", ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).EndIPAddress); }; // New firewall rule with IpRange parameter set NewAzureSqlDatabaseServerFirewallRule newAzureSqlDatabaseServerFirewallRule = new NewAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; newAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); newAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var newFirewallResult = newAzureSqlDatabaseServerFirewallRule.NewAzureSqlDatabaseServerFirewallRuleProcess("IpRange", "Server1", "Rule1", "0.0.0.0", "1.1.1.1"); Assert.AreEqual("Server1", newFirewallResult.ServerName); Assert.AreEqual("Rule1", newFirewallResult.RuleName); Assert.AreEqual("0.0.0.0", newFirewallResult.StartIpAddress); Assert.AreEqual("1.1.1.1", newFirewallResult.EndIpAddress); Assert.AreEqual("Success", newFirewallResult.OperationStatus); Assert.AreEqual(true, newFirewallRuleCalled); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); }
public void SetAzureSqlDatabaseServerFirewallRuleProcessTest() { SqlDatabaseFirewallRulesList firewallList = new SqlDatabaseFirewallRulesList(); MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.NewServerFirewallRuleThunk = ar => { Assert.AreEqual("Server1", (string)ar.Values["serverName"]); SqlDatabaseFirewallRule newRule = new SqlDatabaseFirewallRule(); newRule.Name = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).Name; newRule.StartIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).StartIPAddress; newRule.EndIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).EndIPAddress; firewallList.Add(newRule); }; channel.GetServerFirewallRulesThunk = ar => { return firewallList; }; channel.UpdateServerFirewallRuleThunk = ar => { string ruleName = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).Name; Assert.AreEqual(ruleName, (string)ar.Values["ruleName"]); var ruleToUpdate = firewallList.SingleOrDefault((rule) => rule.Name == ruleName); if (ruleToUpdate == null) { throw new CommunicationException("Firewall rule does not exist!"); } ruleToUpdate.StartIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).StartIPAddress; ruleToUpdate.EndIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).EndIPAddress; }; // New firewall rule with IpRange parameter set NewAzureSqlDatabaseServerFirewallRule newAzureSqlDatabaseServerFirewallRule = new NewAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; newAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); newAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var newFirewallResult = newAzureSqlDatabaseServerFirewallRule.NewAzureSqlDatabaseServerFirewallRuleProcess("IpRange", "Server1", "Rule1", "0.0.0.0", "1.1.1.1"); Assert.AreEqual("Success", newFirewallResult.OperationStatus); // Get the rule GetAzureSqlDatabaseServerFirewallRule getAzureSqlDatabaseServerFirewallRule = new GetAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; getAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); getAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var getFirewallResult = getAzureSqlDatabaseServerFirewallRule.GetAzureSqlDatabaseServerFirewallRuleProcess("Server1", null); Assert.AreEqual(1, getFirewallResult.Count()); var firstRule = getFirewallResult.First(); Assert.AreEqual("Server1", firstRule.ServerName); Assert.AreEqual("Rule1", firstRule.RuleName); Assert.AreEqual("0.0.0.0", firstRule.StartIpAddress); Assert.AreEqual("1.1.1.1", firstRule.EndIpAddress); Assert.AreEqual("Success", firstRule.OperationStatus); // Update the rule SetAzureSqlDatabaseServerFirewallRule setAzureSqlDatabaseServerFirewallRule = new SetAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; setAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); setAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var setFirewallResult = setAzureSqlDatabaseServerFirewallRule.SetAzureSqlDatabaseServerFirewallRuleProcess("Server1", "Rule1", "2.2.2.2", "3.3.3.3"); Assert.AreEqual("Server1", setFirewallResult.ServerName); Assert.AreEqual("Rule1", setFirewallResult.RuleName); Assert.AreEqual("2.2.2.2", setFirewallResult.StartIpAddress); Assert.AreEqual("3.3.3.3", setFirewallResult.EndIpAddress); Assert.AreEqual("Success", setFirewallResult.OperationStatus); // Get the rule again getFirewallResult = getAzureSqlDatabaseServerFirewallRule.GetAzureSqlDatabaseServerFirewallRuleProcess("Server1", "Rule1"); Assert.AreEqual(1, getFirewallResult.Count()); firstRule = getFirewallResult.First(); Assert.AreEqual("Server1", firstRule.ServerName); Assert.AreEqual("Rule1", firstRule.RuleName); Assert.AreEqual("2.2.2.2", firstRule.StartIpAddress); Assert.AreEqual("3.3.3.3", firstRule.EndIpAddress); Assert.AreEqual("Success", firstRule.OperationStatus); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); }
public void RemoveAzureSqlDatabaseServerFirewallRuleProcessTest() { SqlDatabaseFirewallRulesList firewallList = new SqlDatabaseFirewallRulesList(); MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.NewServerFirewallRuleThunk = ar => { Assert.AreEqual("Server1", (string)ar.Values["serverName"]); SqlDatabaseFirewallRule newRule = new SqlDatabaseFirewallRule(); newRule.Name = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).Name; newRule.StartIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).StartIPAddress; newRule.EndIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).EndIPAddress; firewallList.Add(newRule); }; channel.GetServerFirewallRulesThunk = ar => { return firewallList; }; channel.RemoveServerFirewallRuleThunk = ar => { Assert.AreEqual("Server1", (string)ar.Values["serverName"]); string ruleName = (string)ar.Values["ruleName"]; var ruleToDelete = firewallList.SingleOrDefault((rule) => rule.Name == ruleName); if (ruleToDelete == null) { throw new CommunicationException("Firewall rule does not exist!"); } firewallList.Remove(ruleToDelete); }; // New firewall rule with IpRange parameter set NewAzureSqlDatabaseServerFirewallRule newAzureSqlDatabaseServerFirewallRule = new NewAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; newAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); newAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var newFirewallResult = newAzureSqlDatabaseServerFirewallRule.NewAzureSqlDatabaseServerFirewallRuleProcess("IpRange", "Server1", "Rule1", "0.0.0.0", "1.1.1.1"); Assert.AreEqual("Success", newFirewallResult.OperationStatus); newFirewallResult = newAzureSqlDatabaseServerFirewallRule.NewAzureSqlDatabaseServerFirewallRuleProcess("IpRange", "Server1", "Rule2", "1.1.1.1", "2.2.2.2"); Assert.AreEqual("Success", newFirewallResult.OperationStatus); // Get all rules GetAzureSqlDatabaseServerFirewallRule getAzureSqlDatabaseServerFirewallRule = new GetAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; getAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); getAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var getFirewallResult = getAzureSqlDatabaseServerFirewallRule.GetAzureSqlDatabaseServerFirewallRuleProcess("Server1", null); Assert.AreEqual(2, getFirewallResult.Count()); // Remove Rule1 RemoveAzureSqlDatabaseServerFirewallRule removeAzureSqlDatabaseServerFirewallRule = new RemoveAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; removeAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); removeAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var removeServerContext = removeAzureSqlDatabaseServerFirewallRule.RemoveAzureSqlDatabaseServerFirewallRuleProcess("Server1", "Rule1"); // Verify only one rule is left getFirewallResult = getAzureSqlDatabaseServerFirewallRule.GetAzureSqlDatabaseServerFirewallRuleProcess("Server1", null); Assert.AreEqual(1, getFirewallResult.Count()); var firstRule = getFirewallResult.First(); Assert.AreEqual("Server1", firstRule.ServerName); Assert.AreEqual("Rule2", firstRule.RuleName); Assert.AreEqual("1.1.1.1", firstRule.StartIpAddress); Assert.AreEqual("2.2.2.2", firstRule.EndIpAddress); Assert.AreEqual("Success", firstRule.OperationStatus); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); // Remove Rule1 again removeServerContext = removeAzureSqlDatabaseServerFirewallRule.RemoveAzureSqlDatabaseServerFirewallRuleProcess("Server1", "Rule1"); Assert.AreEqual(1, commandRuntime.ErrorStream.Count); Assert.IsTrue(commandRuntime.WarningStream.Count > 0); }
public void GetAzureSqlDatabaseWithCertAuth() { SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.GetDatabaseThunk = ar => { Assert.AreEqual( ar.Values["databaseName"], "testdb1", "The input databaseName did not match the expected"); SqlDatabaseResponse db1 = new SqlDatabaseResponse(); db1.CollationName = "Japanese_CI_AS"; db1.Edition = "Web"; db1.Id = "1"; db1.MaxSizeGB = "1"; db1.Name = "testdb1"; db1.CreationDate = DateTime.Now.ToString(); db1.IsFederationRoot = true.ToString(); db1.IsSystemObject = true.ToString(); db1.MaxSizeBytes = "1073741824"; return db1; }; SubscriptionData subscriptionData = UnitTestHelper.CreateUnitTestSubscription(); subscriptionData.ServiceEndpoint = MockHttpServer.DefaultHttpsServerPrefixUri.AbsoluteUri; NewAzureSqlDatabaseServerContext contextCmdlet = new NewAzureSqlDatabaseServerContext(); ServerDataServiceCertAuth service = contextCmdlet.GetServerDataServiceByCertAuth("TestServer", subscriptionData); service.Channel = channel; Database database = service.GetDatabase("testdb1"); Assert.AreEqual("testdb1", database.Name, "Expected db name to be testdb1"); Assert.AreEqual( "Japanese_CI_AS", database.CollationName, "Expected collation to be Japanese_CI_AS"); Assert.AreEqual("Web", database.Edition, "Expected edition to be Web"); Assert.AreEqual(1, database.MaxSizeGB, "Expected max size to be 1 GB"); }
public void SetAzureSqlDatabaseServerProcessTest() { MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); string password = null; channel.NewServerThunk = ar => { string newServerName = "NewServerName"; Assert.AreEqual("MyLogin", ((NewSqlDatabaseServerInput)ar.Values["input"]).AdministratorLogin); Assert.AreEqual("MyPassword", ((NewSqlDatabaseServerInput)ar.Values["input"]).AdministratorLoginPassword); Assert.AreEqual("MyLocation", ((NewSqlDatabaseServerInput)ar.Values["input"]).Location); password = ((NewSqlDatabaseServerInput)ar.Values["input"]).AdministratorLoginPassword; XmlElement operationResult = new XmlDocument().CreateElement("ServerName", "http://schemas.microsoft.com/sqlazure/2010/12/"); operationResult.InnerText = newServerName; return operationResult; }; channel.SetPasswordThunk = ar => { Assert.AreEqual("NewServerName", (string)ar.Values["serverName"]); var passwordElement = (XmlElement)ar.Values["password"]; Assert.AreEqual("AdministratorLoginPassword", passwordElement.Name); password = passwordElement.InnerText; }; NewAzureSqlDatabaseServer newAzureSqlDatabaseServer = new NewAzureSqlDatabaseServer(channel) { ShareChannel = true }; newAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); newAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var newServerResult = newAzureSqlDatabaseServer.NewAzureSqlDatabaseServerProcess("MyLogin", "MyPassword", "MyLocation"); Assert.AreEqual("NewServerName", newServerResult.ServerName); Assert.AreEqual("Success", newServerResult.OperationStatus); SetAzureSqlDatabaseServer setAzureSqlDatabaseServer = new SetAzureSqlDatabaseServer(channel) { ShareChannel = true }; setAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); setAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var setPasswordResult = setAzureSqlDatabaseServer.ResetAzureSqlDatabaseServerAdminPasswordProcess("NewServerName", "NewPassword"); Assert.AreEqual("NewServerName", setPasswordResult.ServerName); Assert.AreEqual("Success", setPasswordResult.OperationStatus); Assert.AreEqual("NewPassword", password); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); }
public void GetAzureSqlDatabaseServerProcessTest() { MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); SqlDatabaseServerList serverList = new SqlDatabaseServerList(); channel.NewServerThunk = ar => { string newServerName = "TestServer" + serverList.Count.ToString(); serverList.Add(new SqlDatabaseServer() { Name = newServerName, AdministratorLogin = ((NewSqlDatabaseServerInput)ar.Values["input"]).AdministratorLogin, Location = ((NewSqlDatabaseServerInput)ar.Values["input"]).Location }); XmlElement operationResult = new XmlDocument().CreateElement("ServerName", "http://schemas.microsoft.com/sqlazure/2010/12/"); operationResult.InnerText = newServerName; return(operationResult); }; channel.GetServersThunk = ar => { return(serverList); }; // Add two servers NewAzureSqlDatabaseServer newAzureSqlDatabaseServer = new NewAzureSqlDatabaseServer(channel) { ShareChannel = true }; newAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); newAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var newServerResult = newAzureSqlDatabaseServer.NewAzureSqlDatabaseServerProcess("MyLogin0", "MyPassword0", "MyLocation0"); Assert.AreEqual("TestServer0", newServerResult.ServerName); Assert.AreEqual("Success", newServerResult.OperationStatus); newServerResult = newAzureSqlDatabaseServer.NewAzureSqlDatabaseServerProcess("MyLogin1", "MyPassword1", "MyLocation1"); Assert.AreEqual("TestServer1", newServerResult.ServerName); Assert.AreEqual("Success", newServerResult.OperationStatus); // Get all servers GetAzureSqlDatabaseServer getAzureSqlDatabaseServer = new GetAzureSqlDatabaseServer(channel) { ShareChannel = true }; getAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); getAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var getServerResult = getAzureSqlDatabaseServer.GetAzureSqlDatabaseServersProcess(null); Assert.AreEqual(2, getServerResult.Count()); var firstServer = getServerResult.First(); Assert.AreEqual("TestServer0", firstServer.ServerName); Assert.AreEqual("MyLogin0", firstServer.AdministratorLogin); Assert.AreEqual("MyLocation0", firstServer.Location); Assert.AreEqual("Success", firstServer.OperationStatus); var lastServer = getServerResult.Last(); Assert.AreEqual("TestServer1", lastServer.ServerName); Assert.AreEqual("MyLogin1", lastServer.AdministratorLogin); Assert.AreEqual("MyLocation1", lastServer.Location); Assert.AreEqual("Success", lastServer.OperationStatus); // Get one server getServerResult = getAzureSqlDatabaseServer.GetAzureSqlDatabaseServersProcess("TestServer1"); Assert.AreEqual(1, getServerResult.Count()); firstServer = getServerResult.First(); Assert.AreEqual("TestServer1", firstServer.ServerName); Assert.AreEqual("MyLogin1", firstServer.AdministratorLogin); Assert.AreEqual("MyLocation1", firstServer.Location); Assert.AreEqual("Success", firstServer.OperationStatus); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); }
public void RemoveAzureSqlDatabaseServerProcessTest() { MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); SqlDatabaseServerList serverList = new SqlDatabaseServerList(); channel.NewServerThunk = ar => { string newServerName = "TestServer" + serverList.Count.ToString(); serverList.Add(new SqlDatabaseServer() { Name = newServerName, AdministratorLogin = ((NewSqlDatabaseServerInput)ar.Values["input"]).AdministratorLogin, Location = ((NewSqlDatabaseServerInput)ar.Values["input"]).Location }); XmlElement operationResult = new XmlDocument().CreateElement("ServerName", "http://schemas.microsoft.com/sqlazure/2010/12/"); operationResult.InnerText = newServerName; return(operationResult); }; channel.GetServersThunk = ar => { return(serverList); }; channel.RemoveServerThunk = ar => { string serverName = (string)ar.Values["serverName"]; var serverToDelete = serverList.SingleOrDefault((server) => server.Name == serverName); if (serverToDelete == null) { throw new CommunicationException("Server does not exist!"); } serverList.Remove(serverToDelete); }; // Add two servers NewAzureSqlDatabaseServer newAzureSqlDatabaseServer = new NewAzureSqlDatabaseServer(channel) { ShareChannel = true }; newAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); newAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var newServerResult = newAzureSqlDatabaseServer.NewAzureSqlDatabaseServerProcess("MyLogin0", "MyPassword0", "MyLocation0"); Assert.AreEqual("TestServer0", newServerResult.ServerName); Assert.AreEqual("Success", newServerResult.OperationStatus); newServerResult = newAzureSqlDatabaseServer.NewAzureSqlDatabaseServerProcess("MyLogin1", "MyPassword1", "MyLocation1"); Assert.AreEqual("TestServer1", newServerResult.ServerName); Assert.AreEqual("Success", newServerResult.OperationStatus); // Get all servers GetAzureSqlDatabaseServer getAzureSqlDatabaseServer = new GetAzureSqlDatabaseServer(channel) { ShareChannel = true }; getAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); getAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var getServerContext = getAzureSqlDatabaseServer.GetAzureSqlDatabaseServersProcess(null); Assert.AreEqual(2, getServerContext.Count()); // Remove TestServer0 RemoveAzureSqlDatabaseServer removeAzureSqlDatabaseServer = new RemoveAzureSqlDatabaseServer(channel) { ShareChannel = true }; removeAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); removeAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var removeServerContext = removeAzureSqlDatabaseServer.RemoveAzureSqlDatabaseServerProcess("TestServer0"); // Verify only one server is left getAzureSqlDatabaseServer = new GetAzureSqlDatabaseServer(channel) { ShareChannel = true }; getAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); getAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var getServerResult = getAzureSqlDatabaseServer.GetAzureSqlDatabaseServersProcess(null); Assert.AreEqual(1, getServerContext.Count()); var firstServer = getServerResult.First(); Assert.AreEqual("TestServer1", firstServer.ServerName); Assert.AreEqual("MyLogin1", firstServer.AdministratorLogin); Assert.AreEqual("MyLocation1", firstServer.Location); Assert.AreEqual("Success", firstServer.OperationStatus); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); // Remove TestServer0 again removeAzureSqlDatabaseServer = new RemoveAzureSqlDatabaseServer(channel) { ShareChannel = true }; removeAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); removeAzureSqlDatabaseServer.CommandRuntime = commandRuntime; removeServerContext = removeAzureSqlDatabaseServer.RemoveAzureSqlDatabaseServerProcess("TestServer0"); Assert.AreEqual(1, commandRuntime.ErrorStream.Count); Assert.IsTrue(commandRuntime.WarningStream.Count > 0); }
public void RemoveAzureSqlDatabaseServerFirewallRuleProcessTest() { SqlDatabaseFirewallRulesList firewallList = new SqlDatabaseFirewallRulesList(); MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.NewServerFirewallRuleThunk = ar => { Assert.AreEqual("Server1", (string)ar.Values["serverName"]); SqlDatabaseFirewallRule newRule = new SqlDatabaseFirewallRule(); newRule.Name = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).Name; newRule.StartIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).StartIPAddress; newRule.EndIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).EndIPAddress; firewallList.Add(newRule); }; channel.GetServerFirewallRulesThunk = ar => { return(firewallList); }; channel.RemoveServerFirewallRuleThunk = ar => { Assert.AreEqual("Server1", (string)ar.Values["serverName"]); string ruleName = (string)ar.Values["ruleName"]; var ruleToDelete = firewallList.SingleOrDefault((rule) => rule.Name == ruleName); if (ruleToDelete == null) { throw new CommunicationException("Firewall rule does not exist!"); } firewallList.Remove(ruleToDelete); }; // New firewall rule with IpRange parameter set NewAzureSqlDatabaseServerFirewallRule newAzureSqlDatabaseServerFirewallRule = new NewAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; newAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelpers.CreateUnitTestSubscription(); newAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var newFirewallResult = newAzureSqlDatabaseServerFirewallRule.NewAzureSqlDatabaseServerFirewallRuleProcess("IpRange", "Server1", "Rule1", "0.0.0.0", "1.1.1.1"); Assert.AreEqual("Success", newFirewallResult.OperationStatus); newFirewallResult = newAzureSqlDatabaseServerFirewallRule.NewAzureSqlDatabaseServerFirewallRuleProcess("IpRange", "Server1", "Rule2", "1.1.1.1", "2.2.2.2"); Assert.AreEqual("Success", newFirewallResult.OperationStatus); // Get all rules GetAzureSqlDatabaseServerFirewallRule getAzureSqlDatabaseServerFirewallRule = new GetAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; getAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelpers.CreateUnitTestSubscription(); getAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var getFirewallResult = getAzureSqlDatabaseServerFirewallRule.GetAzureSqlDatabaseServerFirewallRuleProcess("Server1", null); Assert.AreEqual(2, getFirewallResult.Count()); // Remove Rule1 RemoveAzureSqlDatabaseServerFirewallRule removeAzureSqlDatabaseServerFirewallRule = new RemoveAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; removeAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelpers.CreateUnitTestSubscription(); removeAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var removeServerContext = removeAzureSqlDatabaseServerFirewallRule.RemoveAzureSqlDatabaseServerFirewallRuleProcess("Server1", "Rule1"); // Verify only one rule is left getFirewallResult = getAzureSqlDatabaseServerFirewallRule.GetAzureSqlDatabaseServerFirewallRuleProcess("Server1", null); Assert.AreEqual(1, getFirewallResult.Count()); var firstRule = getFirewallResult.First(); Assert.AreEqual("Server1", firstRule.ServerName); Assert.AreEqual("Rule2", firstRule.RuleName); Assert.AreEqual("1.1.1.1", firstRule.StartIpAddress); Assert.AreEqual("2.2.2.2", firstRule.EndIpAddress); Assert.AreEqual("Success", firstRule.OperationStatus); Assert.AreEqual(0, commandRuntime.ErrorRecords.Count); // Remove Rule1 again removeServerContext = removeAzureSqlDatabaseServerFirewallRule.RemoveAzureSqlDatabaseServerFirewallRuleProcess("Server1", "Rule1"); Assert.AreEqual(1, commandRuntime.ErrorRecords.Count); Assert.IsTrue(commandRuntime.WarningOutput.Length > 0); }
public void SetAzureSqlDatabaseServerFirewallRuleProcessTest() { SqlDatabaseFirewallRulesList firewallList = new SqlDatabaseFirewallRulesList(); MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.NewServerFirewallRuleThunk = ar => { Assert.AreEqual("Server1", (string)ar.Values["serverName"]); SqlDatabaseFirewallRule newRule = new SqlDatabaseFirewallRule(); newRule.Name = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).Name; newRule.StartIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).StartIPAddress; newRule.EndIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).EndIPAddress; firewallList.Add(newRule); }; channel.GetServerFirewallRulesThunk = ar => { return(firewallList); }; channel.UpdateServerFirewallRuleThunk = ar => { string ruleName = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).Name; Assert.AreEqual(ruleName, (string)ar.Values["ruleName"]); var ruleToUpdate = firewallList.SingleOrDefault((rule) => rule.Name == ruleName); if (ruleToUpdate == null) { throw new CommunicationException("Firewall rule does not exist!"); } ruleToUpdate.StartIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).StartIPAddress; ruleToUpdate.EndIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).EndIPAddress; }; // New firewall rule with IpRange parameter set NewAzureSqlDatabaseServerFirewallRule newAzureSqlDatabaseServerFirewallRule = new NewAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; newAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelpers.CreateUnitTestSubscription(); newAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var newFirewallResult = newAzureSqlDatabaseServerFirewallRule.NewAzureSqlDatabaseServerFirewallRuleProcess("IpRange", "Server1", "Rule1", "0.0.0.0", "1.1.1.1"); Assert.AreEqual("Success", newFirewallResult.OperationStatus); // Get the rule GetAzureSqlDatabaseServerFirewallRule getAzureSqlDatabaseServerFirewallRule = new GetAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; getAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelpers.CreateUnitTestSubscription(); getAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var getFirewallResult = getAzureSqlDatabaseServerFirewallRule.GetAzureSqlDatabaseServerFirewallRuleProcess("Server1", null); Assert.AreEqual(1, getFirewallResult.Count()); var firstRule = getFirewallResult.First(); Assert.AreEqual("Server1", firstRule.ServerName); Assert.AreEqual("Rule1", firstRule.RuleName); Assert.AreEqual("0.0.0.0", firstRule.StartIpAddress); Assert.AreEqual("1.1.1.1", firstRule.EndIpAddress); Assert.AreEqual("Success", firstRule.OperationStatus); // Update the rule SetAzureSqlDatabaseServerFirewallRule setAzureSqlDatabaseServerFirewallRule = new SetAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; setAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelpers.CreateUnitTestSubscription(); setAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var setFirewallResult = setAzureSqlDatabaseServerFirewallRule.SetAzureSqlDatabaseServerFirewallRuleProcess("Server1", "Rule1", "2.2.2.2", "3.3.3.3"); Assert.AreEqual("Server1", setFirewallResult.ServerName); Assert.AreEqual("Rule1", setFirewallResult.RuleName); Assert.AreEqual("2.2.2.2", setFirewallResult.StartIpAddress); Assert.AreEqual("3.3.3.3", setFirewallResult.EndIpAddress); Assert.AreEqual("Success", setFirewallResult.OperationStatus); // Get the rule again getFirewallResult = getAzureSqlDatabaseServerFirewallRule.GetAzureSqlDatabaseServerFirewallRuleProcess("Server1", "Rule1"); Assert.AreEqual(1, getFirewallResult.Count()); firstRule = getFirewallResult.First(); Assert.AreEqual("Server1", firstRule.ServerName); Assert.AreEqual("Rule1", firstRule.RuleName); Assert.AreEqual("2.2.2.2", firstRule.StartIpAddress); Assert.AreEqual("3.3.3.3", firstRule.EndIpAddress); Assert.AreEqual("Success", firstRule.OperationStatus); Assert.AreEqual(0, commandRuntime.ErrorRecords.Count); }
public void SetAzureSqlDatabaseNameWithCertAuth() { SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); // This is needed because UpdateDatabases calls GetDatabases in order to // get the necessary database information for the delete. channel.GetDatabaseThunk = ar => { Assert.AreEqual( ar.Values["databaseName"], "testdb1", "The input databaseName (for get) did not match the expected"); SqlDatabaseResponse db1 = new SqlDatabaseResponse(); db1.CollationName = "Japanese_CI_AS"; db1.Edition = "Web"; db1.Id = "1"; db1.MaxSizeGB = "1"; db1.Name = "testdb1"; db1.CreationDate = DateTime.Now.ToString(); db1.IsFederationRoot = true.ToString(); db1.IsSystemObject = true.ToString(); db1.MaxSizeBytes = "1073741824"; return db1; }; channel.UpdateDatabaseThunk = ar => { Assert.AreEqual( "testdb1", ar.Values["databaseName"], "The input databaseName (for update) did not match the expected"); Assert.AreEqual( "newTestDb1", ((SqlDatabaseInput)ar.Values["input"]).Name, "The database Name input parameter does not match"); Assert.AreEqual( "1", ((SqlDatabaseInput)ar.Values["input"]).MaxSizeGB, "The database MaxSizeGB input parameter does not match"); Assert.AreEqual( "Japanese_CI_AS", ((SqlDatabaseInput)ar.Values["input"]).CollationName, "The database CollationName input parameter does not match"); Assert.AreEqual( "Web", ((SqlDatabaseInput)ar.Values["input"]).Edition, "The database Edition input parameter does not match"); SqlDatabaseResponse response = new SqlDatabaseResponse(); response.CollationName = ((SqlDatabaseInput)ar.Values["input"]).CollationName; response.CreationDate = DateTime.Now.ToString(); response.MaxSizeBytes = "1073741824"; response.Edition = ((SqlDatabaseInput)ar.Values["input"]).Edition.ToString(); response.Id = ((SqlDatabaseInput)ar.Values["input"]).Id; response.IsFederationRoot = true.ToString(); response.IsSystemObject = true.ToString(); response.MaxSizeGB = ((SqlDatabaseInput)ar.Values["input"]).MaxSizeGB.ToString(); response.Name = ((SqlDatabaseInput)ar.Values["input"]).Name; return response; }; SubscriptionData subscriptionData = UnitTestHelper.CreateUnitTestSubscription(); subscriptionData.ServiceEndpoint = MockHttpServer.DefaultHttpsServerPrefixUri.AbsoluteUri; NewAzureSqlDatabaseServerContext contextCmdlet = new NewAzureSqlDatabaseServerContext(); ServerDataServiceCertAuth service = contextCmdlet.GetServerDataServiceByCertAuth("TestServer", subscriptionData); service.Channel = channel; Database database = service.UpdateDatabase("testdb1", "newTestDb1", null, null, null); Assert.AreEqual( database.CollationName, "Japanese_CI_AS", "The updated database collation name is wrong"); Assert.AreEqual( database.Edition, "Web", "The updated database Edition is wrong"); Assert.AreEqual( database.MaxSizeGB, 1, "The updated database Edition is wrong"); Assert.AreEqual( database.Name, "newTestDb1", "The updated database Edition is wrong"); }
public void NewAzureSqlDatabaseWithCertAuth() { SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.NewDatabaseThunk = ar => { Assert.AreEqual( ((SqlDatabaseInput)ar.Values["input"]).Name, "UnitTestNewDatabase", "The database Name input parameter does not match"); Assert.AreEqual( ((SqlDatabaseInput)ar.Values["input"]).MaxSizeGB, "1", "The database MaxSizeGB input parameter does not match"); Assert.AreEqual( ((SqlDatabaseInput)ar.Values["input"]).CollationName, "Japanese_CI_AS", "The database CollationName input parameter does not match"); Assert.AreEqual( ((SqlDatabaseInput)ar.Values["input"]).Edition, "Web", "The database Edition input parameter does not match"); SqlDatabaseResponse operationResult = new SqlDatabaseResponse(); operationResult.CollationName = "Japanese_CI_AS"; operationResult.Edition = "Web"; operationResult.Id = "1"; operationResult.MaxSizeGB = "1"; operationResult.Name = "TestDatabaseName"; operationResult.CreationDate = DateTime.Now.ToString(); operationResult.IsFederationRoot = true.ToString(); operationResult.IsSystemObject = true.ToString(); operationResult.MaxSizeBytes = "1073741824"; return operationResult; }; SubscriptionData subscriptionData = UnitTestHelper.CreateUnitTestSubscription(); subscriptionData.ServiceEndpoint = MockHttpServer.DefaultHttpsServerPrefixUri.AbsoluteUri; NewAzureSqlDatabaseServerContext contextCmdlet = new NewAzureSqlDatabaseServerContext(); ServerDataServiceCertAuth service = contextCmdlet.GetServerDataServiceByCertAuth("TestServer", subscriptionData); service.Channel = channel; Database result = service.CreateNewDatabase("UnitTestNewDatabase", 1, "Japanese_CI_AS", DatabaseEdition.Web); // Verify that the result matches the stuff in the thunk. Assert.AreEqual(result.CollationName, "Japanese_CI_AS", "The collation does not match"); Assert.AreEqual(result.Edition, DatabaseEdition.Web.ToString(), "The edition does not match"); Assert.AreEqual(result.MaxSizeGB, 1, "The max db size does not match"); Assert.AreEqual(result.Name, "TestDatabaseName", "The name does not match"); }
public void ExportAzureSqlDatabaseProcessTest() { string serverName = "TestServer"; ExportInput input = new ExportInput() { BlobCredentials = new BlobStorageAccessKeyCredentials() { Uri = "blobUri", StorageAccessKey = "storage access key" }, ConnectionInfo = new ConnectionInfo() { DatabaseName = "databaseName", Password = "******", ServerName = "serverName", UserName = "******" } }; Guid guid = Guid.NewGuid(); MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.ExportDatabaseThunk = ar => { Assert.AreEqual(serverName, (string)ar.Values["serverName"]); Assert.AreEqual( input.BlobCredentials.Uri, ((ExportInput)ar.Values["input"]).BlobCredentials.Uri); Assert.AreEqual( input.ConnectionInfo.DatabaseName, ((ExportInput)ar.Values["input"]).ConnectionInfo.DatabaseName); Assert.AreEqual( input.ConnectionInfo.Password, ((ExportInput)ar.Values["input"]).ConnectionInfo.Password); Assert.AreEqual( input.ConnectionInfo.ServerName, ((ExportInput)ar.Values["input"]).ConnectionInfo.ServerName); Assert.AreEqual( input.ConnectionInfo.UserName, ((ExportInput)ar.Values["input"]).ConnectionInfo.UserName); XmlElement operationResult = new XmlDocument().CreateElement( "guid", "http://schemas.microsoft.com/2003/10/Serialization/"); operationResult.InnerText = guid.ToString(); return operationResult; }; StartAzureSqlDatabaseExport exportAzureSqlDatabase = new StartAzureSqlDatabaseExport(channel) { ShareChannel = true }; exportAzureSqlDatabase.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); exportAzureSqlDatabase.CommandRuntime = commandRuntime; var result = exportAzureSqlDatabase.ExportSqlAzureDatabaseProcess(serverName, input); Assert.AreEqual(guid.ToString(), result.RequestGuid); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); }
public void GetAzureSqlDatabasesWithCertAuth() { SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.GetDatabasesThunk = ar => { List <SqlDatabaseResponse> databases = new List <SqlDatabaseResponse>(); SqlDatabaseResponse db1 = new SqlDatabaseResponse(); db1.CollationName = "Japanese_CI_AS"; db1.Edition = "Web"; db1.Id = "1"; db1.MaxSizeGB = "1"; db1.Name = "testdb1"; db1.CreationDate = DateTime.Now.ToString(); db1.IsFederationRoot = true.ToString(); db1.IsSystemObject = true.ToString(); db1.MaxSizeBytes = "1073741824"; databases.Add(db1); SqlDatabaseResponse db2 = new SqlDatabaseResponse(); db2.CollationName = "Japanese_CI_AS"; db2.Edition = "Business"; db2.Id = "2"; db2.MaxSizeGB = "10"; db2.Name = "testdb2"; db2.CreationDate = DateTime.Now.ToString(); db2.IsFederationRoot = true.ToString(); db2.IsSystemObject = true.ToString(); db2.MaxSizeBytes = "10737418240"; databases.Add(db2); SqlDatabaseList operationResult = new SqlDatabaseList(databases); return(operationResult); }; SubscriptionData subscriptionData = UnitTestHelper.CreateUnitTestSubscription(); subscriptionData.ServiceEndpoint = MockHttpServer.DefaultHttpsServerPrefixUri.AbsoluteUri; NewAzureSqlDatabaseServerContext contextCmdlet = new NewAzureSqlDatabaseServerContext(); ServerDataServiceCertAuth service = contextCmdlet.GetServerDataServiceByCertAuth("TestServer", subscriptionData); service.Channel = channel; Database[] results = service.GetDatabases(); // Expecting master, testdb1, testdb2 Assert.AreEqual(2, results.Length, "Expecting two Database objects"); Database database1Obj = results[0]; Assert.AreEqual("testdb1", database1Obj.Name, "Expected db name to be testdb1"); Database database2Obj = results[1]; Assert.AreEqual("testdb2", database2Obj.Name, "Expected db name to be testdb2"); Assert.AreEqual( "Japanese_CI_AS", database2Obj.CollationName, "Expected collation to be Japanese_CI_AS"); Assert.AreEqual("Business", database2Obj.Edition, "Expected edition to be Business"); Assert.AreEqual(10, database2Obj.MaxSizeGB, "Expected max size to be 10 GB"); }
public void GetAzureSqlDatabaseServerFirewallRuleProcessTest() { SqlDatabaseFirewallRulesList firewallList = new SqlDatabaseFirewallRulesList(); MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.NewServerFirewallRuleThunk = ar => { Assert.AreEqual("Server1", (string)ar.Values["serverName"]); SqlDatabaseFirewallRule newRule = new SqlDatabaseFirewallRule(); newRule.Name = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).Name; newRule.StartIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).StartIPAddress; newRule.EndIPAddress = ((SqlDatabaseFirewallRuleInput)ar.Values["input"]).EndIPAddress; firewallList.Add(newRule); }; channel.GetServerFirewallRulesThunk = ar => { return(firewallList); }; // New firewall rule with IpRange parameter set NewAzureSqlDatabaseServerFirewallRule newAzureSqlDatabaseServerFirewallRule = new NewAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; newAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelpers.CreateUnitTestSubscription(); newAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var newFirewallResult = newAzureSqlDatabaseServerFirewallRule.NewAzureSqlDatabaseServerFirewallRuleProcess("IpRange", "Server1", "Rule1", "0.0.0.0", "1.1.1.1"); Assert.AreEqual("Success", newFirewallResult.OperationStatus); newFirewallResult = newAzureSqlDatabaseServerFirewallRule.NewAzureSqlDatabaseServerFirewallRuleProcess("IpRange", "Server1", "Rule2", "1.1.1.1", "2.2.2.2"); Assert.AreEqual("Success", newFirewallResult.OperationStatus); // Get all rules GetAzureSqlDatabaseServerFirewallRule getAzureSqlDatabaseServerFirewallRule = new GetAzureSqlDatabaseServerFirewallRule(channel) { ShareChannel = true }; getAzureSqlDatabaseServerFirewallRule.CurrentSubscription = UnitTestHelpers.CreateUnitTestSubscription(); getAzureSqlDatabaseServerFirewallRule.CommandRuntime = commandRuntime; var getFirewallResult = getAzureSqlDatabaseServerFirewallRule.GetAzureSqlDatabaseServerFirewallRuleProcess("Server1", null); Assert.AreEqual(2, getFirewallResult.Count()); var firstRule = getFirewallResult.First(); Assert.AreEqual("Server1", firstRule.ServerName); Assert.AreEqual("Rule1", firstRule.RuleName); Assert.AreEqual("0.0.0.0", firstRule.StartIpAddress); Assert.AreEqual("1.1.1.1", firstRule.EndIpAddress); Assert.AreEqual("Success", firstRule.OperationStatus); var lastRule = getFirewallResult.Last(); Assert.AreEqual("Server1", lastRule.ServerName); Assert.AreEqual("Rule2", lastRule.RuleName); Assert.AreEqual("1.1.1.1", lastRule.StartIpAddress); Assert.AreEqual("2.2.2.2", lastRule.EndIpAddress); Assert.AreEqual("Success", lastRule.OperationStatus); // Get one rule getFirewallResult = getAzureSqlDatabaseServerFirewallRule.GetAzureSqlDatabaseServerFirewallRuleProcess("Server1", "Rule2"); Assert.AreEqual(1, getFirewallResult.Count()); firstRule = getFirewallResult.First(); Assert.AreEqual("Server1", firstRule.ServerName); Assert.AreEqual("Rule2", firstRule.RuleName); Assert.AreEqual("1.1.1.1", firstRule.StartIpAddress); Assert.AreEqual("2.2.2.2", firstRule.EndIpAddress); Assert.AreEqual("Success", firstRule.OperationStatus); Assert.AreEqual(0, commandRuntime.ErrorRecords.Count); }
public void GetAzureSqlDatabaseImportExportStatusProcessTest() { string serverName = "TestServer"; string userName = "******"; string password = "******"; string requestId = Guid.NewGuid().ToString(); string blobUri = "test.dummy.blob/container/blob.bacpac"; string databaseName = "dummyDB"; DateTime lastModified = DateTime.UtcNow; DateTime queuedTime = new DateTime(1, 2, 3, 4, 5, 6); string requestType = "Export"; string requestStatus = "Complete"; string errorMessage = "errormessage"; MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.GetImportExporStatusThunk = ar => { Assert.AreEqual(serverName, (string)ar.Values["serverName"]); Assert.AreEqual(userName, (string)ar.Values["userName"]); Assert.AreEqual(password, (string)ar.Values["password"]); Assert.AreEqual(requestId, (string)ar.Values["requestId"]); StatusInfo status = new StatusInfo(); status.BlobUri = blobUri; status.DatabaseName = databaseName; status.ErrorMessage = errorMessage; status.LastModifiedTime = lastModified; status.QueuedTime = queuedTime; status.RequestId = requestId; status.RequestType = requestType; status.ServerName = serverName; status.Status = requestStatus; ArrayOfStatusInfo operationResult = new ArrayOfStatusInfo(); operationResult.Add(status); return(operationResult); }; GetAzureSqlDatabaseImportExportStatus getImportExportStatus = new GetAzureSqlDatabaseImportExportStatus(channel) { ShareChannel = true }; getImportExportStatus.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); getImportExportStatus.CommandRuntime = commandRuntime; var result = getImportExportStatus.GetAzureSqlDatabaseImportExportStatusProcess( serverName, userName, password, requestId); Assert.AreEqual(blobUri, result[0].BlobUri); Assert.AreEqual(databaseName, result[0].DatabaseName); Assert.AreEqual(errorMessage, result[0].ErrorMessage); Assert.AreEqual(lastModified, result[0].LastModifiedTime); Assert.AreEqual(queuedTime, result[0].QueuedTime); Assert.AreEqual(requestId, result[0].RequestId); Assert.AreEqual(requestType, result[0].RequestType); Assert.AreEqual(serverName, result[0].ServerName); Assert.AreEqual(requestStatus, result[0].Status); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); }
public void RemoveAzureSqlDatabaseServerProcessTest() { MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); SqlDatabaseServerList serverList = new SqlDatabaseServerList(); channel.NewServerThunk = ar => { string newServerName = "TestServer" + serverList.Count.ToString(); serverList.Add(new SqlDatabaseServer() { Name = newServerName, AdministratorLogin = ((NewSqlDatabaseServerInput)ar.Values["input"]).AdministratorLogin, Location = ((NewSqlDatabaseServerInput)ar.Values["input"]).Location }); XmlElement operationResult = new XmlDocument().CreateElement("ServerName", "http://schemas.microsoft.com/sqlazure/2010/12/"); operationResult.InnerText = newServerName; return operationResult; }; channel.GetServersThunk = ar => { return serverList; }; channel.RemoveServerThunk = ar => { string serverName = (string)ar.Values["serverName"]; var serverToDelete = serverList.SingleOrDefault((server) => server.Name == serverName); if (serverToDelete == null) { throw new CommunicationException("Server does not exist!"); } serverList.Remove(serverToDelete); }; // Add two servers NewAzureSqlDatabaseServer newAzureSqlDatabaseServer = new NewAzureSqlDatabaseServer(channel) { ShareChannel = true }; newAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); newAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var newServerResult = newAzureSqlDatabaseServer.NewAzureSqlDatabaseServerProcess("MyLogin0", "MyPassword0", "MyLocation0"); Assert.AreEqual("TestServer0", newServerResult.ServerName); Assert.AreEqual("Success", newServerResult.OperationStatus); newServerResult = newAzureSqlDatabaseServer.NewAzureSqlDatabaseServerProcess("MyLogin1", "MyPassword1", "MyLocation1"); Assert.AreEqual("TestServer1", newServerResult.ServerName); Assert.AreEqual("Success", newServerResult.OperationStatus); // Get all servers GetAzureSqlDatabaseServer getAzureSqlDatabaseServer = new GetAzureSqlDatabaseServer(channel) { ShareChannel = true }; getAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); getAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var getServerContext = getAzureSqlDatabaseServer.GetAzureSqlDatabaseServersProcess(null); Assert.AreEqual(2, getServerContext.Count()); // Remove TestServer0 RemoveAzureSqlDatabaseServer removeAzureSqlDatabaseServer = new RemoveAzureSqlDatabaseServer(channel) { ShareChannel = true }; removeAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); removeAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var removeServerContext = removeAzureSqlDatabaseServer.RemoveAzureSqlDatabaseServerProcess("TestServer0"); // Verify only one server is left getAzureSqlDatabaseServer = new GetAzureSqlDatabaseServer(channel) { ShareChannel = true }; getAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); getAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var getServerResult = getAzureSqlDatabaseServer.GetAzureSqlDatabaseServersProcess(null); Assert.AreEqual(1, getServerContext.Count()); var firstServer = getServerResult.First(); Assert.AreEqual("TestServer1", firstServer.ServerName); Assert.AreEqual("MyLogin1", firstServer.AdministratorLogin); Assert.AreEqual("MyLocation1", firstServer.Location); Assert.AreEqual("Success", firstServer.OperationStatus); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); // Remove TestServer0 again removeAzureSqlDatabaseServer = new RemoveAzureSqlDatabaseServer(channel) { ShareChannel = true }; removeAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); removeAzureSqlDatabaseServer.CommandRuntime = commandRuntime; removeServerContext = removeAzureSqlDatabaseServer.RemoveAzureSqlDatabaseServerProcess("TestServer0"); Assert.AreEqual(1, commandRuntime.ErrorStream.Count); Assert.IsTrue(commandRuntime.WarningStream.Count > 0); }
public void ImportAzureSqlDatabaseProcessTest() { string serverName = "TestServer"; ImportInput input = new ImportInput() { AzureEdition = "Web", DatabaseSizeInGB = 1, BlobCredentials = new BlobStorageAccessKeyCredentials() { Uri = "blobUri", StorageAccessKey = "storage access key" }, ConnectionInfo = new ConnectionInfo() { DatabaseName = "databaseName", Password = "******", ServerName = "serverName", UserName = "******" } }; Guid testGuid = Guid.NewGuid(); MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.ImportDatabaseThunk = ar => { Assert.AreEqual(serverName, (string)ar.Values["serverName"]); Assert.AreEqual( input.AzureEdition, ((ImportInput)ar.Values["input"]).AzureEdition); Assert.AreEqual( input.DatabaseSizeInGB, ((ImportInput)ar.Values["input"]).DatabaseSizeInGB); Assert.AreEqual( input.BlobCredentials.Uri, ((ImportInput)ar.Values["input"]).BlobCredentials.Uri); Assert.AreEqual( input.ConnectionInfo.DatabaseName, ((ImportInput)ar.Values["input"]).ConnectionInfo.DatabaseName); Assert.AreEqual( input.ConnectionInfo.Password, ((ImportInput)ar.Values["input"]).ConnectionInfo.Password); Assert.AreEqual( input.ConnectionInfo.ServerName, ((ImportInput)ar.Values["input"]).ConnectionInfo.ServerName); Assert.AreEqual( input.ConnectionInfo.UserName, ((ImportInput)ar.Values["input"]).ConnectionInfo.UserName); XmlElement operationResult = new XmlDocument().CreateElement( "guid", "http://schemas.microsoft.com/2003/10/Serialization/"); operationResult.InnerText = testGuid.ToString(); return(operationResult); }; StartAzureSqlDatabaseImport importAzureSqlDatabase = new StartAzureSqlDatabaseImport(channel) { ShareChannel = true }; importAzureSqlDatabase.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); importAzureSqlDatabase.CommandRuntime = commandRuntime; var result = importAzureSqlDatabase.ImportSqlAzureDatabaseProcess(serverName, input); Assert.AreEqual(testGuid.ToString(), result.RequestGuid); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); }
public void GetAzureSqlDatabaseServerProcessTest() { MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); SqlDatabaseServerList serverList = new SqlDatabaseServerList(); channel.NewServerThunk = ar => { string newServerName = "TestServer" + serverList.Count.ToString(); serverList.Add(new SqlDatabaseServer() { Name = newServerName, AdministratorLogin = ((NewSqlDatabaseServerInput)ar.Values["input"]).AdministratorLogin, Location = ((NewSqlDatabaseServerInput)ar.Values["input"]).Location }); XmlElement operationResult = new XmlDocument().CreateElement("ServerName", "http://schemas.microsoft.com/sqlazure/2010/12/"); operationResult.InnerText = newServerName; return operationResult; }; channel.GetServersThunk = ar => { return serverList; }; // Add two servers NewAzureSqlDatabaseServer newAzureSqlDatabaseServer = new NewAzureSqlDatabaseServer(channel) { ShareChannel = true }; newAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); newAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var newServerResult = newAzureSqlDatabaseServer.NewAzureSqlDatabaseServerProcess("MyLogin0", "MyPassword0", "MyLocation0"); Assert.AreEqual("TestServer0", newServerResult.ServerName); Assert.AreEqual("Success", newServerResult.OperationStatus); newServerResult = newAzureSqlDatabaseServer.NewAzureSqlDatabaseServerProcess("MyLogin1", "MyPassword1", "MyLocation1"); Assert.AreEqual("TestServer1", newServerResult.ServerName); Assert.AreEqual("Success", newServerResult.OperationStatus); // Get all servers GetAzureSqlDatabaseServer getAzureSqlDatabaseServer = new GetAzureSqlDatabaseServer(channel) { ShareChannel = true }; getAzureSqlDatabaseServer.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); getAzureSqlDatabaseServer.CommandRuntime = commandRuntime; var getServerResult = getAzureSqlDatabaseServer.GetAzureSqlDatabaseServersProcess(null); Assert.AreEqual(2, getServerResult.Count()); var firstServer = getServerResult.First(); Assert.AreEqual("TestServer0", firstServer.ServerName); Assert.AreEqual("MyLogin0", firstServer.AdministratorLogin); Assert.AreEqual("MyLocation0", firstServer.Location); Assert.AreEqual("Success", firstServer.OperationStatus); var lastServer = getServerResult.Last(); Assert.AreEqual("TestServer1", lastServer.ServerName); Assert.AreEqual("MyLogin1", lastServer.AdministratorLogin); Assert.AreEqual("MyLocation1", lastServer.Location); Assert.AreEqual("Success", lastServer.OperationStatus); // Get one server getServerResult = getAzureSqlDatabaseServer.GetAzureSqlDatabaseServersProcess("TestServer1"); Assert.AreEqual(1, getServerResult.Count()); firstServer = getServerResult.First(); Assert.AreEqual("TestServer1", firstServer.ServerName); Assert.AreEqual("MyLogin1", firstServer.AdministratorLogin); Assert.AreEqual("MyLocation1", firstServer.Location); Assert.AreEqual("Success", firstServer.OperationStatus); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); }
public void SetAzureSqlDatabaseNameWithCertAuth() { SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); // This is needed because UpdateDatabases calls GetDatabases in order to // get the necessary database information for the delete. channel.GetDatabaseThunk = ar => { Assert.AreEqual( ar.Values["databaseName"], "testdb1", "The input databaseName (for get) did not match the expected"); SqlDatabaseResponse db1 = new SqlDatabaseResponse(); db1.CollationName = "Japanese_CI_AS"; db1.Edition = "Web"; db1.Id = "1"; db1.MaxSizeGB = "1"; db1.Name = "testdb1"; db1.CreationDate = DateTime.Now.ToString(); db1.IsFederationRoot = true.ToString(); db1.IsSystemObject = true.ToString(); db1.MaxSizeBytes = "1073741824"; return(db1); }; channel.UpdateDatabaseThunk = ar => { Assert.AreEqual( "testdb1", ar.Values["databaseName"], "The input databaseName (for update) did not match the expected"); Assert.AreEqual( "newTestDb1", ((SqlDatabaseInput)ar.Values["input"]).Name, "The database Name input parameter does not match"); Assert.AreEqual( "1", ((SqlDatabaseInput)ar.Values["input"]).MaxSizeGB, "The database MaxSizeGB input parameter does not match"); Assert.AreEqual( "Japanese_CI_AS", ((SqlDatabaseInput)ar.Values["input"]).CollationName, "The database CollationName input parameter does not match"); Assert.AreEqual( "Web", ((SqlDatabaseInput)ar.Values["input"]).Edition, "The database Edition input parameter does not match"); SqlDatabaseResponse response = new SqlDatabaseResponse(); response.CollationName = ((SqlDatabaseInput)ar.Values["input"]).CollationName; response.CreationDate = DateTime.Now.ToString(); response.MaxSizeBytes = "1073741824"; response.Edition = ((SqlDatabaseInput)ar.Values["input"]).Edition.ToString(); response.Id = ((SqlDatabaseInput)ar.Values["input"]).Id; response.IsFederationRoot = true.ToString(); response.IsSystemObject = true.ToString(); response.MaxSizeGB = ((SqlDatabaseInput)ar.Values["input"]).MaxSizeGB.ToString(); response.Name = ((SqlDatabaseInput)ar.Values["input"]).Name; return(response); }; SubscriptionData subscriptionData = UnitTestHelper.CreateUnitTestSubscription(); subscriptionData.ServiceEndpoint = MockHttpServer.DefaultHttpsServerPrefixUri.AbsoluteUri; NewAzureSqlDatabaseServerContext contextCmdlet = new NewAzureSqlDatabaseServerContext(); ServerDataServiceCertAuth service = contextCmdlet.GetServerDataServiceByCertAuth("TestServer", subscriptionData); service.Channel = channel; Database database = service.UpdateDatabase("testdb1", "newTestDb1", null, null, null); Assert.AreEqual( database.CollationName, "Japanese_CI_AS", "The updated database collation name is wrong"); Assert.AreEqual( database.Edition, "Web", "The updated database Edition is wrong"); Assert.AreEqual( database.MaxSizeGB, 1, "The updated database Edition is wrong"); Assert.AreEqual( database.Name, "newTestDb1", "The updated database Edition is wrong"); }
public void GetAzureSqlDatabasesWithCertAuth() { SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.GetDatabasesThunk = ar => { List<SqlDatabaseResponse> databases = new List<SqlDatabaseResponse>(); SqlDatabaseResponse db1 = new SqlDatabaseResponse(); db1.CollationName = "Japanese_CI_AS"; db1.Edition = "Web"; db1.Id = "1"; db1.MaxSizeGB = "1"; db1.Name = "testdb1"; db1.CreationDate = DateTime.Now.ToString(); db1.IsFederationRoot = true.ToString(); db1.IsSystemObject = true.ToString(); db1.MaxSizeBytes = "1073741824"; databases.Add(db1); SqlDatabaseResponse db2 = new SqlDatabaseResponse(); db2.CollationName = "Japanese_CI_AS"; db2.Edition = "Business"; db2.Id = "2"; db2.MaxSizeGB = "10"; db2.Name = "testdb2"; db2.CreationDate = DateTime.Now.ToString(); db2.IsFederationRoot = true.ToString(); db2.IsSystemObject = true.ToString(); db2.MaxSizeBytes = "10737418240"; databases.Add(db2); SqlDatabaseList operationResult = new SqlDatabaseList(databases); return operationResult; }; SubscriptionData subscriptionData = UnitTestHelper.CreateUnitTestSubscription(); subscriptionData.ServiceEndpoint = MockHttpServer.DefaultHttpsServerPrefixUri.AbsoluteUri; NewAzureSqlDatabaseServerContext contextCmdlet = new NewAzureSqlDatabaseServerContext(); ServerDataServiceCertAuth service = contextCmdlet.GetServerDataServiceByCertAuth("TestServer", subscriptionData); service.Channel = channel; Database[] results = service.GetDatabases(); // Expecting master, testdb1, testdb2 Assert.AreEqual(2, results.Length, "Expecting two Database objects"); Database database1Obj = results[0]; Assert.AreEqual("testdb1", database1Obj.Name, "Expected db name to be testdb1"); Database database2Obj = results[1]; Assert.AreEqual("testdb2", database2Obj.Name, "Expected db name to be testdb2"); Assert.AreEqual( "Japanese_CI_AS", database2Obj.CollationName, "Expected collation to be Japanese_CI_AS"); Assert.AreEqual("Business", database2Obj.Edition, "Expected edition to be Business"); Assert.AreEqual(10, database2Obj.MaxSizeGB, "Expected max size to be 10 GB"); }
public void GetAzureSqlDatabaseImportExportStatusProcessTest() { string serverName = "TestServer"; string userName = "******"; string password = "******"; string requestId = Guid.NewGuid().ToString(); string blobUri = "test.dummy.blob/container/blob.bacpac"; string databaseName = "dummyDB"; DateTime lastModified = DateTime.UtcNow; DateTime queuedTime = new DateTime(1, 2, 3, 4, 5, 6); string requestType = "Export"; string requestStatus = "Complete"; string errorMessage = "errormessage"; MockCommandRuntime commandRuntime = new MockCommandRuntime(); SimpleSqlDatabaseManagement channel = new SimpleSqlDatabaseManagement(); channel.GetImportExporStatusThunk = ar => { Assert.AreEqual(serverName, (string)ar.Values["serverName"]); Assert.AreEqual(userName, (string)ar.Values["userName"]); Assert.AreEqual(password, (string)ar.Values["password"]); Assert.AreEqual(requestId, (string)ar.Values["requestId"]); StatusInfo status = new StatusInfo(); status.BlobUri = blobUri; status.DatabaseName = databaseName; status.ErrorMessage = errorMessage; status.LastModifiedTime = lastModified; status.QueuedTime = queuedTime; status.RequestId = requestId; status.RequestType = requestType; status.ServerName = serverName; status.Status = requestStatus; ArrayOfStatusInfo operationResult = new ArrayOfStatusInfo(); operationResult.Add(status); return operationResult; }; GetAzureSqlDatabaseImportExportStatus getImportExportStatus = new GetAzureSqlDatabaseImportExportStatus(channel) { ShareChannel = true }; getImportExportStatus.CurrentSubscription = UnitTestHelper.CreateUnitTestSubscription(); getImportExportStatus.CommandRuntime = commandRuntime; var result = getImportExportStatus.GetAzureSqlDatabaseImportExportStatusProcess( serverName, userName, password, requestId); Assert.AreEqual(blobUri, result[0].BlobUri); Assert.AreEqual(databaseName, result[0].DatabaseName); Assert.AreEqual(errorMessage, result[0].ErrorMessage); Assert.AreEqual(lastModified, result[0].LastModifiedTime); Assert.AreEqual(queuedTime, result[0].QueuedTime); Assert.AreEqual(requestId, result[0].RequestId); Assert.AreEqual(requestType, result[0].RequestType); Assert.AreEqual(serverName, result[0].ServerName); Assert.AreEqual(requestStatus, result[0].Status); Assert.AreEqual(0, commandRuntime.ErrorStream.Count); }