public void ShouldSetPortHintFromEnvironmentWhenAvailable()
        {
            // Arrange
            using var resetter = new AutoResetter <int?>(
                      StoreCurrentPortHint,
                      RestorePortHint);
            var expected = GetRandomInt(15000, 20000);

            Environment.SetEnvironmentVariable(
                TempDbMySqlServerSettings.EnvironmentVariables.PORT_HINT,
                expected.ToString()
                );
            Expect(
                Environment.GetEnvironmentVariable(
                    TempDbMySqlServerSettings.EnvironmentVariables.PORT_HINT
                    )
                ).To.Equal(expected.ToString());
            // Act
            var sut = new TempDbMySqlServerSettings()
            {
                Options =
                {
                    DefaultSchema = GetRandomAlphaString(8, 8)
                },
                InnodbFlushLogAtTrxCommit = 2,
                SlowQueryLog = 0
            };

            // Assert
            Expect(sut.Options.PortHint)
            .To.Equal(expected);
        }
Пример #2
0
 /// <summary>
 /// Create a TempDbMySql instance with provided options, an action to run before initializing and
 /// zero or more creation scripts
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="beforeInit"></param>
 /// <param name="creationScripts"></param>
 public TempDBMySql(
     TempDbMySqlServerSettings settings,
     Action <object> beforeInit,
     params string[] creationScripts
     ) : base(
         settings,
         o => BeforeInit(o as TempDBMySqlBase <MySqlConnection>, beforeInit, settings),
         creationScripts
         )
 {
 }
Пример #3
0
        public void WhenOptimizedForPerformance_ShouldReturnSelf()
        {
            // arrange
            var sut = new TempDbMySqlServerSettings();

            // act
            var result = sut.OptimizeForPerformance();

            // assert
            Expect(result).To.Be.An.Instance.Of <TempDbMySqlServerSettings>();
        }
Пример #4
0
        public void WhenOptimizedForPerformanceOnSSD_ShouldIncreaseIOCapacity()
        {
            // arrange
            var sut = new TempDbMySqlServerSettings();

            // act
            sut.OptimizeForPerformance(isRunningOnSsdDisk: true);

            // assert
            Expect(sut.InnoDbIoCapacity).To.Equal(3000);
        }
Пример #5
0
 /// <summary>
 /// Create a TempDbMySql instance with provided options and zero or more creation scripts
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="creationScripts"></param>
 public TempDBMySql(
     TempDbMySqlServerSettings settings,
     params string[] creationScripts
     )
     : base(
         settings,
         o =>
 {
 },
         creationScripts)
 {
 }
Пример #6
0
        public void WhenOptimizedForPerformance_ShouldUpdateConfigAppropriately()
        {
            // arrange
            var sut = new TempDbMySqlServerSettings();

            // act
            sut.OptimizeForPerformance();

            // assert
            Expect(sut.GeneralLog).To.Equal(0);
            Expect(sut.SlowQueryLog).To.Equal(0);
            Expect(sut.SyncBinLog).To.Equal(0);
            Expect(sut.InnoDbIoCapacity).To.Equal(200);
            Expect(sut.InnodbThreadConcurrency).To.Equal(0);
            Expect(sut.InnodbFlushLogAtTimeout).To.Equal(10);
            Expect(sut.InnodbFlushLogAtTrxCommit).To.Equal(2);
        }
        public void WhenCustomSettingsSetToNull_ShouldStillGenerate()
        {
            // Arrange
            var defaultIni = new INIFile.INIFile();

            defaultIni.Parse(DEFAULTS);
            var sut      = Create();
            var settings = new TempDbMySqlServerSettings {
                CustomConfiguration = null
            };

            // Act
            var rawResult = sut.GenerateFor(settings);
            var resultIni = new INIFile.INIFile();

            resultIni.Parse(rawResult);

            // Assert
            Expect(defaultIni.Sections)
            .To.Be.Equivalent.To(resultIni.Sections);
        }
        public void WhenCustomSettingIsDuplicateOfFirstClassSetting_ShouldOverrideFirstClassSetting()
        {
            // Arrange
            var defaultIni = new INIFile.INIFile();

            defaultIni.Parse(DEFAULTS);
            var sut      = Create();
            var settings = new TempDbMySqlServerSettings
            {
                MaxConnections      = -GetRandomInt(),
                CustomConfiguration = { ["max_connections"] = GetRandomInt(1000, 2000).ToString() }
            };

            // Act
            var rawResult = sut.GenerateFor(settings);
            var resultIni = new INIFile.INIFile();

            resultIni.Parse(rawResult);

            // Assert
            var resultValue = resultIni.GetValue(MySqlConfigGenerator.SECTION, "max_connections");

            Expect(resultValue).To.Equal(settings.CustomConfiguration["max_connections"]);
        }
        public void WhenHasCustomSettings_ShouldEmitCustomSettings()
        {
            // Arrange
            var defaultIni = new INIFile.INIFile();

            defaultIni.Parse(DEFAULTS);
            var sut      = Create();
            var settings = new TempDbMySqlServerSettings();
            var key      = GetRandomString(32);
            var value    = GetRandomString(32);

            settings.CustomConfiguration[key] = value;

            // Act
            var rawResult = sut.GenerateFor(settings);
            var resultIni = new INIFile.INIFile();

            resultIni.Parse(rawResult);

            // Assert
            var resultValue = resultIni.GetValue(MySqlConfigGenerator.SECTION, key);

            Expect(resultValue).To.Equal(value);
        }