2 // EnvironmentTest.cs - NUnit Test Cases for Environment
5 // Sebastien Pouliot <sebastien@ximian.com>
7 // (C) 2004-2005 Novell (http://www.novell.com)
10 using NUnit.Framework;
12 using System.Collections;
14 namespace MonoTests.System {
17 public class EnvironmentTest {
19 private void ExpandEquals (string toExpand, string toMatch)
21 string expanded = Environment.ExpandEnvironmentVariables (toExpand);
22 Assert.AreEqual (toMatch, expanded, "ExpandEnvironmentVariables(" + toExpand + ").Match");
25 private void ExpandStartsEnds (string toExpand, string start, string end)
27 string expanded = Environment.ExpandEnvironmentVariables (toExpand);
28 Assert.IsTrue (expanded.StartsWith (start), "ExpandEnvironmentVariables(" + toExpand + ").Start");
\r
29 Assert.IsTrue (expanded.EndsWith (end), "ExpandEnvironmentVariables(" + toExpand + ").End");
32 private void ExpandDifferent (string toExpand)
34 string expanded = Environment.ExpandEnvironmentVariables (toExpand);
35 Assert.IsFalse ((toExpand == expanded), "ExpandEnvironmentVariables(" + toExpand + ").Different");
39 public void ExpandEnvironmentVariables_UnknownVariable ()
41 ExpandEquals ("Hello %UNKNOWN_ENV_VAR% :-)", "Hello %UNKNOWN_ENV_VAR% :-)");
45 public void ExpandEnvironmentVariables_KnownVariable ()
47 ExpandStartsEnds ("Path %PATH% :-)", "Path ", " :-)");
51 public void ExpandEnvironmentVariables_NotVariable ()
53 ExpandEquals ("100% :-)", "100% :-)");
57 public void ExpandEnvironmentVariables_Alone ()
59 ExpandDifferent ("%PATH%");
63 public void ExpandEnvironmentVariables_End ()
65 ExpandStartsEnds ("Hello %PATH%", "Hello ", "");
69 public void ExpandEnvironmentVariables_None ()
71 ExpandEquals ("Hello Mono", "Hello Mono");
75 public void ExpandEnvironmentVariables_EmptyVariable ()
77 ExpandEquals ("Hello %% Mono", "Hello %% Mono");
81 public void ExpandEnvironmentVariables_Double ()
83 ExpandDifferent ("%PATH%%PATH%");
84 string path = Environment.GetEnvironmentVariable ("PATH");
86 string expanded = Environment.ExpandEnvironmentVariables ("%PATH%%PATH%");
\r
87 Assert.AreEqual (path + path, expanded, "#01");
92 public void ExpandEnvironmentVariables_ComplexExpandable ()
94 ExpandStartsEnds ("Hello %%%PATH%%%", "Hello %%", "%%");
98 public void ExpandEnvironmentVariables_ExpandableAndNonExpandable ()
100 string path = Environment.GetEnvironmentVariable ("PATH");
101 string expanded=Environment.ExpandEnvironmentVariables("%PATH% PATH%");
\r
102 Assert.AreEqual (path + " PATH%", expanded);
107 public void ExpandEnvironmentVariables_ExpandableWithTrailingPercent ()
109 string path = Environment.GetEnvironmentVariable ("PATH");
110 string expanded=Environment.ExpandEnvironmentVariables("%PATH% %");
111 Assert.AreEqual (path+" %",expanded);
115 public void ExpandEnvironmentVariables_ComplexExpandable2 ()
117 ExpandStartsEnds ("Hello %%PATH%%%", "Hello %", "%%");
121 public void GetEnvironmentVariables ()
\r
123 IDictionary d = Environment.GetEnvironmentVariables ();
\r
124 Assert.IsTrue ((d is Hashtable), "Hashtable");
\r
125 Assert.IsFalse (d.IsFixedSize, "IsFixedSize");
\r
126 Assert.IsFalse (d.IsReadOnly, "IsReadOnly");
\r
127 Assert.IsFalse (d.IsSynchronized, "IsSynchronized");
\r
131 public void GetCommandLineArgs ()
133 string[] args = Environment.GetCommandLineArgs ();
134 Assert.IsNotNull (args, "not null");
135 Assert.IsTrue (((args.Length > 0) && (args.Length < 256)), "reasonable");
136 Assert.IsNotNull (args [0], "application");
141 [ExpectedException (typeof (ArgumentException))]
142 public void GetEnvironmentVariable_Target ()
144 Environment.GetEnvironmentVariable ("MONO", (EnvironmentVariableTarget)Int32.MinValue);
148 [ExpectedException (typeof (ArgumentException))]
\r
149 public void GetEnvironmentVariables_Target ()
151 Environment.GetEnvironmentVariables ((EnvironmentVariableTarget)Int32.MinValue);
155 [ExpectedException (typeof (ArgumentException))]
\r
156 public void SetEnvironmentVariable_Target ()
158 Environment.SetEnvironmentVariable ("MONO", "GO", (EnvironmentVariableTarget)Int32.MinValue);