Skip to content

Commit 95e5cf7

Browse files
Split UnityDataToolTests.cs to multiple source files
1 parent 598605a commit 95e5cf7

File tree

3 files changed

+216
-194
lines changed

3 files changed

+216
-194
lines changed

UnityDataTool.Tests/UnityDataToolTests.cs renamed to UnityDataTool.Tests/UnityDataToolAssetBundleTests.cs

Lines changed: 0 additions & 194 deletions
Original file line numberDiff line numberDiff line change
@@ -269,197 +269,3 @@ private void ValidateDatabase(string databasePath, bool withRefs)
269269
}
270270
}
271271
}
272-
273-
public class UnityDataToolPlayerDataTests : PlayerDataTestFixture
274-
{
275-
private string m_TestOutputFolder;
276-
277-
public UnityDataToolPlayerDataTests(Context context) : base(context)
278-
{
279-
}
280-
281-
[OneTimeSetUp]
282-
public void OneTimeSetup()
283-
{
284-
m_TestOutputFolder = Path.Combine(TestContext.CurrentContext.TestDirectory, "test_folder");
285-
Directory.CreateDirectory(m_TestOutputFolder);
286-
Directory.SetCurrentDirectory(m_TestOutputFolder);
287-
}
288-
289-
[TearDown]
290-
public void Teardown()
291-
{
292-
SqliteConnection.ClearAllPools();
293-
294-
foreach (var file in new DirectoryInfo(m_TestOutputFolder).EnumerateFiles())
295-
{
296-
file.Delete();
297-
}
298-
}
299-
300-
[Test]
301-
public async Task Analyze_PlayerData_DatabaseCorrect()
302-
{
303-
var databasePath = Path.Combine(m_TestOutputFolder, "database.db");
304-
var analyzePath = Path.Combine(Context.UnityDataFolder);
305-
306-
Assert.AreEqual(0, await Program.Main(new string[] { "analyze", analyzePath, "-p", "*." }));
307-
using var db = new SqliteConnection(new SqliteConnectionStringBuilder
308-
{
309-
DataSource = databasePath,
310-
Mode = SqliteOpenMode.ReadWriteCreate,
311-
Pooling = false,
312-
ForeignKeys = false,
313-
}.ConnectionString);
314-
db.Open();
315-
316-
using var cmd = db.CreateCommand();
317-
318-
cmd.CommandText =
319-
@"SELECT
320-
(SELECT COUNT(*) FROM asset_bundles),
321-
(SELECT COUNT(*) FROM assets),
322-
(SELECT COUNT(*) FROM objects),
323-
(SELECT COUNT(*) FROM refs),
324-
(SELECT COUNT(*) FROM serialized_files)";
325-
326-
using var reader = cmd.ExecuteReader();
327-
328-
reader.Read();
329-
330-
Assert.AreEqual(0, reader.GetInt32(0));
331-
Assert.AreEqual(0, reader.GetInt32(1));
332-
Assert.Greater(reader.GetInt32(2), 0);
333-
Assert.Greater(reader.GetInt32(3), 0);
334-
Assert.AreEqual(1, reader.GetInt32(4));
335-
}
336-
337-
[Test]
338-
public async Task DumpText_PlayerData_TextFileCreatedCorrectly()
339-
{
340-
var path = Path.Combine(Context.UnityDataFolder, "level0");
341-
var outputFile = Path.Combine(m_TestOutputFolder, "level0.txt");
342-
343-
Assert.AreEqual(0, await Program.Main(new string[] { "dump", path }));
344-
Assert.IsTrue(File.Exists(outputFile));
345-
346-
var content = File.ReadAllText(outputFile);
347-
var expected = File.ReadAllText(Path.Combine(Context.ExpectedDataFolder, "level0.txt"));
348-
349-
// Normalize line endings.
350-
content = Regex.Replace(content, @"\r\n|\n\r|\r", "\n");
351-
expected = Regex.Replace(expected, @"\r\n|\n\r|\r", "\n");
352-
353-
Assert.AreEqual(expected, content);
354-
}
355-
}
356-
357-
public class WebBundleSupportTests
358-
{
359-
private string m_TestOutputFolder;
360-
private string m_TestDataFolder;
361-
362-
[OneTimeSetUp]
363-
public void OneTimeSetup()
364-
{
365-
m_TestOutputFolder = Path.Combine(TestContext.CurrentContext.TestDirectory, "test_folder");
366-
m_TestDataFolder = Path.Combine(TestContext.CurrentContext.TestDirectory, "Data");
367-
Directory.CreateDirectory(m_TestOutputFolder);
368-
Directory.SetCurrentDirectory(m_TestOutputFolder);
369-
}
370-
371-
[TearDown]
372-
public void Teardown()
373-
{
374-
SqliteConnection.ClearAllPools();
375-
376-
var testDir = new DirectoryInfo(m_TestOutputFolder);
377-
testDir.EnumerateFiles()
378-
.ToList().ForEach(f => f.Delete());
379-
testDir.EnumerateDirectories()
380-
.ToList().ForEach(d => d.Delete(true));
381-
}
382-
383-
[Test]
384-
public void IsWebBundle_True()
385-
{
386-
var webBundlePath = Path.Combine(m_TestDataFolder, "WebBundles", "HelloWorld.data");
387-
Assert.IsTrue(Archive.IsWebBundle(new FileInfo(webBundlePath)));
388-
}
389-
390-
[Test]
391-
public void IsWebBundle_False()
392-
{
393-
var nonWebBundlePath = Path.Combine(m_TestDataFolder, "WebBundles", "NotAWebBundle.txt");
394-
Assert.IsFalse(Archive.IsWebBundle(new FileInfo(nonWebBundlePath)));
395-
}
396-
397-
[Test]
398-
public async Task ArchiveList_WebBundle_ListFilesCorrectly(
399-
[Values(
400-
"HelloWorld.data",
401-
"HelloWorld.data.gz",
402-
"HelloWorld.data.br"
403-
)] string bundlePath)
404-
{
405-
var path = Path.Combine(m_TestDataFolder, "WebBundles", bundlePath);
406-
using var sw = new StringWriter();
407-
var currentOut = Console.Out;
408-
try
409-
{
410-
Console.SetOut(sw);
411-
412-
Assert.AreEqual(0, await Program.Main(new string[] { "archive", "list", path }));
413-
414-
var actualOutput = sw.ToString();
415-
var expectedOutput = (
416-
@"data.unity3d
417-
Size: 253044
418-
419-
RuntimeInitializeOnLoads.json
420-
Size: 700
421-
422-
ScriptingAssemblies.json
423-
Size: 3060
424-
425-
boot.config
426-
Size: 93
427-
428-
Il2CppData/Metadata/global-metadata.dat
429-
Size: 1641180
430-
431-
Resources/unity_default_resources
432-
Size: 607376
433-
434-
"
435-
);
436-
437-
Assert.AreEqual(expectedOutput, actualOutput);
438-
}
439-
finally
440-
{
441-
Console.SetOut(currentOut);
442-
}
443-
}
444-
445-
[Test]
446-
public async Task ArchiveExtract_WebBundle_FileExtractedSuccessfully(
447-
[Values("", "-o archive", "--output-path archive")] string options,
448-
[Values("HelloWorld.data", "HelloWorld.data.gz", "HelloWorld.data.br")] string bundlePath)
449-
{
450-
var path = Path.Combine(m_TestDataFolder, "WebBundles", bundlePath);
451-
string[] expectedFiles = {
452-
"boot.config",
453-
"data.unity3d",
454-
"RuntimeInitializeOnLoads.json",
455-
"ScriptingAssemblies.json",
456-
Path.Combine("Il2CppData", "Metadata", "global-metadata.dat"),
457-
Path.Combine("Resources", "unity_default_resources"),
458-
};
459-
Assert.AreEqual(0, await Program.Main(new string[] { "archive", "extract", path }.Concat(options.Split(" ", StringSplitOptions.RemoveEmptyEntries)).ToArray()));
460-
foreach (var file in expectedFiles)
461-
{
462-
Assert.IsTrue(File.Exists(Path.Combine(m_TestOutputFolder, "archive", file)));
463-
}
464-
}
465-
}
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
using System;
2+
using Microsoft.Data.Sqlite;
3+
using System.IO;
4+
using System.Text.RegularExpressions;
5+
using System.Threading.Tasks;
6+
using NUnit.Framework;
7+
using UnityDataTools.TestCommon;
8+
9+
namespace UnityDataTools.UnityDataTool.Tests;
10+
11+
#pragma warning disable NUnit2005, NUnit2006
12+
13+
public class UnityDataToolPlayerDataTests : PlayerDataTestFixture
14+
{
15+
private string m_TestOutputFolder;
16+
17+
public UnityDataToolPlayerDataTests(Context context) : base(context)
18+
{
19+
}
20+
21+
[OneTimeSetUp]
22+
public void OneTimeSetup()
23+
{
24+
m_TestOutputFolder = Path.Combine(TestContext.CurrentContext.TestDirectory, "test_folder");
25+
Directory.CreateDirectory(m_TestOutputFolder);
26+
Directory.SetCurrentDirectory(m_TestOutputFolder);
27+
}
28+
29+
[TearDown]
30+
public void Teardown()
31+
{
32+
SqliteConnection.ClearAllPools();
33+
34+
foreach (var file in new DirectoryInfo(m_TestOutputFolder).EnumerateFiles())
35+
{
36+
file.Delete();
37+
}
38+
}
39+
40+
[Test]
41+
public async Task Analyze_PlayerData_DatabaseCorrect()
42+
{
43+
var databasePath = Path.Combine(m_TestOutputFolder, "database.db");
44+
var analyzePath = Path.Combine(Context.UnityDataFolder);
45+
46+
Assert.AreEqual(0, await Program.Main(new string[] { "analyze", analyzePath, "-p", "*." }));
47+
using var db = new SqliteConnection(new SqliteConnectionStringBuilder
48+
{
49+
DataSource = databasePath,
50+
Mode = SqliteOpenMode.ReadWriteCreate,
51+
Pooling = false,
52+
ForeignKeys = false,
53+
}.ConnectionString);
54+
db.Open();
55+
56+
using var cmd = db.CreateCommand();
57+
58+
cmd.CommandText =
59+
@"SELECT
60+
(SELECT COUNT(*) FROM asset_bundles),
61+
(SELECT COUNT(*) FROM assets),
62+
(SELECT COUNT(*) FROM objects),
63+
(SELECT COUNT(*) FROM refs),
64+
(SELECT COUNT(*) FROM serialized_files)";
65+
66+
using var reader = cmd.ExecuteReader();
67+
68+
reader.Read();
69+
70+
Assert.AreEqual(0, reader.GetInt32(0));
71+
Assert.AreEqual(0, reader.GetInt32(1));
72+
Assert.Greater(reader.GetInt32(2), 0);
73+
Assert.Greater(reader.GetInt32(3), 0);
74+
Assert.AreEqual(1, reader.GetInt32(4));
75+
}
76+
77+
[Test]
78+
public async Task DumpText_PlayerData_TextFileCreatedCorrectly()
79+
{
80+
var path = Path.Combine(Context.UnityDataFolder, "level0");
81+
var outputFile = Path.Combine(m_TestOutputFolder, "level0.txt");
82+
83+
Assert.AreEqual(0, await Program.Main(new string[] { "dump", path }));
84+
Assert.IsTrue(File.Exists(outputFile));
85+
86+
var content = File.ReadAllText(outputFile);
87+
var expected = File.ReadAllText(Path.Combine(Context.ExpectedDataFolder, "level0.txt"));
88+
89+
// Normalize line endings.
90+
content = Regex.Replace(content, @"\r\n|\n\r|\r", "\n");
91+
expected = Regex.Replace(expected, @"\r\n|\n\r|\r", "\n");
92+
93+
Assert.AreEqual(expected, content);
94+
}
95+
}

0 commit comments

Comments
 (0)