/*********************************************************************** * * Copyright (C) 2005-2006 Novell, Inc. 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