1/*- 2 * See the file LICENSE for redistribution information. 3 * 4 * Copyright (c) 2009 Oracle. All rights reserved. 5 * 6 */ 7using System; 8using System.Collections; 9using System.Collections.Generic; 10using System.IO; 11using System.Text; 12using System.Threading; 13using System.Xml; 14using NUnit.Framework; 15using BerkeleyDB; 16 17namespace CsharpAPITest 18{ 19 [TestFixture] 20 public class SecondaryDatabaseConfigTest 21 { 22 private string testFixtureHome; 23 private string testFixtureName; 24 private string testName; 25 private string testHome; 26 27 [TestFixtureSetUp] 28 public void RunBeforeTests() 29 { 30 testFixtureName = "SecondaryDatabaseConfigTest"; 31 testFixtureHome = "./TestOut/" + testFixtureName; 32 33 Configuration.ClearDir(testFixtureHome); 34 } 35 36 [Test] 37 virtual public void TestConfig() 38 { 39 testName = "TestConfig"; 40 testHome = testFixtureHome + "/" + testName; 41 string dbFileName = testHome + "/" + testName; 42 43 Configuration.ClearDir(testHome); 44 45 XmlElement xmlElem = Configuration.TestSetUp( 46 testFixtureName, testName); 47 48 49 // Open a primary btree database. 50 BTreeDatabaseConfig btreeDBConfig = 51 new BTreeDatabaseConfig(); 52 btreeDBConfig.Creation = CreatePolicy.IF_NEEDED; 53 BTreeDatabase btreeDB = BTreeDatabase.Open( 54 dbFileName, btreeDBConfig); 55 56 SecondaryDatabaseConfig secDBConfig = 57 new SecondaryDatabaseConfig(btreeDB, null); 58 Config(xmlElem, ref secDBConfig, true); 59 Confirm(xmlElem, secDBConfig, true); 60 btreeDB.Close(); 61 } 62 63 public static void Config(XmlElement xmlElement, 64 ref SecondaryDatabaseConfig secDBConfig, 65 bool compulsory) 66 { 67 Configuration.ConfigBool(xmlElement, "ImmutableKey", 68 ref secDBConfig.ImmutableKey, compulsory); 69 Configuration.ConfigBool(xmlElement, "Populate", 70 ref secDBConfig.Populate, compulsory); 71 } 72 73 public static void Confirm(XmlElement xmlElement, 74 SecondaryDatabaseConfig secDBConfig, 75 bool compulsory) 76 { 77 Configuration.ConfirmBool(xmlElement, "ImmutableKey", 78 secDBConfig.ImmutableKey, compulsory); 79 Configuration.ConfirmBool(xmlElement, "Populate", 80 secDBConfig.Populate, compulsory); 81 } 82 } 83} 84