public void Test() { var tddHandler = new TDDHandler(); CustomObjectSettings.FooClassInstance = new FooClass(); CustomObjectSettings.SecureFooClassInstance = new FooClass(); Random rand = new MyRandom(); Int32 fooValue = rand.NextInt32(); Int32 secureFooValue = rand.NextInt32(); CustomObjectSettings.FooClassInstance.IntValue = fooValue; CustomObjectSettings.SecureFooClassInstance.IntValue = secureFooValue; FooEnum fooEnumValue = (FooEnum)rand.Next((Int32)FooEnum.One, (Int32)FooEnum.Ten); FooEnum secureFooEnumValue = (FooEnum)rand.Next((Int32)FooEnum.One, (Int32)FooEnum.Ten); CustomObjectSettings.FooEnumValue = fooEnumValue; CustomObjectSettings.SecureFooEnumValue = secureFooEnumValue; CustomObjectSettings.SaveSettings(); CustomObjectSettings.FooClassInstance = null; CustomObjectSettings.SecureFooClassInstance = null; CustomObjectSettings.FooEnumValue = FooEnum.Zero; CustomObjectSettings.SecureFooEnumValue = FooEnum.Zero; CustomObjectSettings.LoadSettings(); Assert.IsNotNull(CustomObjectSettings.FooClassInstance); Assert.IsTrue(typeof(FooClass) == CustomObjectSettings.FooClassInstance.GetType()); Assert.AreEqual(CustomObjectSettings.FooClassInstance.IntValue, fooValue); Assert.AreEqual(CustomObjectSettings.FooEnumValue, fooEnumValue); Assert.IsNotNull(CustomObjectSettings.SecureFooClassInstance); Assert.IsTrue(typeof(FooClass) == CustomObjectSettings.SecureFooClassInstance.GetType()); Assert.AreEqual(CustomObjectSettings.SecureFooClassInstance.IntValue, secureFooValue); Assert.AreEqual(CustomObjectSettings.SecureFooEnumValue, secureFooEnumValue); tddHandler.CheckErrors(); }
//------------------------------------------------------------------------------ public void RandomizeValues() { Random rand = new MyRandom(); m_Boolean = rand.NextBoolean(); m_Char = rand.NextChar(); m_Byte = (Byte)rand.Next(Byte.MinValue, Byte.MaxValue); m_SByte = (SByte)rand.Next(SByte.MinValue, SByte.MaxValue); m_Int16 = (Int16)rand.Next(Int16.MinValue, Int16.MaxValue); m_UInt16 = (UInt16)rand.Next(UInt16.MinValue, UInt16.MaxValue); m_Int32 = rand.NextInt32(); m_UInt32 = (UInt32)rand.Next(0, Int32.MaxValue); m_Int64 = rand.NextInt32(); m_UInt64 = (UInt64)rand.Next(0, Int32.MaxValue); m_Single = rand.NextSingle(); m_Double = rand.NextDouble(); m_Decimal = rand.NextDecimal(); m_DateTime = rand.NextDateTime(); m_String = rand.NextString(8); m_Enum = (EEnumValues)rand.Next(0, 10); if (rand.NextBoolean()) { m_NullableInt32 = null; } else { m_NullableInt32 = rand.NextInt32(); } m_NullString = null; m_Dict = new Dictionary <String, Object>(); m_Dict.Add("one", 1); m_Dict.Add("two", 2); m_Dict.Add("three", 3); m_List = new List <Int32>(); for (int i = 0; i < 10; i++) { var value = rand.NextInt32(); m_List.Add(value); } m_FooList = new List <Foo>(); for (int i = 0; i < 10; i++) { var foo = new Foo(); foo.Value = rand.NextInt32(); m_FooList.Add(foo); } }
//------------------------------------------------------------------------------ public static void Shuffle <T>(this List <T> list) { MyRandom rng = new MyRandom(); int n = list.Count; while (n > 1) { n--; int k = rng.Next(n + 1); T value = list[k]; list[k] = list[n]; list[n] = value; } }
public void TestRandomValues() { var tddHandler = new TDDHandler(); var settings1_1 = new DynamicSettings1(); var plugin1_1 = settings1_1.GetObjectPlugin <ILocalDynamicSettingsPlugin>(); var dsn1 = "name1"; var dsn2 = "name2"; var rand = new MyRandom(); var randValue = rand.NextDouble(); var randEnumValue = (EEnumValues)rand.Next((int)EEnumValues.Ten); plugin1_1.SetSetting(dsn1, randValue); plugin1_1.SetSetting(dsn2, randEnumValue); var storedValue1 = plugin1_1.GetSetting <double>(dsn1); Assert.AreEqual(randValue, storedValue1); var storedEnum1 = plugin1_1.GetSetting <EEnumValues>(dsn2); Assert.AreEqual(randEnumValue, storedEnum1); plugin1_1.SaveSettings(); var settings1_2 = new DynamicSettings1(); var plugin1_2 = settings1_2.GetObjectPlugin <ILocalDynamicSettingsPlugin>(); plugin1_2.LoadSettings(); var storedValue2 = plugin1_2.GetSetting <double>(dsn1); Assert.AreEqual(randValue, storedValue2); var storedEnum2 = plugin1_2.GetSetting <EEnumValues>(dsn2); Assert.AreEqual(randEnumValue, storedEnum2); tddHandler.CheckErrors(); }
public void TestDynamicSettingsCustomOrder() { var tddHandler = new TDDHandler(); //============================== var settings1_1 = new DynamicSettings1(); var plugin1_1 = settings1_1.GetObjectPlugin <ILocalDynamicSettingsPlugin>(); const int settingsCount = 50; const string settingNameFormat = "setting{0}"; var settingsOrder = new List <string>(); for (int i = 0; i < settingsCount; i++) { var settingName = String.Format(settingNameFormat, i); plugin1_1.SetSetting(settingName, i); settingsOrder.Add(settingName); } plugin1_1.SaveSettings(); var settings1_2 = new DynamicSettings1(); var plugin1_2 = settings1_2.GetObjectPlugin <ILocalDynamicSettingsPlugin>(); plugin1_2.LoadSettings(); // set custom filter settingsOrder.Shuffle(); plugin1_2.SetSettingsOrder(settingsOrder); int index = 0; foreach (var ds in plugin1_2) { Assert.AreEqual(settingsOrder[index], ds); index++; } //============================== // save and restore settings in the new instance // check settings custom order settingsOrder.Shuffle(); plugin1_2.SetSettingsOrder(settingsOrder); plugin1_2.SaveSettings(); var settings1_3 = new DynamicSettings1(); var plugin1_3 = settings1_3.GetObjectPlugin <ILocalDynamicSettingsPlugin>(); plugin1_3.LoadSettings(); // compare with custom order CompareDynamicSettings(plugin1_2, plugin1_3); plugin1_2.SetSettingsOrder(null); plugin1_3.SetSettingsOrder(null); // compare with default order CompareDynamicSettings(plugin1_2, plugin1_3); //============================== // set empty custom filter plugin1_2.SetSettingsOrder(new List <string>()); Assert.AreEqual(0, plugin1_2.Count); //============================== // reset custom filter plugin1_2.SetSettingsOrder(null); index = 0; foreach (var ds in plugin1_2) { Assert.AreEqual(String.Format(settingNameFormat, index), ds); index++; } //============================== // add new dynamic setting when custom filter was set const string newDynamicSettingName = "new"; plugin1_2.SetSettingsOrder(settingsOrder); plugin1_2.SetSetting(newDynamicSettingName, 1); index = 0; foreach (var ds in plugin1_2) { if (index < settingsOrder.Count) { Assert.AreEqual(settingsOrder[index], ds); index++; } else { Assert.AreEqual(newDynamicSettingName, ds); } } //============================== // delete existing dynamic setting when custom filter was set var rng = new MyRandom(); var randomTargetIndex = rng.Next(settingsCount); var targetSettingName = String.Format(settingNameFormat, randomTargetIndex); plugin1_2.SetSettingsOrder(settingsOrder); var preCount = plugin1_2.Count; plugin1_2.DeleteSetting(targetSettingName); settingsOrder.Remove(targetSettingName); Assert.AreEqual(preCount - 1, plugin1_2.Count); Assert.AreEqual(settingsOrder.Count, plugin1_2.Count); index = 0; foreach (var ds in plugin1_2) { Assert.AreEqual(settingsOrder[index], ds); index++; } tddHandler.CheckErrors(); }