CASA/c_micasad/test/cache/TestKeyChain.cs
2006-02-01 17:48:29 +00:00

146 lines
3.6 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 TestKeyChain
{
Secret mysec;
KeyChain mykc;
string secval;
byte[] secbyte;
[SetUp]
public void Init()
{
mykc = new KeyChain("TestingID");
secval= "novell123";
secbyte = Encoding.ASCII.GetBytes(secval);
mysec = new Secret();
mysec.SetKey("testkey");
mysec.SetValue(secbyte);
}
[Test]
public void TestAddSecret()
{
mykc.AddSecret(mysec);
Secret returnsecret = mykc.GetSecret("testkey");
Assert.AreEqual("novell123", Encoding.ASCII.GetString(returnsecret.GetValue("testkey")));
}
[Test]
public void TestAddSecretWithDup()
{
//Add one more with same secret id
byte[] newvalue = Encoding.ASCII.GetBytes("miCASA");
mysec.SetValue(newvalue);
mykc.AddSecret(mysec);
Secret returnsecret = mykc.GetSecret("testkey");
Assert.AreEqual("miCASA", Encoding.ASCII.GetString(returnsecret.GetValue("testkey")));
}
[Test]
[ExpectedException(typeof(SecretNotFoundException))]
public void TestRemoveSecret()
{
mykc.RemoveSecret("testkey");
//Try and get the same.
//Secret sec = mykc.GetSecret("testkey");
}
[Test]
[ExpectedException(typeof(InvalidOperationException))]
public void TestGetAllSecretsWhenNone()
{
// IDictionaryEnumerator myenum = (IDictionaryEnumerator)mykc.GetAllSecrets();
//Object temp = myenum.Current;
}
[Test]
public void TestGetAllSecrets()
{
int count = 0;
byte[] val1 = Encoding.ASCII.GetBytes("val1");
byte[] val2 = Encoding.ASCII.GetBytes("val2");
byte[] val3 = Encoding.ASCII.GetBytes("val3");
Secret sec1 = new Secret("key1", val1);
Secret sec2 = new Secret("key2", val2);
Secret sec3 = new Secret("key3", val3);
mykc.AddSecret(sec1);
mykc.AddSecret(sec2);
mykc.AddSecret(sec3);
IDictionaryEnumerator myenum =(IDictionaryEnumerator) mykc.GetAllSecrets();
while(myenum.MoveNext())
{
count++;
}
Assert.AreEqual(3, mykc.GetNumSecrets());
Assert.AreEqual(3, count);
}
}
}
#endif