33using System . IO ;
44using System . Linq ;
55using System . Text . RegularExpressions ;
6+ using System . Threading . Tasks ;
67using NUnit . Framework ;
78using UnityDataTools . TestCommon ;
89using UnityDataTools . FileSystem ;
@@ -18,7 +19,7 @@ public class UnityDataToolTests : AssetBundleTestFixture
1819 public UnityDataToolTests ( Context context ) : base ( context )
1920 {
2021 }
21-
22+
2223 protected override void OnLoadExpectedData ( Context context )
2324 {
2425 // Uncomment to regenerate expected data.
@@ -36,25 +37,40 @@ public void OneTimeSetup()
3637 [ TearDown ]
3738 public void Teardown ( )
3839 {
39- foreach ( var file in new DirectoryInfo ( m_TestOutputFolder ) . EnumerateFiles ( ) )
40- {
41- file . Delete ( ) ;
42- }
40+ var testDir = new DirectoryInfo ( m_TestOutputFolder ) ;
41+ testDir . EnumerateFiles ( )
42+ . ToList ( ) . ForEach ( f => f . Delete ( ) ) ;
43+ testDir . EnumerateDirectories ( )
44+ . ToList ( ) . ForEach ( d => d . Delete ( true ) ) ;
4345 }
44-
46+
4547 [ Test ]
46- public void ArchiveExtract_FilesExtractedSuccessfully ( )
48+ public async Task InvalidFile (
49+ [ Values (
50+ new string [ ] { "archive" , "extract" } ,
51+ new string [ ] { "archive" , "list" } ,
52+ new string [ ] { "dump" }
53+ ) ] string [ ] args )
54+ {
55+ var path = Path . Combine ( Context . TestDataFolder , "invalidfile" ) ;
56+ var command = args . Append ( path ) ;
57+ Assert . AreNotEqual ( 0 , await Program . Main ( command . ToArray ( ) ) ) ;
58+ }
59+
60+ [ Test ]
61+ public async Task ArchiveExtract_FilesExtractedSuccessfully (
62+ [ Values ( "" , "-o archive" , "--output-path archive" ) ] string options )
4763 {
4864 var path = Path . Combine ( Context . UnityDataFolder , "assetbundle" ) ;
4965
50- Assert . AreEqual ( 0 , Program . Main ( new string [ ] { "archive" , "extract" , path } ) ) ;
51- Assert . IsTrue ( File . Exists ( Path . Combine ( m_TestOutputFolder , "CAB-5d40f7cad7c871cf2ad2af19ac542994" ) ) ) ;
52- Assert . IsTrue ( File . Exists ( Path . Combine ( m_TestOutputFolder , "CAB-5d40f7cad7c871cf2ad2af19ac542994.resS" ) ) ) ;
53- Assert . IsTrue ( File . Exists ( Path . Combine ( m_TestOutputFolder , "CAB-5d40f7cad7c871cf2ad2af19ac542994.resource" ) ) ) ;
66+ Assert . AreEqual ( 0 , await Program . Main ( new string [ ] { "archive" , "extract" , path } . Concat ( options . Split ( " " , StringSplitOptions . RemoveEmptyEntries ) ) . ToArray ( ) ) ) ;
67+ Assert . IsTrue ( File . Exists ( Path . Combine ( m_TestOutputFolder , "archive" , " CAB-5d40f7cad7c871cf2ad2af19ac542994") ) ) ;
68+ Assert . IsTrue ( File . Exists ( Path . Combine ( m_TestOutputFolder , "archive" , " CAB-5d40f7cad7c871cf2ad2af19ac542994.resS") ) ) ;
69+ Assert . IsTrue ( File . Exists ( Path . Combine ( m_TestOutputFolder , "archive" , " CAB-5d40f7cad7c871cf2ad2af19ac542994.resource") ) ) ;
5470 }
5571
5672 [ Test ]
57- public void ArchiveList_ListFilesCorrectly ( )
73+ public async Task ArchiveList_ListFilesCorrectly ( )
5874 {
5975 var path = Path . Combine ( Context . UnityDataFolder , "assetbundle" ) ;
6076
@@ -63,7 +79,7 @@ public void ArchiveList_ListFilesCorrectly()
6379 var currentOut = Console . Out ;
6480 Console . SetOut ( sw ) ;
6581
66- Assert . AreEqual ( 0 , Program . Main ( new string [ ] { "archive" , "list" , path } ) ) ;
82+ Assert . AreEqual ( 0 , await Program . Main ( new string [ ] { "archive" , "list" , path } ) ) ;
6783
6884 var lines = sw . ToString ( ) . Split ( sw . NewLine ) ;
6985
@@ -83,13 +99,13 @@ public void ArchiveList_ListFilesCorrectly()
8399 }
84100
85101 [ Test ]
86- public void DumpText_DefaultArgs_TextFileCreatedCorrectly (
102+ public async Task DumpText_DefaultArgs_TextFileCreatedCorrectly (
87103 [ Values ( "" , "-f text" , "--output-format text" ) ] string options )
88104 {
89105 var path = Path . Combine ( Context . UnityDataFolder , "assetbundle" ) ;
90106 var outputFile = Path . Combine ( m_TestOutputFolder , "CAB-5d40f7cad7c871cf2ad2af19ac542994.txt" ) ;
91107
92- Assert . AreEqual ( 0 , Program . Main ( new string [ ] { "dump" , path } . Concat ( options . Split ( " " , StringSplitOptions . RemoveEmptyEntries ) ) . ToArray ( ) ) ) ;
108+ Assert . AreEqual ( 0 , await Program . Main ( new string [ ] { "dump" , path } . Concat ( options . Split ( " " , StringSplitOptions . RemoveEmptyEntries ) ) . ToArray ( ) ) ) ;
93109 Assert . IsTrue ( File . Exists ( outputFile ) ) ;
94110
95111 var content = File . ReadAllText ( outputFile ) ;
@@ -103,13 +119,13 @@ public void DumpText_DefaultArgs_TextFileCreatedCorrectly(
103119 }
104120
105121 [ Test ]
106- public void DumpText_SkipLargeArrays_TextFileCreatedCorrectly (
122+ public async Task DumpText_SkipLargeArrays_TextFileCreatedCorrectly (
107123 [ Values ( "-s" , "--skip-large-arrays" ) ] string options )
108124 {
109125 var path = Path . Combine ( Context . UnityDataFolder , "assetbundle" ) ;
110126 var outputFile = Path . Combine ( m_TestOutputFolder , "CAB-5d40f7cad7c871cf2ad2af19ac542994.txt" ) ;
111127
112- Assert . AreEqual ( 0 , Program . Main ( new string [ ] { "dump" , path } . Concat ( options . Split ( " " , StringSplitOptions . RemoveEmptyEntries ) ) . ToArray ( ) ) ) ;
128+ Assert . AreEqual ( 0 , await Program . Main ( new string [ ] { "dump" , path } . Concat ( options . Split ( " " , StringSplitOptions . RemoveEmptyEntries ) ) . ToArray ( ) ) ) ;
113129 Assert . IsTrue ( File . Exists ( outputFile ) ) ;
114130
115131 var content = File . ReadAllText ( outputFile ) ;
@@ -123,48 +139,48 @@ public void DumpText_SkipLargeArrays_TextFileCreatedCorrectly(
123139 }
124140
125141 [ Test ]
126- public void Analyze_DefaultArgs_DatabaseCorrect ( )
142+ public async Task Analyze_DefaultArgs_DatabaseCorrect ( )
127143 {
128144 var databasePath = Path . Combine ( m_TestOutputFolder , "database.db" ) ;
129145 var analyzePath = Path . Combine ( Context . UnityDataFolder ) ;
130146
131- Assert . AreEqual ( 0 , Program . Main ( new string [ ] { "analyze" , analyzePath } ) ) ;
147+ Assert . AreEqual ( 0 , await Program . Main ( new string [ ] { "analyze" , analyzePath } ) ) ;
132148
133149 ValidateDatabase ( databasePath , false ) ;
134150 }
135151
136152 [ Test ]
137- public void Analyze_WithRefs_DatabaseCorrect (
153+ public async Task Analyze_WithRefs_DatabaseCorrect (
138154 [ Values ( "-r" , "--extract-references" ) ] string options )
139155 {
140156 var databasePath = Path . Combine ( m_TestOutputFolder , "database.db" ) ;
141157 var analyzePath = Path . Combine ( Context . UnityDataFolder ) ;
142158
143- Assert . AreEqual ( 0 , Program . Main ( new string [ ] { "analyze" , analyzePath } . Concat ( options . Split ( " " ) ) . ToArray ( ) ) ) ;
159+ Assert . AreEqual ( 0 , await Program . Main ( new string [ ] { "analyze" , analyzePath } . Concat ( options . Split ( " " ) ) . ToArray ( ) ) ) ;
144160
145161 ValidateDatabase ( databasePath , true ) ;
146162 }
147163
148164 [ Test ]
149- public void Analyze_WithPattern_DatabaseCorrect (
165+ public async Task Analyze_WithPattern_DatabaseCorrect (
150166 [ Values ( "-p *." , "--search-pattern *." ) ] string options )
151167 {
152168 var databasePath = Path . Combine ( m_TestOutputFolder , "database.db" ) ;
153169 var analyzePath = Path . Combine ( Context . UnityDataFolder ) ;
154170
155- Assert . AreEqual ( 0 , Program . Main ( new string [ ] { "analyze" , analyzePath } . Concat ( options . Split ( " " ) ) . ToArray ( ) ) ) ;
171+ Assert . AreEqual ( 0 , await Program . Main ( new string [ ] { "analyze" , analyzePath } . Concat ( options . Split ( " " ) ) . ToArray ( ) ) ) ;
156172
157173 ValidateDatabase ( databasePath , false ) ;
158174 }
159175
160176 [ Test ]
161- public void Analyze_WithPatternNoMatch_DatabaseEmpty (
177+ public async Task Analyze_WithPatternNoMatch_DatabaseEmpty (
162178 [ Values ( "-p *.x" , "--search-pattern *.x" ) ] string options )
163179 {
164180 var databasePath = Path . Combine ( m_TestOutputFolder , "database.db" ) ;
165181 var analyzePath = Path . Combine ( Context . UnityDataFolder ) ;
166182
167- Assert . AreEqual ( 0 , Program . Main ( new string [ ] { "analyze" , analyzePath } . Concat ( options . Split ( " " ) ) . ToArray ( ) ) ) ;
183+ Assert . AreEqual ( 0 , await Program . Main ( new string [ ] { "analyze" , analyzePath } . Concat ( options . Split ( " " ) ) . ToArray ( ) ) ) ;
168184
169185 using var db = new SQLiteConnection ( $ "Data Source={ databasePath } ;Version=3;New=True;Foreign Keys=False;") ;
170186 db . Open ( ) ;
@@ -178,13 +194,13 @@ public void Analyze_WithPatternNoMatch_DatabaseEmpty(
178194 }
179195
180196 [ Test ]
181- public void Analyze_WithOutputFile_DatabaseCorrect (
197+ public async Task Analyze_WithOutputFile_DatabaseCorrect (
182198 [ Values ( "-o my_database" , "--output-file my_database" ) ] string options )
183199 {
184200 var databasePath = Path . Combine ( m_TestOutputFolder , "my_database" ) ;
185201 var analyzePath = Path . Combine ( Context . UnityDataFolder ) ;
186202
187- Assert . AreEqual ( 0 , Program . Main ( new string [ ] { "analyze" , analyzePath } . Concat ( options . Split ( " " ) ) . ToArray ( ) ) ) ;
203+ Assert . AreEqual ( 0 , await Program . Main ( new string [ ] { "analyze" , analyzePath } . Concat ( options . Split ( " " ) ) . ToArray ( ) ) ) ;
188204
189205 ValidateDatabase ( databasePath , false ) ;
190206 }
@@ -197,7 +213,7 @@ private void ValidateDatabase(string databasePath, bool withRefs)
197213 using ( var cmd = db . CreateCommand ( ) )
198214 {
199215 cmd . CommandText =
200- @"SELECT
216+ @"SELECT
201217 (SELECT COUNT(*) FROM animation_clips),
202218 (SELECT COUNT(*) FROM asset_bundles),
203219 (SELECT COUNT(*) FROM assets),
@@ -259,21 +275,21 @@ public void Teardown()
259275 file . Delete ( ) ;
260276 }
261277 }
262-
278+
263279 [ Test ]
264- public void Analyze_PlayerData_DatabaseCorrect ( )
280+ public async Task Analyze_PlayerData_DatabaseCorrect ( )
265281 {
266282 var databasePath = Path . Combine ( m_TestOutputFolder , "database.db" ) ;
267283 var analyzePath = Path . Combine ( Context . UnityDataFolder ) ;
268284
269- Assert . AreEqual ( 0 , Program . Main ( new string [ ] { "analyze" , analyzePath , "-r" } ) ) ;
270-
285+ Assert . AreEqual ( 0 , await Program . Main ( new string [ ] { "analyze" , analyzePath , "-r" } ) ) ;
286+
271287 using var db = new SQLiteConnection ( $ "Data Source={ databasePath } ;Version=3;New=True;Foreign Keys=False;") ;
272288 db . Open ( ) ;
273289 using var cmd = db . CreateCommand ( ) ;
274290
275291 cmd . CommandText =
276- @"SELECT
292+ @"SELECT
277293 (SELECT COUNT(*) FROM asset_bundles),
278294 (SELECT COUNT(*) FROM assets),
279295 (SELECT COUNT(*) FROM objects),
@@ -290,14 +306,14 @@ public void Analyze_PlayerData_DatabaseCorrect()
290306 Assert . Greater ( reader . GetInt32 ( 3 ) , 0 ) ;
291307 Assert . AreEqual ( 1 , reader . GetInt32 ( 4 ) ) ;
292308 }
293-
309+
294310 [ Test ]
295- public void DumpText_PlayerData_TextFileCreatedCorrectly ( )
311+ public async Task DumpText_PlayerData_TextFileCreatedCorrectly ( )
296312 {
297313 var path = Path . Combine ( Context . UnityDataFolder , "level0" ) ;
298314 var outputFile = Path . Combine ( m_TestOutputFolder , "level0.txt" ) ;
299315
300- Assert . AreEqual ( 0 , Program . Main ( new string [ ] { "dump" , path } ) ) ;
316+ Assert . AreEqual ( 0 , await Program . Main ( new string [ ] { "dump" , path } ) ) ;
301317 Assert . IsTrue ( File . Exists ( outputFile ) ) ;
302318
303319 var content = File . ReadAllText ( outputFile ) ;
0 commit comments