2 * See the file LICENSE for redistribution information.
4 * Copyright (c) 2009, 2012 Oracle and/or its affiliates. All rights reserved.
8 using System.Collections.Generic;
12 using NUnit.Framework;
15 namespace CsharpAPITest
18 public class RecnoDatabaseConfigTest : DatabaseConfigTest
22 public override void SetUpTestFixture()
24 testFixtureName = "RecnoDatabaseConfigTest";
25 base.SetUpTestfixture();
29 override public void TestConfigWithoutEnv()
31 testName = "TestConfigWithoutEnv";
33 XmlElement xmlElem = Configuration.TestSetUp(
34 testFixtureName, testName);
36 RecnoDatabaseConfig recnoDBConfig =
37 new RecnoDatabaseConfig();
38 Config(xmlElem, ref recnoDBConfig, true);
39 Confirm(xmlElem, recnoDBConfig, true);
43 public void TestAppend()
47 testName = "TestAppend";
49 string dbFileName = testHome + "/" + testName + ".db";
51 RecnoDatabaseConfig recnoConfig =
52 new RecnoDatabaseConfig();
53 recnoConfig.Creation = CreatePolicy.IF_NEEDED;
54 recnoConfig.Append = new AppendRecordDelegate(
56 RecnoDatabase recnoDB = RecnoDatabase.Open(
57 dbFileName, recnoConfig);
58 recno = recnoDB.Append(new DatabaseEntry(
59 ASCIIEncoding.ASCII.GetBytes("data")));
61 KeyValuePair<DatabaseEntry, DatabaseEntry> pair;
63 new DatabaseEntry(BitConverter.GetBytes(recno)));
64 Assert.AreEqual(ASCIIEncoding.ASCII.GetBytes("data"),
70 public void AppendRecord(DatabaseEntry data, uint recno)
72 data.Data = BitConverter.GetBytes(recno);
75 public static void Confirm(XmlElement xmlElement,
76 RecnoDatabaseConfig recnoDBConfig, bool compulsory)
78 DatabaseConfig dbConfig = recnoDBConfig;
79 Confirm(xmlElement, dbConfig, compulsory);
81 // Confirm Recno database specific configuration
82 Configuration.ConfirmString(xmlElement, "BackingFile",
83 recnoDBConfig.BackingFile, compulsory);
84 Configuration.ConfirmCreatePolicy(xmlElement,
85 "Creation", recnoDBConfig.Creation, compulsory);
86 Configuration.ConfirmInt(xmlElement, "Delimiter",
87 recnoDBConfig.Delimiter, compulsory);
88 Configuration.ConfirmUint(xmlElement, "Length",
89 recnoDBConfig.Length, compulsory);
90 Configuration.ConfirmInt(xmlElement, "PadByte",
91 recnoDBConfig.PadByte, compulsory);
92 Configuration.ConfirmBool(xmlElement, "Renumber",
93 recnoDBConfig.Renumber, compulsory);
94 Configuration.ConfirmBool(xmlElement, "Snapshot",
95 recnoDBConfig.Snapshot, compulsory);
98 public static void Config(XmlElement xmlElement,
99 ref RecnoDatabaseConfig recnoDBConfig, bool compulsory)
101 int intValue = new int();
102 uint uintValue = new uint();
103 DatabaseConfig dbConfig = recnoDBConfig;
104 Config(xmlElement, ref dbConfig, compulsory);
106 // Configure specific fields/properties of Recno database
107 Configuration.ConfigCreatePolicy(xmlElement, "Creation",
108 ref recnoDBConfig.Creation, compulsory);
109 if (Configuration.ConfigInt(xmlElement, "Delimiter",
110 ref intValue, compulsory))
111 recnoDBConfig.Delimiter = intValue;
112 if (Configuration.ConfigUint(xmlElement, "Length",
113 ref uintValue, compulsory))
114 recnoDBConfig.Length = uintValue;
115 if (Configuration.ConfigInt(xmlElement, "PadByte",
116 ref intValue, compulsory))
117 recnoDBConfig.PadByte = intValue;
118 Configuration.ConfigBool(xmlElement, "Renumber",
119 ref recnoDBConfig.Renumber, compulsory);
120 Configuration.ConfigBool(xmlElement, "Snapshot",
121 ref recnoDBConfig.Snapshot, compulsory);