Merge pull request #398 from xcrash/feature/wcf.mex.https
[mono.git] / mcs / class / corlib / Test / System.Security.Principal / WindowsPrincipalTest.cs
1 //
2 // WindowsPrincipalTest.cs - NUnit Test Cases for WindowsPrincipal
3 //
4 // Author:
5 //      Sebastien Pouliot (sebastien@ximian.com)
6 //
7 // (C) 2003 Motus Technologies Inc. (http://www.motus.com)
8 // (C) 2004 Novell (http://www.novell.com)
9 //
10
11 using NUnit.Framework;
12 using System;
13 using System.Runtime.Serialization;
14 using System.Security.Principal;
15
16 namespace MonoTests.System.Security.Principal {
17
18         [TestFixture]
19         public class WindowsPrincipalTest {
20
21                 [Test]
22                 [ExpectedException (typeof (ArgumentNullException))]
23                 public void ConstructorNull () 
24                 {
25                         WindowsPrincipal p = new WindowsPrincipal (null);
26                 }
27
28                 [Test]
29                 public void Current () 
30                 {
31                         WindowsPrincipal p = new WindowsPrincipal (WindowsIdentity.GetCurrent ());
32
33                         bool test;
34                         // we don't Assert as we don't know the current user roles
35                         test = p.IsInRole (WindowsBuiltInRole.Administrator);
36                         test = p.IsInRole (WindowsBuiltInRole.BackupOperator);
37                         test = p.IsInRole (WindowsBuiltInRole.Guest);
38                         test = p.IsInRole (WindowsBuiltInRole.PowerUser);
39                         test = p.IsInRole (WindowsBuiltInRole.Replicator);
40                         test = p.IsInRole (WindowsBuiltInRole.User);
41
42                         // doesn't work under XP in a workgroup (ArgumentException)
43 //                      test = p.IsInRole (WindowsBuiltInRole.AccountOperator);
44 //                      test = p.IsInRole (WindowsBuiltInRole.PrintOperator);
45 //                      test = p.IsInRole (WindowsBuiltInRole.SystemOperator);
46                 }
47
48                 [Test]
49                 public void Anonymous () 
50                 {
51                         WindowsPrincipal p = new WindowsPrincipal (WindowsIdentity.GetAnonymous ());
52
53                         Assert.IsFalse (p.IsInRole (WindowsBuiltInRole.Administrator), "Administrator");
54                         Assert.IsFalse (p.IsInRole (WindowsBuiltInRole.BackupOperator), "BackupOperator");
55                         Assert.IsFalse (p.IsInRole (WindowsBuiltInRole.Guest), "Guest");
56                         Assert.IsFalse (p.IsInRole (WindowsBuiltInRole.PowerUser), "PowerUser");
57                         Assert.IsFalse (p.IsInRole (WindowsBuiltInRole.Replicator), "Replicator");
58                         Assert.IsFalse (p.IsInRole (WindowsBuiltInRole.User), "User");
59
60                         // doesn't work under XP in a workgroup (ArgumentException)
61 //                      Assert ("AccountOperator", !p.IsInRole (WindowsBuiltInRole.AccountOperator));
62 //                      Assert ("PrintOperator", !p.IsInRole (WindowsBuiltInRole.PrintOperator));
63 //                      Assert ("SystemOperator", !p.IsInRole (WindowsBuiltInRole.SystemOperator));
64                 }
65
66                 [Test]
67                 //[ExpectedException (typeof (ArgumentNullException))]
68                 public void IsInRole_Null ()
69                 {
70                         WindowsPrincipal p = new WindowsPrincipal (WindowsIdentity.GetAnonymous ());
71                         Assert.IsFalse (p.IsInRole ((string)null));
72                 }
73
74                 [Test]
75                 public void Interface () 
76                 {
77                         WindowsPrincipal wp = new WindowsPrincipal (WindowsIdentity.GetAnonymous ());
78
79                         IPrincipal p = (wp as IPrincipal);
80                         Assert.IsNotNull (p);
81                 }
82         }
83 }