public void CanConvertTo ()
		{
			TableLayoutSettingsTypeConverter c = new TableLayoutSettingsTypeConverter ();

			Assert.IsTrue (c.CanConvertTo (null, typeof (string)), "1");
			Assert.IsFalse (c.CanConvertTo (null, typeof (int)), "2");
			Assert.IsFalse (c.CanConvertTo (null, typeof (float)), "3");
			Assert.IsFalse (c.CanConvertTo (null, typeof (object)), "4");
		}
		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");
		}
Example #3
0
		void ISerializable.GetObjectData (SerializationInfo si, StreamingContext context)
		{
			TableLayoutSettingsTypeConverter conv = new TableLayoutSettingsTypeConverter ();
			string text = conv.ConvertToInvariantString (this);
			si.AddValue ("SerializedString", text);
		}
		// Ohh for a more recent version on NUnit, (/and addin) to do row test cases!
		private void ConvertFrom_Loop(CultureInfo culturePassedToConvertFrom)
		{
			TableLayoutSettingsTypeConverter c = new TableLayoutSettingsTypeConverter();

			int i = 0;
			foreach (TestRow row in tests) {
				if ((row.Directions & Directions.From) == 0) {
					//Console.WriteLine("ConvertFrom_Loop skipping: " + row.Name);
					continue;
				}
				//
				String title = String.Format("#{0}, {1}", i, row.Name);
				try {
					TableLayoutSettings result = (TableLayoutSettings)
						c.ConvertFrom(null, culturePassedToConvertFrom, row.XmlContent);
					Assert_AreEqual(row.Settings, result, row.Name);
					title = null;
				} finally {
					if (title != null)
						Console.WriteLine("ConvertFrom_Loop row that failed ** : " + title);
				}
				++i;
			}
		}
		public void ConvertFrom_notCheckResults_Bad_NoNumericElement()
		{
			TableLayoutSettingsTypeConverter c = new TableLayoutSettingsTypeConverter();

			try {
				// It's manually broken content, so it's ok to fail...
				c.ConvertFromInvariantString(XmlSettingsF_NoNumericElement);
			} catch (IndexOutOfRangeException) {
				// Both fail here.
			}
		}
		public void ConvertFrom_notCheckResults_CommaDecimalPoint_RowDataFirst()
		{
			// The bug in MSFT's output mentioned above causes 99.9% to be written
			// culture sensitively as "99,9".
			// Test whether ConvertFrom crashes on reading such bad content.
			//
			TableLayoutSettingsTypeConverter c = new TableLayoutSettingsTypeConverter();

			c.ConvertFromInvariantString(XmlSettingsEDecimalOneItemCommaDecimalPoint_RowDataFirst);
		}
		public void ConvertFrom_notCheckResults_Empty()
		{
			TableLayoutSettingsTypeConverter c = new TableLayoutSettingsTypeConverter();

			c.ConvertFromInvariantString(XmlSettingsEmpty);
			// Mono fails (reports problem with value in Enum.Parse).
			// This is valid content (as output both platforms) so it should work.
		}
		public void ConvertFrom_notCheckResults()
		{
			TableLayoutSettingsTypeConverter c = new TableLayoutSettingsTypeConverter();

			c.ConvertFromInvariantString(XmlSettingsB);
			c.ConvertFromInvariantString(XmlSettingsC);
			c.ConvertFromInvariantString(XmlSettingsD);
			c.ConvertFromInvariantString(XmlSettingsEDecimalOneItem);
			c.ConvertFromInvariantString(XmlSettingsF);
		}
		public void ConvertFrom_NOT()
		{
			TableLayoutSettingsTypeConverter c = new TableLayoutSettingsTypeConverter();

			try {
				c.ConvertFrom(9999);
				Assert.Fail("should have thrown -- " + "#1");
			} catch (Exception ex) {
				Assert_IsInstanceOfType(typeof(NotSupportedException), ex, "ExType -- " + "#1");
			}
			try {
				c.ConvertFrom(null);
				Assert.Fail("should have thrown -- " + "#2");
			} catch (Exception ex) {
				Assert_IsInstanceOfType(typeof(NotSupportedException), ex, "ExType -- " + "#2");
			}
			try {
				c.ConvertFrom(String.Empty);
				Assert.Fail("should have thrown -- " + "#3");
			} catch (Exception ex) {
				Assert_IsInstanceOfType(typeof(global::System.Xml.XmlException), ex, "ExType -- " + "#3");
			}
		}
		private static void ConvertTo_WithCurrentCulture(CultureInfo culture, String expectedXml)
		{
			TableLayoutSettingsTypeConverter c = new TableLayoutSettingsTypeConverter();

			String result;
			//
			TableLayoutSettings tls = CreateSettingsEDecimalOneItem();
			CultureInfo previous = global::System.Threading.Thread.CurrentThread.CurrentCulture;
			global::System.Threading.Thread.CurrentThread.CurrentCulture = culture;
			try {
				result = c.ConvertToString(null, culture, tls);
				Assert.AreEqual(expectedXml, result, "Culture passed");
				//
				result = c.ConvertToString(null, null, tls);
				Assert.AreEqual(expectedXml, result, "No culture passed");
				//
				result = c.ConvertToInvariantString(tls);
				Assert.AreEqual(expectedXml, result, "Invariant");
			} finally {
				global::System.Threading.Thread.CurrentThread.CurrentCulture = previous;
			}
		}
		public void ConvertTo()
		{
			TableLayoutSettingsTypeConverter c = new TableLayoutSettingsTypeConverter();

			TableLayoutSettings tls;
			String result;
			//
			tls = CreateSettingsEmpty();
			result = c.ConvertToInvariantString(tls);
			Assert.AreEqual(XmlSettingsEmpty, result, "#1-empty");
			//
			tls = CreateSettingsB();
			result = c.ConvertToInvariantString(tls);
			Assert.AreEqual(XmlSettingsB, result, "#B");
			//
			tls = CreateSettingsC();
			result = c.ConvertToInvariantString(tls);
			Assert.AreEqual(XmlSettingsC, result, "#C");
			//
			tls = CreateSettingsD();
			result = c.ConvertToInvariantString(tls);
			Assert.AreEqual(XmlSettingsD, result, "#D");
			//
			tls = CreateSettingsEDecimalOneItem();
			result = c.ConvertToInvariantString(tls);
			Assert.AreEqual(XmlSettingsEDecimalOneItem, result, "#DDecimal");
			//
			tls = CreateSettingsF();
			result = c.ConvertToInvariantString(tls);
			Assert.AreEqual(XmlSettingsF, result, "#E");
		}