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);
162 [ExpectedException (typeof (ArgumentNullException))]
163 public void SetEnvironmentVariable_NameNull ()
165 Environment.SetEnvironmentVariable (null, "A");
169 [ExpectedException (typeof (ArgumentException))]
170 public void SetEnvironmentVariable_NameEmpty ()
172 Environment.SetEnvironmentVariable ("", "A");
176 [ExpectedException (typeof (ArgumentException))]
177 public void SetEnvironmentVariable_NameZeroChar ()
179 Environment.SetEnvironmentVariable ("\0", "A");
183 public void SetEnvironmentVariable ()
186 Environment.SetEnvironmentVariable ("A1", "B1");
187 Environment.SetEnvironmentVariable ("A2", "B2");
188 Environment.SetEnvironmentVariable ("A3", "B3");
189 Assert.AreEqual (Environment.GetEnvironmentVariable ("A1"), "B1");
190 Assert.AreEqual (Environment.GetEnvironmentVariable ("A2"), "B2");
191 Assert.AreEqual (Environment.GetEnvironmentVariable ("A3"), "B3");
194 Environment.SetEnvironmentVariable ("A3", "B4");
195 Assert.AreEqual (Environment.GetEnvironmentVariable ("A3"), "B4");
198 Environment.SetEnvironmentVariable ("A1", null);
199 Assert.AreEqual (Environment.GetEnvironmentVariables ()["A1"], null);
200 Environment.SetEnvironmentVariable ("A2", "");
201 Assert.AreEqual (Environment.GetEnvironmentVariables ()["A2"], null);
202 Environment.SetEnvironmentVariable ("A3", "\0");
203 Assert.AreEqual (Environment.GetEnvironmentVariables ()["A3"], null);