static void Main()
    {
        Console.WriteLine("#if NET_4_0");
        bool isMono = Type.GetType("Mono.Runtime", false) != null;

        Console.WriteLine(@"
// THIS IS AUTOGENERATED DO NOT EDIT
//
// Generated on {0} runtime v{1}
//
// Authors:
//    Ben Maurer ([email protected])
//
// Copyright (C) 2005-2010 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// ""Software""), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
// 
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//

using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using NUnit.Framework;
using MonoTests.Helpers;

namespace MonoTests.System.Web.UI.WebControls {{
[TestFixture]
public class RepeatInfo_Autogen {{
", isMono ? "Mono" : "Microsoft .NET", Environment.Version);
        int num = 0;

        int [][] combos =
        {
            new int [] { 0, 0 },
            new int [] { 0, 1 },
            new int [] { 0, 2 },
            new int [] { 0, 5 },
            new int [] { 1, 0 },
            new int [] { 1, 5 },
            new int [] { 2, 4 },
            new int [] { 2, 7 },
            new int [] { 3, 9 },
            new int [] { 3, 7 }
        };
        int             ntests = 1 << 7;
        int             lcount = -1;
        RepeatDirection d;
        RepeatLayout    l;
        bool            oti, hdr, ftr, sep;
        StringBuilder   sb = new StringBuilder();

        for (int i = 0; i < ntests; i++)
        {
            d = (RepeatDirection)(i & (1 << 0));
            if ((i % 2) == 0)
            {
                lcount++;
            }
            l   = (RepeatLayout)(lcount % 4);
            oti = (i & (1 << 3)) == 0;
            hdr = (i & (1 << 4)) == 0;
            ftr = (i & (1 << 5)) == 0;
            sep = (i & (1 << 6)) == 0;

            foreach (int [] col_cnt in combos)
            {
                string nm = String.Format("RepeatInfo_{0}cols_{1}itms_{2}_{3}{4}{5}{6}{7}",
                                          col_cnt [0],
                                          col_cnt [1],
                                          d == RepeatDirection.Vertical ? "vert" : "horiz",
                                          GetLayoutName(l),
                                          oti ? "_otrtblimp" : String.Empty,
                                          hdr ? "_hdr" : String.Empty,
                                          ftr ? "_ftr" : String.Empty,
                                          sep ? "_sep" : String.Empty);
                sb.Length = 0;
                sb.AppendFormat(@"
	public void {0} ()
	{{
		// cols              : {1}
		// cnt               : {2}
		// RepeatDirection   : {3}
		// RepeatLayout      : {4}
		// OuterTableImplied : {5}
		// Header            : {6}
		// Footer            : {7}
		// Separator         : {8}
",
                                nm,
                                col_cnt [0],
                                col_cnt [1],
                                d,
                                l,
                                oti,
                                hdr,
                                ftr,
                                sep
                                );
                try {
                    string exp = RepeatInfoUser.DoTest(col_cnt [0], col_cnt [1], d, l, oti, hdr, ftr, sep).Replace(@"""", @"""""");
                    BuildTestCode(sb, null, col_cnt [0], col_cnt [1], d, l, oti, hdr, ftr, sep, exp, num++);
                } catch (Exception ex) {
                    BuildTestCode(sb, ex, col_cnt [0], col_cnt [1], d, l, oti, hdr, ftr, sep, null, num++);
                }
                Console.WriteLine(sb.ToString());
            }
        }
        Console.WriteLine(@"
}
}
#endif");
    }
Exemple #2
0
    static void Main()
    {
#if NET_2_0
        Console.WriteLine("#if NET_2_0");
#else
        Console.WriteLine("#if !NET_2_0");
#endif

        Console.WriteLine(@"
// THIS IS AUTOGENERATED DO NOT EDIT
//
// Authors:
//    Ben Maurer ([email protected])
//
// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// ""Software""), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
// 
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//

using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using NUnit.Framework;
namespace MonoTests.System.Web.UI.WebControls {
[TestFixture]
public class RepeatInfo_Autogen {
	public class RepeatInfoUser : IRepeatInfoUser {

		private bool footer;
		private bool header;
		private bool separators;
		private int count;
		private int counter;


		public RepeatInfoUser (bool header, bool footer, bool separators, int count)
		{
			this.footer = footer;
			this.header = header;
			this.separators = separators;
			this.count = count;
		}

		static HtmlTextWriter GetWriter ()
		{
			StringWriter sw = new StringWriter ();
			sw.NewLine = ""\n"";
			return new HtmlTextWriter (sw);
		}

		public static string DoTest (int cols, int cnt, RepeatDirection d, RepeatLayout l, bool OuterTableImplied, bool hdr, bool ftr, bool sep)
		{
			HtmlTextWriter htw = GetWriter ();
			RepeatInfo ri = new RepeatInfo ();
			ri.RepeatColumns = cols;
			ri.RepeatDirection = d;
			ri.RepeatLayout = l;
			ri.OuterTableImplied = OuterTableImplied;
			Style s = new Style ();
			if (cols != 3)
				s.CssClass = ""mainstyle"";

			ri.RenderRepeater (htw, new RepeatInfoUser (hdr, ftr, sep, cnt), s, new DataList ());
			return htw.InnerWriter.ToString ();
		}


		public bool HasFooter {
			get { return footer; }
		}

		public bool HasHeader {
			get { return header; }
		}
		
		public bool HasSeparators {
			get { return separators; }
		}

		public int RepeatedItemCount {
			get { return count; }
		}

		public Style GetItemStyle (ListItemType itemType, int repeatIndex)
		{
			Style s = new Style ();
			s.CssClass = String.Format (""{0}{1}"", itemType, repeatIndex);
			return s;
		}

		public void RenderItem (ListItemType itemType, int repeatIndex, RepeatInfo repeatInfo, HtmlTextWriter writer)
		{
			writer.Write (""({0},{1},{2})"", counter++, itemType, repeatIndex);
		}
	}"    );


        int      num    = 0;
        int [][] combos =
        {
            new int [] { 0, 0 },
            new int [] { 0, 1 },
            new int [] { 0, 2 },
            new int [] { 0, 5 },
            new int [] { 1, 0 },
            new int [] { 1, 5 },
            new int [] { 2, 4 },
            new int [] { 2, 7 },
            new int [] { 3, 9 },
            new int [] { 3, 7 }
        };


        for (int i = 0; i < (1 << 6); i++)
        {
            RepeatDirection d   = (RepeatDirection)(i & (1 << 0));
            RepeatLayout    l   = (RepeatLayout)((i & (1 << 1)) >> 1);
            bool            oti = (i & (1 << 2)) == 0;
            bool            hdr = (i & (1 << 3)) == 0;
            bool            ftr = (i & (1 << 4)) == 0;
            bool            sep = (i & (1 << 5)) == 0;

            foreach (int [] col_cnt in combos)
            {
                string nm = String.Format("RepeatInfo_{0}cols_{1}itms_{2}_{3}{4}{5}{6}{7}",
                                          col_cnt [0],
                                          col_cnt [1],
                                          d == RepeatDirection.Vertical ? "vert" : "horiz",
                                          l == RepeatLayout.Flow ? "flow" : "tbl",
                                          oti ? "_otrtblimp" : "",
                                          hdr ? "_hdr" : "",
                                          ftr ? "_ftr" : "",
                                          sep ? "_sep" : "");
                Console.WriteLine(@"
	[Test]
	public void {0} ()
	{{
        // cols              : {1}
		// cnt               : {2}
		// RepeatDirection   : {3}
		// RepeatLayout      : {4}
		// OuterTableImplied : {5}
		// Header            : {6}
		// Footer            : {7}
		// Separator         : {8}
",
                                  nm,
                                  col_cnt [0],
                                  col_cnt [1],
                                  d,
                                  l,
                                  oti,
                                  hdr,
                                  ftr,
                                  sep
                                  );
                string exp = RepeatInfoUser.DoTest(col_cnt [0], col_cnt [1], d, l, oti, hdr, ftr, sep).Replace(@"""", @"""""");
                Console.WriteLine(@"
		string v = RepeatInfoUser.DoTest ({0}, {1}, RepeatDirection.{2}, RepeatLayout.{3}, {4}, {5}, {6}, {7});
		string exp = @""{8}"";
		Assert.AreEqual (exp, v, ""#{9}"");
	}}
",

                                  col_cnt [0],
                                  col_cnt [1],
                                  d,
                                  l,
                                  oti ? "true" : "false",
                                  hdr ? "true" : "false",
                                  ftr ? "true" : "false",
                                  sep ? "true" : "false",
                                  exp,
                                  num++
                                  );
            }
        }
        Console.WriteLine(@"
}
}
#endif");
    }