public void ParallelRefreshWorksAsExpected() { // --- Arrange MsSqlConfigurationHandler.Reset(TimeSpan.FromMilliseconds(100)); var handler = new MsSqlConfigurationHandler(); // --- Act var refreshTime1 = MsSqlConfigurationHandler.LastRefreshTime; string value1; handler.GetConfigurationValue("Category1", "Key1", out value1); string value2; handler.SetConfigurationValue("Category1", "Key1", "New"); handler.GetConfigurationValue("Category1", "Key1", out value2); var refreshTime2 = MsSqlConfigurationHandler.LastRefreshTime; Thread.Sleep(100); string value3; Parallel.Invoke( () => handler.GetConfigurationValue("Category1", "Key1", out value3), () => handler.GetConfigurationValue("Category1", "Key1", out value3)); Thread.Sleep(100); handler.GetConfigurationValue("Category1", "Key1", out value3); var refreshTime3 = MsSqlConfigurationHandler.LastRefreshTime; // --- Assert refreshTime1.ShouldEqual(refreshTime2); value1.ShouldEqual(value2); refreshTime3.ShouldNotEqual(refreshTime2); value3.ShouldNotEqual(value2); }
public void ConfigurationIsNotRefreshedAfterHold() { // --- Arrange MsSqlConfigurationHandler.Reset(TimeSpan.FromMilliseconds(100)); var handler = new MsSqlConfigurationHandler(); // --- Act var refreshTime1 = MsSqlConfigurationHandler.LastRefreshTime; string value1; handler.GetConfigurationValue("Category1", "Key1", out value1); string value2; handler.SetConfigurationValue("Category1", "Key1", "New"); MsSqlConfigurationHandler.Hold(); handler.GetConfigurationValue("Category1", "Key1", out value2); var refreshTime2 = MsSqlConfigurationHandler.LastRefreshTime; Thread.Sleep(100); string value3; handler.GetConfigurationValue("Category1", "Key1", out value3); Thread.Sleep(100); handler.GetConfigurationValue("Category1", "Key1", out value3); var refreshTime3 = MsSqlConfigurationHandler.LastRefreshTime; // --- Assert refreshTime1.ShouldEqual(refreshTime2); value1.ShouldEqual(value2); refreshTime3.ShouldEqual(refreshTime2); value3.ShouldEqual(value2); }
public void SetConfigurationValueWorksWithNullValue() { // --- Arrange var handler = new MsSqlConfigurationHandler(); var ctx = ServiceManager.GetService <IConfigurationDataOperations>(); // --- Act handler.SetConfigurationValue("Category1", "Key1", null); // --- Assert var records = ctx.GetAllConfigurationValues(); records.ShouldHaveCountOf(5); }
public void SetConfigurationValueWorksWithUpdatedValue() { // --- Arrange var handler = new MsSqlConfigurationHandler(); var ctx = ServiceManager.GetService <IConfigurationDataOperations>(); // --- Act handler.SetConfigurationValue("Category1", "Key1", "Update OK"); // --- Assert var records = ctx.GetAllConfigurationValues(); records.ShouldHaveCountOf(6); string value; var found = handler.GetConfigurationValue("Category1", "Key1", out value); found.ShouldBeTrue(); value.ShouldEqual("Update OK"); }