public void GetPropertyCallDoesNotAffectAccessedOrGottenStatus() { var pd = new ParameterDatabase(); // Nothing in the database yet Assert.AreEqual(pd.Count, 0); var key = "Hi there"; var val = "Whatever"; // Set single parameter var p1 = new Parameter(key); pd.SetParameter(p1, val); Assert.AreEqual(pd.Count, 1); // Neither Accessed nor Gotten Assert.IsFalse(pd.Accessed.ContainsKey(key)); Assert.IsFalse(pd.Gotten.ContainsKey(key)); var propValue = pd.GetProperty(key); // Neither Accessed nor Gotten Assert.IsFalse(pd.Accessed.ContainsKey(key)); Assert.IsFalse(pd.Gotten.ContainsKey(key)); }
public void OneLayerAdHocParametersTest() { var pd = new ParameterDatabase(); Assert.AreEqual(pd.Count, 0); // Add some miscellaneous parameters, some valid, some not pd.SetParameter(new Parameter("Hi there"), "Whatever"); pd.SetParameter(new Parameter(new[] { "1", "2", "3" }), " Whatever "); // extra whitespace is trimmed pd.SetParameter(new Parameter(new[] { "a", "b", "c" }).Pop().Push("d"), "Whatever"); // This becomes a.b.d Assert.AreEqual(pd.Count, 3); foreach (var k in pd.Keys) { Assert.AreEqual(pd.GetProperty(k.ToString()), "Whatever"); context.WriteLine("{0} = {1}", k, pd[k]); } context.WriteLine(""); context.WriteLine("\n\n PRINTING ALL PARAMETERS \n\n"); using (var memStream = new MemoryStream()) { var temp_writer = new StreamWriter(memStream, Encoding.Default) { AutoFlush = true }; // let the database write to our stream pd.List(temp_writer, false); // No shadowed parameters here memStream.Position = 0; // now write those out for diagnostics context.WriteLine(new StreamReader(memStream).ReadToEnd()); } }