public void Roundtrip () { TableLayoutSettingsTypeConverter c = new TableLayoutSettingsTypeConverter (); object result; string sv = @"<?xml version=""1.0"" encoding=""utf-16""?><TableLayoutSettings>" + @"<Controls>" + @"<Control Name=""userNameLabel"" Row=""0"" RowSpan=""1"" Column=""0"" ColumnSpan=""1"" />" + @"<Control Name=""savePassword"" Row=""2"" RowSpan=""1"" Column=""1"" ColumnSpan=""1"" />" + @"<Control Name=""userName"" Row=""0"" RowSpan=""1"" Column=""1"" ColumnSpan=""1"" />" + @"<Control Name=""password"" Row=""1"" RowSpan=""1"" Column=""1"" ColumnSpan=""1"" />" + @"<Control Name=""passwordLabel"" Row=""1"" RowSpan=""1"" Column=""0"" ColumnSpan=""1"" />" + @"</Controls><Columns Styles=""AutoSize,0,Percent,100"" />" + @"<Rows Styles=""AutoSize,0,AutoSize,0,AutoSize,0"" />" + @"</TableLayoutSettings>"; result = c.ConvertFrom (null, null, sv); Assert.AreEqual (typeof (TableLayoutSettings), result.GetType(), "1"); TableLayoutSettings ts = (TableLayoutSettings)result; Assert.AreEqual (2, ts.ColumnStyles.Count, "2"); Assert.AreEqual (SizeType.AutoSize, ts.ColumnStyles[0].SizeType, "3"); Assert.AreEqual (0.0f, ts.ColumnStyles[0].Width, "4"); Assert.AreEqual (SizeType.Percent, ts.ColumnStyles[1].SizeType, "5"); Assert.AreEqual (100.0f, ts.ColumnStyles[1].Width, "6"); Assert.AreEqual (3, ts.RowStyles.Count, "7"); Assert.AreEqual (SizeType.AutoSize, ts.RowStyles[0].SizeType, "8"); Assert.AreEqual (0.0f, ts.RowStyles[0].Height, "9"); Assert.AreEqual (SizeType.AutoSize, ts.RowStyles[1].SizeType, "10"); Assert.AreEqual (0.0f, ts.RowStyles[1].Height, "11"); Assert.AreEqual (SizeType.AutoSize, ts.RowStyles[2].SizeType, "12"); Assert.AreEqual (0.0f, ts.RowStyles[2].Height, "13"); string rv = (string)c.ConvertTo (null, null, ts, typeof (string)); // We do not guarantee the order of <Controls>, but the length should be the same Assert.AreEqual (sv.Length, rv.Length, "roundtrip"); }
// Ohh for a more recent version on NUnit, (/and addin) to do row test cases! private void ConvertTo_Loop(CultureInfo culturePassedToConvertTo) { TableLayoutSettingsTypeConverter c = new TableLayoutSettingsTypeConverter(); int i = 0; foreach (TestRow row in tests) { if ((row.Directions & Directions.To) == 0) { //Console.WriteLine("ConvertTo_Loop skipping: " + row.Name); continue; } // String title = String.Format("#{0}, {1}", i, row.Name); try { String result = (String)c.ConvertTo(null, culturePassedToConvertTo, row.Settings, typeof(String)); Assert.AreEqual(row.XmlContent, result, row.Name); title = null; } finally { if (title != null) Console.WriteLine("ConvertTo_Loop row that failed ** : " + title); } ++i; } }