@@ -6,7 +6,7 @@ namespace LightningDB.Tests;
66public class DatabaseTests : TestBase
77{
88
9- public void DatabaseShouldBeCreated ( )
9+ public void database_should_be_created ( )
1010 {
1111 using var env = CreateEnvironment ( ) ;
1212 const string dbName = "test" ;
@@ -25,7 +25,7 @@ public void DatabaseShouldBeCreated()
2525 }
2626 }
2727
28- public void DatabaseShouldBeClosed ( )
28+ public void database_should_be_closed ( )
2929 {
3030 using var env = CreateEnvironment ( ) ;
3131 env . Open ( ) ;
@@ -37,7 +37,7 @@ public void DatabaseShouldBeClosed()
3737 db . IsOpened . ShouldBeFalse ( ) ;
3838 }
3939
40- public void DatabaseFromCommittedTransactionShouldBeAccessible ( )
40+ public void database_from_committed_transaction_should_be_accessible ( )
4141 {
4242 using var env = CreateEnvironment ( ) ;
4343 env . Open ( ) ;
@@ -57,7 +57,7 @@ public void DatabaseFromCommittedTransactionShouldBeAccessible()
5757 }
5858 }
5959
60- public void NamedDatabaseNameExistsInMaster ( )
60+ public void named_database_name_exists_in_master ( )
6161 {
6262 using var env = CreateEnvironment ( ) ;
6363 env . MaxDatabases = 2 ;
@@ -80,7 +80,7 @@ public void NamedDatabaseNameExistsInMaster()
8080 }
8181 }
8282
83- public void ReadonlyTransactionOpenedDatabasesDontGetReused ( )
83+ public void readonly_transaction_opened_databases_dont_get_reused ( )
8484 {
8585 //This is here to assert that previous issues with the way manager
8686 //classes (since removed) worked don't happen anymore.
@@ -108,7 +108,7 @@ public void ReadonlyTransactionOpenedDatabasesDontGetReused()
108108 }
109109 }
110110
111- public void DatabaseShouldBeDropped ( )
111+ public void database_should_be_dropped ( )
112112 {
113113 using var env = CreateEnvironment ( ) ;
114114 env . MaxDatabases = 2 ;
@@ -133,7 +133,7 @@ public void DatabaseShouldBeDropped()
133133 }
134134 }
135135
136- public void TruncatingTheDatabase ( )
136+ public void truncating_the_database ( )
137137 {
138138 using var env = CreateEnvironment ( ) ;
139139 env . Open ( ) ;
@@ -160,7 +160,7 @@ public void TruncatingTheDatabase()
160160 }
161161 }
162162
163- public void DatabaseCanGetStats ( )
163+ public void database_can_get_stats ( )
164164 {
165165 using var env = CreateEnvironment ( ) ;
166166 env . Open ( ) ;
@@ -176,4 +176,51 @@ public void DatabaseCanGetStats()
176176 stats . PageSize . ShouldBe ( env . EnvironmentStats . PageSize ) ;
177177 stats . BTreeDepth . ShouldBe ( 1 ) ;
178178 }
179+
180+ public void can_get_database_flags ( )
181+ {
182+ using var env = CreateEnvironment ( ) ;
183+ env . MaxDatabases = 10 ; // Allow more named databases
184+ env . Open ( ) ;
185+
186+ // Test with the transaction-based GetFlags method using a named database with IntegerKey flag
187+ using ( var txn = env . BeginTransaction ( ) )
188+ {
189+ using var db = txn . OpenDatabase ( "intkey" , new DatabaseConfiguration
190+ {
191+ Flags = DatabaseOpenFlags . Create | DatabaseOpenFlags . IntegerKey
192+ } ) ;
193+
194+ // Test using explicit transaction
195+ var flags = db . GetFlags ( txn ) ;
196+ flags . ShouldNotBe ( DatabaseOpenFlags . None ) ;
197+
198+ // The flags should include DatabaseOpenFlags.IntegerKey
199+ flags . HasFlag ( DatabaseOpenFlags . IntegerKey ) . ShouldBeTrue ( ) ;
200+ txn . Commit ( ) ;
201+ }
202+
203+ // Test default database (should have no special flags)
204+ using ( var txn = env . BeginTransaction ( ) )
205+ {
206+ using var db = txn . OpenDatabase ( null , new DatabaseConfiguration { Flags = DatabaseOpenFlags . Create } ) ;
207+
208+ var flags = db . GetFlags ( txn ) ;
209+ flags . ShouldBe ( DatabaseOpenFlags . None ) ;
210+ txn . Commit ( ) ;
211+ }
212+
213+ // Test DuplicatesSort flag
214+ using ( var txn = env . BeginTransaction ( ) )
215+ {
216+ using var db = txn . OpenDatabase ( "dupsort" , new DatabaseConfiguration
217+ {
218+ Flags = DatabaseOpenFlags . Create | DatabaseOpenFlags . DuplicatesSort
219+ } ) ;
220+
221+ var flags = db . GetFlags ( txn ) ;
222+ flags . HasFlag ( DatabaseOpenFlags . DuplicatesSort ) . ShouldBeTrue ( ) ;
223+ txn . Commit ( ) ;
224+ }
225+ }
179226}
0 commit comments