public void SecurityWrite_Execute_SecuritySettingsValuePassedValidJSON_ShouldWriteFile() { //------------Setup for test-------------------------- var permission = new WindowsGroupPermission { Administrator = true, IsServer = true, WindowsGroup = Environment.UserName }; var windowsGroupPermissions = new List <WindowsGroupPermission> { permission }; var securitySettings = new SecuritySettingsTO(windowsGroupPermissions) { CacheTimeout = new TimeSpan(0, 2, 0) }; var securitySettingsValue = JsonConvert.SerializeObject(securitySettings); var securityWrite = new SecurityWrite(); //------------Execute Test--------------------------- securityWrite.Execute(new Dictionary <string, StringBuilder> { { "SecuritySettings", new StringBuilder(securitySettingsValue) } }, null); //------------Assert Results------------------------- var serverSecuritySettingsFile = EnvironmentVariables.ServerSecuritySettingsFile; Assert.IsTrue(File.Exists(serverSecuritySettingsFile), $"File \"{serverSecuritySettingsFile}\" does not exist after writing security settings to it."); var fileData = File.ReadAllText(serverSecuritySettingsFile); Assert.IsFalse(fileData.StartsWith("{")); Assert.IsFalse(fileData.EndsWith("}")); Assert.IsFalse(fileData.Contains("IsServer")); File.Delete(serverSecuritySettingsFile); }
public void SecurityWrite_Execute_NoValuesPassed_ExceptionThrown() { //------------Setup for test-------------------------- var securityWrite = new SecurityWrite(); //------------Execute Test--------------------------- securityWrite.Execute(null, null); //------------Assert Results------------------------- }
public void SecurityWrite_Execute_SecuritySettingsValuePassedNotValidJSON_ExceptionThrown() { //------------Setup for test-------------------------- var securityWrite = new SecurityWrite(); //------------Execute Test--------------------------- securityWrite.Execute(new Dictionary <string, StringBuilder> { { "SecuritySettings", new StringBuilder("Something") } }, null); //------------Assert Results------------------------- }
public void SecurityRead_Execute_WhenSecureConfigDoesExistWithGuestPermission_ShouldHaveExistingPermissions() { //------------Setup for test-------------------------- var serverSecuritySettingsFile = EnvironmentVariables.ServerSecuritySettingsFile; File.Delete(serverSecuritySettingsFile); var permission = new WindowsGroupPermission { Administrator = true, IsServer = true, WindowsGroup = Environment.UserName }; var permission2 = new WindowsGroupPermission { Administrator = false, DeployFrom = false, IsServer = true, WindowsGroup = "NETWORK SERVICE" }; var guests = WindowsGroupPermission.CreateGuests(); guests.View = true; var permission3 = guests; var windowsGroupPermissions = new List <WindowsGroupPermission> { permission, permission2, permission3 }; var securitySettings = new SecuritySettingsTO(windowsGroupPermissions) { CacheTimeout = new TimeSpan(0, 10, 0) }; var serializeObject = JsonConvert.SerializeObject(securitySettings); var securityWrite = new SecurityWrite(); var securityRead = new SecurityRead(); securityWrite.Execute(new Dictionary <string, StringBuilder> { { "SecuritySettings", new StringBuilder(serializeObject) } }, null); //------------Assert Preconditions------------------------- Assert.IsTrue(File.Exists(serverSecuritySettingsFile)); //------------Execute Test--------------------------- var jsonPermissions = securityRead.Execute(null, null); File.Delete("secure.config"); var readSecuritySettings = JsonConvert.DeserializeObject <SecuritySettingsTO>(jsonPermissions.ToString()); //------------Assert Results------------------------- Assert.AreEqual(4, readSecuritySettings.WindowsGroupPermissions.Count); var adminPermission = readSecuritySettings.WindowsGroupPermissions.FirstOrDefault(p => p.IsBuiltInAdministrators); Assert.IsNotNull(adminPermission); Assert.AreEqual(true, adminPermission.IsServer); Assert.AreEqual(true, adminPermission.View); Assert.AreEqual(true, adminPermission.Execute); Assert.AreEqual(true, adminPermission.Contribute); Assert.AreEqual(true, adminPermission.DeployTo); Assert.AreEqual(true, adminPermission.DeployFrom); Assert.AreEqual(true, adminPermission.Administrator); var userPermission = readSecuritySettings.WindowsGroupPermissions.FirstOrDefault(p => p.WindowsGroup == Environment.UserName); Assert.IsNotNull(userPermission); Assert.AreEqual(true, userPermission.IsServer); Assert.AreEqual(false, userPermission.View); Assert.AreEqual(false, userPermission.Execute); Assert.AreEqual(false, userPermission.Contribute); Assert.AreEqual(false, userPermission.DeployTo); Assert.AreEqual(false, userPermission.DeployFrom); Assert.AreEqual(true, userPermission.Administrator); var networkServicePermission = readSecuritySettings.WindowsGroupPermissions.FirstOrDefault(p => p.WindowsGroup == "NETWORK SERVICE"); Assert.IsNotNull(networkServicePermission); Assert.AreEqual(true, networkServicePermission.IsServer); Assert.AreEqual(false, networkServicePermission.View); Assert.AreEqual(false, networkServicePermission.Execute); Assert.AreEqual(false, networkServicePermission.Contribute); Assert.AreEqual(false, networkServicePermission.DeployTo); Assert.AreEqual(false, networkServicePermission.DeployFrom); Assert.AreEqual(false, networkServicePermission.Administrator); var guestPermission = readSecuritySettings.WindowsGroupPermissions.FirstOrDefault(p => p.WindowsGroup == WindowsGroupPermission.BuiltInGuestsText); Assert.IsNotNull(guestPermission); Assert.AreEqual(true, guestPermission.IsServer); Assert.AreEqual(true, guestPermission.View); Assert.AreEqual(false, guestPermission.Execute); Assert.AreEqual(false, guestPermission.Contribute); Assert.AreEqual(false, guestPermission.DeployTo); Assert.AreEqual(false, guestPermission.DeployFrom); Assert.AreEqual(false, guestPermission.Administrator); Assert.AreEqual(new TimeSpan(0, 10, 0), readSecuritySettings.CacheTimeout); }