4
4
5
5
namespace LightningDB . Tests ;
6
6
7
- [ Collection ( "SharedFileSystem" ) ]
8
- public class EnvironmentTests : IDisposable
7
+ public class EnvironmentTests ( SharedFileSystem fileSystem ) : TestBase ( fileSystem , false )
9
8
{
10
- private readonly string _path , _pathCopy , _pathSpecial ;
11
- private LightningEnvironment _env ;
12
-
13
- public EnvironmentTests ( SharedFileSystem fileSystem )
14
- {
15
- _path = fileSystem . CreateNewDirectoryForTest ( ) ;
16
- _pathCopy = fileSystem . CreateNewDirectoryForTest ( ) ;
17
- _pathSpecial = fileSystem . CreateNewDirectoryForSpecialCharacterTest ( ) ;
18
- }
19
-
20
- public void Dispose ( )
21
- {
22
- _env ? . Dispose ( ) ;
23
- _env = null ;
24
- }
25
-
26
9
[ Fact ]
27
10
public void EnvironmentShouldBeCreatedIfWithoutFlags ( )
28
11
{
29
- _env = new LightningEnvironment ( _path ) ;
12
+ CreateEnvironment ( ) ;
30
13
_env . Open ( ) ;
31
14
}
32
15
@@ -37,7 +20,7 @@ public void EnvironmentCreatedFromConfig()
37
20
const int maxDatabaseExpected = 2 ;
38
21
const int maxReadersExpected = 3 ;
39
22
var config = new EnvironmentConfiguration { MapSize = mapExpected , MaxDatabases = maxDatabaseExpected , MaxReaders = maxReadersExpected } ;
40
- _env = new LightningEnvironment ( _path , config ) ;
23
+ CreateEnvironment ( config : config ) ;
41
24
Assert . Equal ( mapExpected , _env . MapSize ) ;
42
25
Assert . Equal ( maxDatabaseExpected , _env . MaxDatabases ) ;
43
26
Assert . Equal ( maxReadersExpected , _env . MaxReaders ) ;
@@ -46,15 +29,15 @@ public void EnvironmentCreatedFromConfig()
46
29
[ Fact ]
47
30
public void StartingTransactionBeforeEnvironmentOpen ( )
48
31
{
49
- _env = new LightningEnvironment ( _path ) ;
32
+ CreateEnvironment ( ) ;
50
33
Assert . Throws < InvalidOperationException > ( ( ) => _env . BeginTransaction ( ) ) ;
51
34
}
52
35
53
36
[ Fact ]
54
37
public void CanGetEnvironmentInfo ( )
55
38
{
56
39
const long mapSize = 1024 * 1024 * 200 ;
57
- _env = new LightningEnvironment ( _path , new EnvironmentConfiguration
40
+ CreateEnvironment ( config : new EnvironmentConfiguration
58
41
{
59
42
MapSize = mapSize
60
43
} ) ;
@@ -67,7 +50,7 @@ public void CanGetEnvironmentInfo()
67
50
public void CanGetLargeEnvironmentInfo ( )
68
51
{
69
52
const long mapSize = 1024 * 1024 * 1024 * 3L ;
70
- _env = new LightningEnvironment ( _path , new EnvironmentConfiguration
53
+ CreateEnvironment ( config : new EnvironmentConfiguration
71
54
{
72
55
MapSize = mapSize
73
56
} ) ;
@@ -80,12 +63,12 @@ public void CanGetLargeEnvironmentInfo()
80
63
public void MaxDatabasesWorksThroughConfigIssue62 ( )
81
64
{
82
65
var config = new EnvironmentConfiguration { MaxDatabases = 2 } ;
83
- _env = new LightningEnvironment ( _path , config ) ;
66
+ CreateEnvironment ( config : config ) ;
84
67
_env . Open ( ) ;
85
68
using ( var tx = _env . BeginTransaction ( ) )
86
69
{
87
- tx . OpenDatabase ( "db1" , new DatabaseConfiguration { Flags = DatabaseOpenFlags . Create } ) ;
88
- tx . OpenDatabase ( "db2" , new DatabaseConfiguration { Flags = DatabaseOpenFlags . Create } ) ;
70
+ using var db = tx . OpenDatabase ( "db1" , new DatabaseConfiguration { Flags = DatabaseOpenFlags . Create } ) ;
71
+ using var db2 = tx . OpenDatabase ( "db2" , new DatabaseConfiguration { Flags = DatabaseOpenFlags . Create } ) ;
89
72
tx . Commit ( ) ;
90
73
}
91
74
Assert . Equal ( 2 , _env . MaxDatabases ) ;
@@ -94,25 +77,25 @@ public void MaxDatabasesWorksThroughConfigIssue62()
94
77
[ Fact ]
95
78
public void CanLoadAndDisposeMultipleEnvironments ( )
96
79
{
97
- _env = new LightningEnvironment ( _path ) ;
80
+ CreateEnvironment ( ) ;
98
81
_env . Dispose ( ) ;
99
- _env = new LightningEnvironment ( _path ) ;
82
+ CreateEnvironment ( ) ;
100
83
}
101
84
102
85
[ Fact ]
103
86
public void EnvironmentShouldBeCreatedIfReadOnly ( )
104
87
{
105
- _env = new LightningEnvironment ( _path ) ;
88
+ CreateEnvironment ( ) ;
106
89
_env . Open ( ) ; //readonly requires environment to have been created at least once before
107
90
_env . Dispose ( ) ;
108
- _env = new LightningEnvironment ( _path ) ;
91
+ CreateEnvironment ( _env . Path ) ;
109
92
_env . Open ( EnvironmentOpenFlags . ReadOnly ) ;
110
93
}
111
94
112
95
[ Fact ]
113
96
public void EnvironmentShouldBeOpened ( )
114
97
{
115
- _env = new LightningEnvironment ( _path ) ;
98
+ CreateEnvironment ( ) ;
116
99
_env . Open ( ) ;
117
100
118
101
Assert . True ( _env . IsOpened ) ;
@@ -121,11 +104,9 @@ public void EnvironmentShouldBeOpened()
121
104
[ Fact ]
122
105
public void EnvironmentShouldBeClosed ( )
123
106
{
124
- _env = new LightningEnvironment ( _path ) ;
107
+ CreateEnvironment ( ) ;
125
108
_env . Open ( ) ;
126
-
127
109
_env . Dispose ( ) ;
128
-
129
110
Assert . False ( _env . IsOpened ) ;
130
111
}
131
112
@@ -134,22 +115,23 @@ public void EnvironmentShouldBeClosed()
134
115
[ InlineData ( false ) ]
135
116
public void EnvironmentShouldBeCopied ( bool compact )
136
117
{
137
- _env = new LightningEnvironment ( _path ) ;
138
- _env . Open ( ) ;
118
+ CreateEnvironment ( ) ;
119
+ _env . Open ( ) ;
139
120
140
- _env . CopyTo ( _pathCopy , compact ) . ThrowOnError ( ) ;
121
+ var newPath = TempPath ( ) ;
122
+ _env . CopyTo ( newPath , compact ) . ThrowOnError ( ) ;
141
123
142
- if ( Directory . GetFiles ( _pathCopy ) . Length == 0 )
124
+ if ( Directory . GetFiles ( newPath ) . Length == 0 )
143
125
Assert . Fail ( "Copied files doesn't exist" ) ;
144
126
}
145
127
146
128
[ Fact ]
147
129
public void EnvironmentShouldFailCopyIfPathIsFile ( )
148
130
{
149
- _env = new LightningEnvironment ( _path ) ;
131
+ CreateEnvironment ( ) ;
150
132
_env . Open ( ) ;
151
133
152
- string filePath = Path . Combine ( _pathCopy , "test.txt" ) ;
134
+ var filePath = Path . Combine ( TempPath ( ) , "test.txt" ) ;
153
135
File . WriteAllBytes ( filePath , Array . Empty < byte > ( ) ) ;
154
136
155
137
MDBResultCode result = _env . CopyTo ( filePath ) ;
@@ -159,19 +141,16 @@ public void EnvironmentShouldFailCopyIfPathIsFile()
159
141
[ Fact ]
160
142
public void CanOpenEnvironmentMoreThan50Mb ( )
161
143
{
162
- _env = new LightningEnvironment ( _path )
163
- {
164
- MapSize = 55 * 1024 * 1024
165
- } ;
166
-
144
+ CreateEnvironment ( ) ;
145
+ _env . MapSize = 55 * 1024 * 1024 ;
167
146
_env . Open ( ) ;
168
147
}
169
148
170
149
[ Fact ]
171
150
public void CanOpenEnvironmentWithSpecialCharacters ( )
172
151
{
173
- _env = new LightningEnvironment ( _pathSpecial ) ;
174
-
152
+ //all include special character now
153
+ _env = new LightningEnvironment ( TempPath ( "ß" ) ) ;
175
154
_env . Open ( ) ;
176
155
}
177
156
}
0 commit comments