2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / nunit20 / util / GuiOptions.cs
1 #region Copyright (c) 2002-2003, James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole, Philip A. Craig
2 /************************************************************************************
3 '
4 ' Copyright  2002-2003 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole
5 ' Copyright  2000-2002 Philip A. Craig
6 '
7 ' This software is provided 'as-is', without any express or implied warranty. In no 
8 ' event will the authors be held liable for any damages arising from the use of this 
9 ' software.
10
11 ' Permission is granted to anyone to use this software for any purpose, including 
12 ' commercial applications, and to alter it and redistribute it freely, subject to the 
13 ' following restrictions:
14 '
15 ' 1. The origin of this software must not be misrepresented; you must not claim that 
16 ' you wrote the original software. If you use this software in a product, an 
17 ' acknowledgment (see the following) in the product documentation is required.
18 '
19 ' Portions Copyright  2002-2003 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole
20 ' or Copyright  2000-2002 Philip A. Craig
21 '
22 ' 2. Altered source versions must be plainly marked as such, and must not be 
23 ' misrepresented as being the original software.
24 '
25 ' 3. This notice may not be removed or altered from any source distribution.
26 '
27 '***********************************************************************************/
28 #endregion
29
30 namespace NUnit.Util
31 {
32         using System;
33         using System.Text;
34         using Codeblast;
35
36         public class GuiOptions : CommandLineOptions
37         {
38                 private bool isInvalid = false; 
39
40                 [Option(Short="?", Description = "Display help")]
41                 public bool help = false;
42
43                 [Option(Description = "Project configuration to load")]
44                 public string config;
45
46                 [Option(Description = "Suppress loading of last project")]
47                 public bool noload;
48
49                 [Option(Description = "Automatically run the loaded project")]
50                 public bool run;
51
52                 [Option(Description = "Fixture to test")]
53                 public string fixture;
54
55                 public GuiOptions(String[] args) : base(args) 
56                 {}
57
58                 protected override void InvalidOption(string name)
59                 { isInvalid = true; }
60
61                 public string Assembly
62                 {
63                         get 
64                         {
65                                 return (string)Parameters[0];
66                         }
67                 }
68
69                 public bool IsAssembly
70                 {
71                         get 
72                         {
73                                 return ParameterCount == 1;
74                         }
75                 }
76
77                 public bool Validate()
78                 {
79                         return (NoArgs || ParameterCount <= 1) && !isInvalid;
80                 }
81
82                 public override string GetHelpText()
83                 {
84                         const string initialText =
85                                 "NUNIT-GUI [inputfile] [options]\r\rRuns a set of NUnit tests from the console. You may specify\ran assembly or a project file of type .nunit as input.\r\rOptions:\r";
86
87                         const string finalText = 
88                                 "\rOptions that take values may use an equal sign, a colon\ror a space to separate the option from its value.";
89
90                         return initialText + base.GetHelpText() + finalText;
91                 }
92
93         }
94 }