using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using AWSSDK_DotNet.IntegrationTests.Utils;
using Amazon.IdentityManagement;
using Amazon.IdentityManagement.Model;
namespace AWSSDK_DotNet.IntegrationTests.Tests.IAM
{
///
/// Summary description for PasswordPolicyTests
///
[TestClass]
public class PasswordPolicyTests : TestBase
{
[ClassCleanup]
public static void Cleanup()
{
BaseClean();
}
[Ignore("Excluding tests that need IAM Write/Permissions management.")]
[TestMethod]
[TestCategory("IdentityManagement")]
public void CRUDPasswordPolicy()
{
var request = new UpdateAccountPasswordPolicyRequest
{
RequireNumbers = true,
RequireSymbols = true,
MinimumPasswordLength = 8,
RequireLowercaseCharacters = true,
RequireUppercaseCharacters = true,
AllowUsersToChangePassword = true,
PasswordReusePrevention = 1,
MaxPasswordAge = 90,
HardExpiry = true
};
Client.UpdateAccountPasswordPolicy(request);
try
{
var policy = Client.GetAccountPasswordPolicy().PasswordPolicy;
Assert.AreEqual(request.RequireNumbers, policy.RequireNumbers);
Assert.AreEqual(request.RequireSymbols, policy.RequireSymbols);
Assert.AreEqual(request.MinimumPasswordLength, policy.MinimumPasswordLength);
Assert.AreEqual(request.RequireLowercaseCharacters, policy.RequireLowercaseCharacters);
Assert.AreEqual(request.RequireUppercaseCharacters, policy.RequireUppercaseCharacters);
Assert.AreEqual(request.AllowUsersToChangePassword, policy.AllowUsersToChangePassword);
Assert.AreEqual(request.PasswordReusePrevention, policy.PasswordReusePrevention);
Assert.AreEqual(request.MaxPasswordAge, policy.MaxPasswordAge);
Assert.AreEqual(request.HardExpiry, policy.HardExpiry);
//Assert.IsTrue(policy.ExpirePasswords);
Client.UpdateAccountPasswordPolicy();
policy = Client.GetAccountPasswordPolicy().PasswordPolicy;
Assert.IsFalse(policy.RequireNumbers);
Assert.IsFalse(policy.RequireSymbols);
}
finally
{
Client.DeleteAccountPasswordPolicy();
}
}
}
}