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 SecondaryQueueDatabaseConfigTest 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 = "SecondaryQueueDatabaseConfigTest"; 31 testFixtureHome = "./TestOut/" + testFixtureName; 32 33 Configuration.ClearDir(testFixtureHome); 34 } 35 36 [Test] 37 public void TestConfig() 38 { 39 testName = "TestConfig"; 40 testHome = testFixtureHome + "/" + testName; 41 string dbFileName = testHome + "/" + testName + ".db"; 42 43 Configuration.ClearDir(testHome); 44 XmlElement xmlElem = Configuration.TestSetUp( 45 testFixtureName, testName); 46 47 // Open a primary btree database. 48 QueueDatabaseConfig queueDBConfig = 49 new QueueDatabaseConfig(); 50 queueDBConfig.Creation = CreatePolicy.IF_NEEDED; 51 QueueDatabase queueDB = QueueDatabase.Open( 52 dbFileName, queueDBConfig); 53 54 SecondaryQueueDatabaseConfig secDBConfig = 55 new SecondaryQueueDatabaseConfig(queueDB, null); 56 57 Config(xmlElem, ref secDBConfig, true); 58 Confirm(xmlElem, secDBConfig, true); 59 60 // Close the primary btree database. 61 queueDB.Close(); 62 } 63 64 public static void Confirm(XmlElement xmlElement, 65 SecondaryQueueDatabaseConfig secQueueDBConfig, 66 bool compulsory) 67 { 68 SecondaryDatabaseConfig secDBConfig = 69 secQueueDBConfig; 70 SecondaryDatabaseConfigTest.Confirm(xmlElement, 71 secDBConfig, compulsory); 72 73 // Confirm secondary hash database specific configuration. 74 Configuration.ConfirmCreatePolicy(xmlElement, 75 "Creation", secQueueDBConfig.Creation, compulsory); 76 Configuration.ConfirmUint(xmlElement, 77 "ExtentSize", secQueueDBConfig.ExtentSize, compulsory); 78 Configuration.ConfirmUint(xmlElement, "Length", 79 secQueueDBConfig.Length, compulsory); 80 Configuration.ConfirmInt(xmlElement, "PadByte", 81 secQueueDBConfig.PadByte, compulsory); 82 } 83 84 public static void Config(XmlElement xmlElement, 85 ref SecondaryQueueDatabaseConfig secQueueDBConfig, 86 bool compulsory) 87 { 88 uint uintValue = new uint(); 89 int intValue = new int(); 90 SecondaryDatabaseConfig secConfig = secQueueDBConfig; 91 SecondaryDatabaseConfigTest.Config(xmlElement, 92 ref secConfig, compulsory); 93 94 // Configure specific fields/properties of Queue database 95 Configuration.ConfigCreatePolicy(xmlElement, "Creation", 96 ref secQueueDBConfig.Creation, compulsory); 97 if (Configuration.ConfigUint(xmlElement, "Length", 98 ref uintValue, compulsory)) 99 secQueueDBConfig.Length = uintValue; 100 if (Configuration.ConfigInt(xmlElement, "PadByte", 101 ref intValue, compulsory)) 102 secQueueDBConfig.PadByte = intValue; 103 if (Configuration.ConfigUint(xmlElement, "ExtentSize", 104 ref uintValue, compulsory)) 105 secQueueDBConfig.ExtentSize = uintValue; 106 } 107 } 108} 109 110