public void EnvironmentCheckSqlConfig_Execute()
        {
            //Arrange
            var serverName = "localhost";
            var server     = new Server {
                ServerName = serverName, ServerTypeId = 3
            };
            var databaseDirs = new DatabaseDirectoryInfo {
            };

            _sqlRepo.Setup(r => r.AdminScriptsInstalled()).Returns(true);
            _sqlRepo.Setup(r => r.EnvironmentCheckRepository.ExecuteTuningForkSystem(server.ServerName)).Returns(_data);
            _sqlRepo.Setup(r => r.EnvironmentCheckRepository.SaveTuningForkSystemData(server.ServerName, _data));
            _sqlRepo.Setup(r => r.ConfigurationRepository.ReadConfigurationValue(ConfigurationKeys.Section, ConfigurationKeys.EnableInstantFileInitializationCheck)).Returns("true");
            _sqlRepo.Setup(r => r.DeploymentRepository.ReadMdfLdfDirectories(server.ServerName)).Returns(databaseDirs);
            _sqlRepo.Setup(r => r.EnvironmentCheckRepository.ReadCheckIFISettings(databaseDirs)).Returns(true);
            _sqlRepo.Setup(r => r.PerformanceServerRepository.ReadAllActiveAsync())
            .ReturnsAsync(new List <Server>()
            {
                server
            });

            //Act
            var task   = new EnvironmentCheckSqlConfigTask(_logger.Object, _sqlRepo.Object, 123);
            var result = task.Execute(new ProcessControl());

            //Assert
            Assert.That(result, Is.True);
            _sqlRepo.VerifyAll();
            Assert.That(_data.Rows.Count, Is.EqualTo(2));
        }
        /// <summary>
        /// Obtains information about the MDF/LDF directories used for Relativity databases on this environment
        /// </summary>
        /// <param name="server"></param>
        /// <returns></returns>
        public DatabaseDirectoryInfo ReadMdfLdfDirectories(string server = "")
        {
            var directoryInfo = new DatabaseDirectoryInfo();

            using (var conn = (SqlConnection)this.connectionFactory.GetEddsConnection())
            {
                using (var command = new SqlCommand())
                {
                    var serverName = command.CreateParameter();
                    serverName.ParameterName = "@serverName";
                    serverName.DbType        = DbType.String;
                    serverName.Value         = server ?? "";

                    var results = SqlHelper.ExecuteDataset(conn, CommandType.Text, Resources.ReadMdfLdfDirectories, new[] { serverName });
                    if (results.Tables.Count > 0 && results.Tables[0].Rows.Count > 0)
                    {
                        directoryInfo.MdfPath = results.Tables[0].Rows[0].Field <string>("MDF");
                        directoryInfo.LdfPath = results.Tables[0].Rows[0].Field <string>("LDF");

                        // Doing this because when we use the path in SQL, it assumes the trailing slash already exists
                        if (!directoryInfo.MdfPath.EndsWith("\\"))
                        {
                            directoryInfo.MdfPath += "\\";
                        }
                        if (!directoryInfo.LdfPath.EndsWith("\\"))
                        {
                            directoryInfo.LdfPath += "\\";
                        }
                    }
                }
            }

            return(directoryInfo);
        }
Example #3
0
 public bool?ReadCheckIFISettings(DatabaseDirectoryInfo mdfldfDirs)
 {
     using (var conn = this.connectionFactory.GetPdbResourceConnection())
     {
         var dynamicParam = new DynamicParameters();
         dynamicParam.Add("@enabled", dbType: DbType.Boolean, direction: ParameterDirection.Output);
         dynamicParam.Add("@mdfPath", mdfldfDirs.MdfPath);
         dynamicParam.Add("@ldfPath", mdfldfDirs.LdfPath);
         conn.Execute(Names.Database.PdbResource + ".eddsdbo.CheckInstantFileInitialization", dynamicParam, commandType: CommandType.StoredProcedure);
         return(dynamicParam.Get <bool>("@enabled"));
     }
 }
        public void ExecuteTuningForkForServer()
        {
            //Arrange
            var serverName = "abc";
            var server     = new Server {
                ServerName = serverName
            };
            var databaseDirs = new DatabaseDirectoryInfo {
            };

            _sqlRepo.Setup(r => r.EnvironmentCheckRepository.ExecuteTuningForkSystem(server.ServerName)).Returns(_data);
            _sqlRepo.Setup(r => r.EnvironmentCheckRepository.SaveTuningForkSystemData(server.ServerName, _data));

            //Act
            var task = new EnvironmentCheckSqlConfigTask(_logger.Object, _sqlRepo.Object, 123);

            task.ExecuteTuningForkForServer(server, false);

            //Assert
            _sqlRepo.VerifyAll();
            Assert.That(_data.Rows.Count, Is.EqualTo(1));
        }
        public void ExecuteTuningForkForServer_GetIFISettings()
        {
            //Arrange
            var server = new Server {
                ServerName = "abc"
            };
            var databaseDirs = new DatabaseDirectoryInfo {
            };

            _sqlRepo.Setup(r => r.EnvironmentCheckRepository.ExecuteTuningForkSystem(server.ServerName)).Returns(_data);
            _sqlRepo.Setup(r => r.EnvironmentCheckRepository.SaveTuningForkSystemData(server.ServerName, _data));
            _sqlRepo.Setup(r => r.DeploymentRepository.ReadMdfLdfDirectories(server.ServerName)).Returns(databaseDirs);
            _sqlRepo.Setup(r => r.EnvironmentCheckRepository.ReadCheckIFISettings(databaseDirs)).Returns(true);

            //Act
            var task = new EnvironmentCheckSqlConfigTask(_logger.Object, _sqlRepo.Object, 123);

            task.ExecuteTuningForkForServer(server, true);

            //Assert
            _sqlRepo.VerifyAll();
            Assert.That(_data.Rows.Count, Is.EqualTo(2));
        }