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.Generic; 9using System.IO; 10using System.Text; 11using System.Xml; 12using NUnit.Framework; 13using BerkeleyDB; 14 15namespace CsharpAPITest 16{ 17 [TestFixture] 18 public class QueueDatabaseConfigTest : DatabaseConfigTest 19 { 20 private string testFixtureHome; 21 private string testFixtureName; 22 private string testName; 23 24 [TestFixtureSetUp] 25 public void RunBeforeTests() 26 { 27 testFixtureName = "QueueDatabaseConfigTest"; 28 testFixtureHome = "./TestOut/" + testFixtureName; 29 30 Configuration.ClearDir(testFixtureHome); 31 } 32 33 [Test] 34 new public void TestConfigWithoutEnv() 35 { 36 testName = "TestConfigWithoutEnv"; 37 XmlElement xmlElem = Configuration.TestSetUp( 38 testFixtureName, testName); 39 QueueDatabaseConfig queueDBConfig = 40 new QueueDatabaseConfig(); 41 Config(xmlElem, ref queueDBConfig, true); 42 Confirm(xmlElem, queueDBConfig, true); 43 } 44 45 public static void Confirm(XmlElement xmlElement, 46 QueueDatabaseConfig queueDBConfig, bool compulsory) 47 { 48 DatabaseConfig dbConfig = queueDBConfig; 49 Confirm(xmlElement, dbConfig, compulsory); 50 51 // Confirm Queue database specific configuration 52 Configuration.ConfirmBool(xmlElement, "ConsumeInOrder", 53 queueDBConfig.ConsumeInOrder, compulsory); 54 Configuration.ConfirmCreatePolicy(xmlElement, "Creation", 55 queueDBConfig.Creation, compulsory); 56 Configuration.ConfirmUint(xmlElement, "Length", 57 queueDBConfig.Length, compulsory); 58 Configuration.ConfirmInt(xmlElement, "PadByte", 59 queueDBConfig.PadByte, compulsory); 60 Configuration.ConfirmUint(xmlElement, "ExtentSize", 61 queueDBConfig.ExtentSize, compulsory); 62 } 63 64 public static void Config(XmlElement xmlElement, 65 ref QueueDatabaseConfig queueDBConfig, bool compulsory) 66 { 67 uint uintValue = new uint(); 68 int intValue = new int(); 69 DatabaseConfig dbConfig = queueDBConfig; 70 Config(xmlElement, ref dbConfig, compulsory); 71 72 // Configure specific fields/properties of Queue database 73 Configuration.ConfigBool(xmlElement, "ConsumeInOrder", 74 ref queueDBConfig.ConsumeInOrder, compulsory); 75 Configuration.ConfigCreatePolicy(xmlElement, "Creation", 76 ref queueDBConfig.Creation, compulsory); 77 if (Configuration.ConfigUint(xmlElement, "Length", 78 ref uintValue, compulsory)) 79 queueDBConfig.Length = uintValue; 80 if (Configuration.ConfigInt(xmlElement, "PadByte", 81 ref intValue, compulsory)) 82 queueDBConfig.PadByte = intValue; 83 if (Configuration.ConfigUint(xmlElement, "ExtentSize", 84 ref uintValue, compulsory)) 85 queueDBConfig.ExtentSize = uintValue; 86 } 87 } 88} 89