Update of /cvsroot/dotnetmock/dotnetmock/DotNetMock/Security
In directory sc8-pr-cvs1:/tmp/cvs-serv750/DotNetMock/Security
Added Files:
MockIPrincipal.cs
Log Message:
Added IPrincipal implementation
--- NEW FILE: MockIPrincipal.cs ---
using System;
using System.Collections;
using System.Security.Principal;
using DotNetMock;
namespace DotNetMock.Security
{
public class MockIPrincipal : MockObject, IPrincipal
{
private IIdentity _expectedIdentity = null;
private ExpectationCounter _isInRoleCalls = new ExpectationCounter("MockIPrincipal.IsIsRoleCalls");
private ArrayList _roles = null;
public MockIPrincipal()
{
this.name = "MockIPrincipal";
_roles = new ArrayList();
}
#region MockMethods
public void SetExpectedIdentity( IIdentity identity )
{
_expectedIdentity = identity;
}
public void SetExpectedIsInRoleCount( int count )
{
_isInRoleCalls.Expected = count;
}
public void AddExpectedRole( string role )
{
_roles.Add( role );
}
public void AddExpectedRoles( string[] roles )
{
for (int i = 0; i < roles.Length; i++)
{
AddExpectedRole( roles[i] );
}
}
#endregion
#region Implementation of IPrincipal
public bool IsInRole(string roleToSearch)
{
_isInRoleCalls.Inc();
bool found = false;
foreach (string role in _roles)
{
if (role.Equals(roleToSearch))
{
found = true;
}
}
return found;
}
public System.Security.Principal.IIdentity Identity
{
get
{
return _expectedIdentity;
}
}
#endregion
}
}
|