Пример #1
0
        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);
        }
Пример #2
0
        public void SecurityWrite_Execute_NoValuesPassed_ExceptionThrown()
        {
            //------------Setup for test--------------------------
            var securityWrite = new SecurityWrite();

            //------------Execute Test---------------------------
            securityWrite.Execute(null, null);
            //------------Assert Results-------------------------
        }
Пример #3
0
        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-------------------------
        }
Пример #4
0
        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);
        }