@@ -11,13 +11,20 @@ public class TestFileSaver
1111 string ppid = "test_ppid" ;
1212 int sessionNum = 1 ;
1313 FileSaver fileSaver ;
14+ Session session ;
1415
1516 [ SetUp ]
1617 public void SetUp ( )
1718 {
1819 var gameObject = new GameObject ( ) ;
1920 fileSaver = gameObject . AddComponent < FileSaver > ( ) ;
2021 fileSaver . verboseDebug = true ;
22+ if ( Session . instance != null ) GameObject . DestroyImmediate ( Session . instance . gameObject ) ;
23+ session = gameObject . AddComponent < Session > ( ) ;
24+ session . experimentName = "test_experiment" ;
25+ session . ppid = "P001" ;
26+ session . number = 1 ;
27+ fileSaver . Initialise ( session ) ;
2128 }
2229
2330
@@ -149,5 +156,80 @@ public void FileSaverRelPath()
149156 SystemInfo . operatingSystemFamily == OperatingSystemFamily . Windows ? "123" : "../123"
150157 ) ;
151158 }
159+
160+ [ Test ]
161+ public void TestBackupSession ( )
162+ {
163+ fileSaver . StoragePath = "test_output" ;
164+ fileSaver . backupSessionIfExists = true ;
165+ if ( Directory . Exists ( fileSaver . StoragePath ) )
166+ {
167+ Directory . Delete ( fileSaver . StoragePath , true ) ;
168+ }
169+
170+ fileSaver . SetUp ( ) ;
171+
172+ string fileName = "testMoveToBackup" ;
173+ fileSaver . HandleText ( "" , session . experimentName , session . ppid , session . number , fileName , UXFDataType . TrialResults ) ;
174+ fileSaver . HandleText ( "" , session . experimentName , session . ppid , session . number , fileName , UXFDataType . TrialResults ) ;
175+ fileSaver . HandleText ( "" , session . experimentName , session . ppid , session . number , fileName , UXFDataType . TrialResults ) ;
176+
177+ fileSaver . CleanUp ( ) ;
178+ System . Threading . Thread . Sleep ( 500 ) ;
179+
180+ fileSaver . SetUp ( ) ;
181+
182+ fileName = "testMoveToBackup" ;
183+ fileSaver . HandleText ( "" , session . experimentName , session . ppid , session . number , fileName , UXFDataType . TrialResults ) ;
184+ fileSaver . HandleText ( "" , session . experimentName , session . ppid , session . number , fileName , UXFDataType . TrialResults ) ;
185+ fileSaver . HandleText ( "" , session . experimentName , session . ppid , session . number , fileName , UXFDataType . TrialResults ) ;
186+
187+ fileSaver . CleanUp ( ) ;
188+
189+ string testFilesDirectory = fileSaver . GetSessionPath ( session . experimentName , session . ppid , session . number ) ;
190+
191+ string [ ] directories = Directory . GetDirectories ( Directory . GetParent ( testFilesDirectory ) . ToString ( ) , $ "{ FileSaver . SessionNumToName ( 1 ) } *", SearchOption . TopDirectoryOnly ) ;
192+ Assert . AreEqual ( directories . Length , 2 ) ;
193+
194+ Directory . Delete ( fileSaver . StoragePath , true ) ;
195+ }
196+
197+ [ Test ]
198+ public void TestSessionOverwrite ( )
199+ {
200+ fileSaver . StoragePath = "test_output" ;
201+ fileSaver . backupSessionIfExists = false ;
202+ if ( Directory . Exists ( fileSaver . StoragePath ) )
203+ {
204+ Directory . Delete ( fileSaver . StoragePath , true ) ;
205+ }
206+
207+ fileSaver . SetUp ( ) ;
208+
209+ string fileName = "testMoveToBackup" ;
210+ fileSaver . HandleText ( "" , session . experimentName , session . ppid , session . number , fileName , UXFDataType . TrialResults ) ;
211+ fileSaver . HandleText ( "" , session . experimentName , session . ppid , session . number , fileName , UXFDataType . TrialResults ) ;
212+ fileSaver . HandleText ( "" , session . experimentName , session . ppid , session . number , fileName , UXFDataType . TrialResults ) ;
213+
214+ fileSaver . CleanUp ( ) ;
215+ System . Threading . Thread . Sleep ( 500 ) ;
216+
217+ fileSaver . SetUp ( ) ;
218+
219+ fileName = "testMoveToBackup" ;
220+ fileSaver . HandleText ( "" , session . experimentName , session . ppid , session . number , fileName , UXFDataType . TrialResults ) ;
221+ fileSaver . HandleText ( "" , session . experimentName , session . ppid , session . number , fileName , UXFDataType . TrialResults ) ;
222+ fileSaver . HandleText ( "" , session . experimentName , session . ppid , session . number , fileName , UXFDataType . TrialResults ) ;
223+
224+ fileSaver . CleanUp ( ) ;
225+
226+ string testFilesDirectory = fileSaver . GetSessionPath ( session . experimentName , session . ppid , session . number ) ;
227+
228+ string [ ] directories = Directory . GetDirectories ( Directory . GetParent ( testFilesDirectory ) . ToString ( ) , $ "{ FileSaver . SessionNumToName ( 1 ) } *", SearchOption . TopDirectoryOnly ) ;
229+ Assert . AreEqual ( directories . Length , 1 ) ;
230+
231+ Directory . Delete ( fileSaver . StoragePath , true ) ;
232+ }
152233 }
234+
153235}
0 commit comments