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 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); }