151 lines
3.5 KiB
C#
151 lines
3.5 KiB
C#
/***********************************************************************
|
|
*
|
|
* Copyright (C) 2005-2006 Novell, Inc. All Rights Reserved.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; version 2.1
|
|
* of the License.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Library Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, Novell, Inc.
|
|
*
|
|
* To contact Novell about this file by physical or electronic mail,
|
|
* you may find current contact information at www.novell.com.
|
|
*
|
|
***********************************************************************/
|
|
|
|
#if DEBUG
|
|
using System;
|
|
using System.Text;
|
|
using System.Collections;
|
|
//using System.InvalidOperationException;
|
|
|
|
|
|
using NUnit.Framework;
|
|
|
|
using sscs.common;
|
|
|
|
namespace sscs.cache
|
|
{
|
|
|
|
[TestFixture]
|
|
public class TestSecretStore
|
|
{
|
|
|
|
User theuser = null;
|
|
UnixUserIdentifier UserId = null;
|
|
SecretStore mysec = null;
|
|
KeyChain mykc = null;
|
|
byte[] secbyte = null;
|
|
Secret mysecret = null;
|
|
|
|
[SetUp]
|
|
public void Init()
|
|
{
|
|
|
|
mykc = new KeyChain("TestingID");
|
|
|
|
|
|
mysecret = new Secret();
|
|
mysecret.SetKey("testkey");
|
|
secbyte = Encoding.ASCII.GetBytes("NOVELL");
|
|
mysecret.SetValue(secbyte);
|
|
|
|
mykc.AddSecret(mysecret);
|
|
|
|
|
|
UserId = new UnixUserIdentifier(420);
|
|
theuser = new UnixUser(UserId);
|
|
mysec = new SecretStore(theuser);
|
|
|
|
}
|
|
|
|
|
|
[Test]
|
|
public void TestIntialState()
|
|
{
|
|
Assert.AreEqual(0, mysec.GetNumKeyChains());
|
|
// Assert.AreEqual(0, mysec.getRefCount());
|
|
Assert.AreEqual(0, mysec.GetSecretStoreState());
|
|
|
|
}
|
|
|
|
|
|
[Test]
|
|
public void TestAddKeyChain()
|
|
{
|
|
mysec.AddKeyChain(mykc);
|
|
|
|
Assert.AreEqual(1, mysec.GetNumKeyChains());
|
|
|
|
Secret returnsec = (mysec.GetKeyChain("TestingID")).GetSecret("testkey");;
|
|
|
|
Assert.AreEqual("NOVELL", Encoding.ASCII.GetString(returnsec.GetValue("testkey")));
|
|
|
|
|
|
}
|
|
|
|
|
|
[Test]
|
|
public void TestRemoveKeyChain()
|
|
{
|
|
mysec.RemoveKeyChain("TestingID");
|
|
Assert.AreEqual(0, mysec.GetNumKeyChains());
|
|
|
|
Assert.AreEqual(false, mysec.CheckIfKeyChainExists("TestingID"));
|
|
|
|
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(KeyChainDoesNotExistException))]
|
|
public void TestRemoveKeyChainAgain()
|
|
{
|
|
mysec.GetKeyChain("TestingID");
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
public void TestGetKeyChainEnumerator()
|
|
{
|
|
KeyChain mykc1 = new KeyChain("kc1");
|
|
KeyChain mykc2 = new KeyChain("kc2");
|
|
KeyChain mykc3 = new KeyChain("kc3");
|
|
|
|
Secret mysecret1 = new Secret("key1", secbyte);
|
|
Secret mysecret2 = new Secret("key2", secbyte);
|
|
Secret mysecret3 = new Secret("key3", secbyte);
|
|
|
|
mykc1.AddSecret(mysecret1);
|
|
mykc2.AddSecret(mysecret2);
|
|
mykc3.AddSecret(mysecret3);
|
|
|
|
mysec.AddKeyChain(mykc1);
|
|
mysec.AddKeyChain(mykc2);
|
|
mysec.AddKeyChain(mykc3);
|
|
|
|
Assert.AreEqual(3, mysec.GetNumKeyChains());
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|