CASA/c_micasad/test/common/TestSessionManager.cs
2005-10-11 19:51:00 +00:00

155 lines
3.5 KiB
C#

#if DEBUG
using System;
using System.Text;
using System.Collections;
//using System.InvalidOperationException;
using NUnit.Framework;
using sscs.common;
using sscs.cache;
namespace sscs.common
{
[TestFixture]
public class TestSessionManager
{
User theuser = null;
UnixUserIdentifier UserId = null;
UnixUserIdentifier root = null;
SecretStore mysec = null;
SecretStore anothersec = null;
KeyChain mykc1 = null;
KeyChain mykc2 = null;
byte[] secbyte1 = null;
byte[] secbyte2 = null;
Secret mysecret1 = null;
Secret mysecret2 = null;
SessionManager sesman ;
[SetUp]
public void Init()
{
sesman = SessionManager.GetSessionManager;
mykc1 = new KeyChain("k1");
mykc2 = new KeyChain("k2");
mysecret1 = new Secret();
mysecret2 = new Secret();
mysecret1.SetKey("key1");
mysecret2.SetKey("key2");
secbyte1 = Encoding.ASCII.GetBytes("NOVELL");
secbyte2 = Encoding.ASCII.GetBytes("IBM");
mysecret1.SetValue(secbyte1);
mysecret2.SetValue(secbyte2);
mykc1.AddSecret(mysecret1);
mykc2.AddSecret(mysecret2);
UserId = new UnixUserIdentifier(420);
root = new UnixUserIdentifier(0);
//theuser = new UnixUser(UserId);
}
[Test]
public void TestCreateUserSession()
{
anothersec = SessionManager.CreateUserSession(root);
mysec = SessionManager.CreateUserSession(UserId);
//Assert.AreEqual(1, mysec.getRefCount());
//Assert.AreEqual(1, anothersec.getRefCount());
Assert.AreEqual(true, SessionManager.CheckIfUserSessionExists(UserId));
Assert.AreEqual(true, SessionManager.CheckIfUserSessionExists(root));
}
[Test]
public void TestAddtoSession()
{
SecretStore s1 = SessionManager.GetUserSecretStore(UserId);
SecretStore s2 = SessionManager.GetUserSecretStore(root);
s1.AddKeyChain(mykc1);
s2.AddKeyChain(mykc2);
s1 = SessionManager.GetUserSecretStore(UserId);
s2 = SessionManager.GetUserSecretStore(root);
KeyChain returnK1 = s1.GetKeyChain("k1");
Secret returnS1 = returnK1.GetSecret("key1");
KeyChain returnK2 = s2.GetKeyChain("k2");
Secret returnS2 = returnK2.GetSecret("key2");
Assert.AreEqual("NOVELL", Encoding.ASCII.GetString(returnS1.GetValue()));
Assert.AreEqual("IBM",Encoding.ASCII.GetString(returnS2.GetValue()) );
}
[Test]
[ExpectedException(typeof(KeyChainDoesNotExistException))]
public void TestInvalidAccess()
{
SecretStore s1 = SessionManager.GetUserSecretStore(UserId);
//SecretStore s2 = SessionManager.GetUserSecretStore(root);
s1.GetKeyChain("k2");
}
[Test]
public void TestRemoveUserSession()
{
SessionManager.RemoveUserSession(UserId, true);
Assert.AreEqual(false, SessionManager.CheckIfUserSessionExists(UserId));
//TBD :Make the ref count more than one and delete call remove sesison once.
//The call it once more.. only second time it should remove the session entry.
}
}
}
#endif