Imported Upstream version 5.3.21
[platform/upstream/libdb.git] / test / csharp / BTreeDatabaseConfigTest.cs
1 /*-
2  * See the file LICENSE for redistribution information.
3  *
4  * Copyright (c) 2009, 2012 Oracle and/or its affiliates.  All rights reserved.
5  *
6  */
7 using System;
8 using System.Collections.Generic;
9 using System.IO;
10 using System.Text;
11 using System.Xml;
12 using NUnit.Framework;
13 using BerkeleyDB;
14
15 namespace CsharpAPITest
16 {
17         [TestFixture]
18         public class BTreeDatabaseConfigTest : DatabaseConfigTest
19         {
20
21                 [TestFixtureSetUp]
22                 public override void SetUpTestFixture()
23                 {
24                         testFixtureName = "BTreeDatabaseConfigTest";
25                         base.SetUpTestfixture();
26                 }
27
28                 [Test]
29                 override public void TestConfigWithoutEnv()
30                 {
31                         testName = "TestConfigWithoutEnv";
32                         SetUpTest(false);
33                         XmlElement xmlElem = Configuration.TestSetUp(
34                             testFixtureName, testName);
35                         BTreeDatabaseConfig btreeConfig =
36                             new BTreeDatabaseConfig();
37                         Config(xmlElem, ref btreeConfig, true);
38                         Confirm(xmlElem, btreeConfig, true);
39                 }
40
41                 public static void Confirm(XmlElement
42                     xmlElement, BTreeDatabaseConfig btreeDBConfig,
43                     bool compulsory)
44                 {
45                         DatabaseConfig dbConfig = btreeDBConfig;
46                         Confirm(xmlElement, dbConfig, compulsory);
47
48                         // Confirm Btree database specific configuration
49                         Configuration.ConfirmDuplicatesPolicy(xmlElement,
50                             "Duplicates", btreeDBConfig.Duplicates, compulsory);
51                         Configuration.ConfirmBool(xmlElement,
52                             "NoReverseSplitting",
53                             btreeDBConfig.NoReverseSplitting, compulsory);
54                         Configuration.ConfirmBool(xmlElement,
55                             "UseRecordNumbers", btreeDBConfig.UseRecordNumbers,
56                             compulsory);
57                         Configuration.ConfirmCreatePolicy(xmlElement,
58                             "Creation", btreeDBConfig.Creation, compulsory);
59                         Configuration.ConfirmUint(xmlElement, "MinKeysPerPage",
60                             btreeDBConfig.MinKeysPerPage, compulsory);
61                 }
62
63                 public static void Config(XmlElement xmlElement,
64                     ref BTreeDatabaseConfig btreeDBConfig, bool compulsory)
65                 {
66                         uint minKeysPerPage = new uint();
67                         DatabaseConfig dbConfig = btreeDBConfig;
68                         Config(xmlElement, ref dbConfig, compulsory);
69
70                         // Configure specific fields/properties of Btree db
71                         Configuration.ConfigDuplicatesPolicy(xmlElement,
72                             "Duplicates", ref btreeDBConfig.Duplicates,
73                             compulsory);
74                         Configuration.ConfigBool(xmlElement,
75                             "NoReverseSplitting",
76                             ref btreeDBConfig.NoReverseSplitting, compulsory);
77                         Configuration.ConfigBool(xmlElement,
78                             "UseRecordNumbers",
79                             ref btreeDBConfig.UseRecordNumbers, compulsory);
80                         Configuration.ConfigCreatePolicy(xmlElement,
81                             "Creation", ref btreeDBConfig.Creation, compulsory);
82                         if (Configuration.ConfigUint(xmlElement,
83                             "MinKeysPerPage", ref minKeysPerPage, compulsory))
84                                 btreeDBConfig.MinKeysPerPage = minKeysPerPage;
85                 }
86         }
87 }