126 lines
5.2 KiB
C#
126 lines
5.2 KiB
C#
using NUnit.Framework;
|
|
using UnityEditor;
|
|
using UnityEditor.AddressableAssets.Build;
|
|
using UnityEditor.AddressableAssets.Settings;
|
|
using UnityEngine;
|
|
|
|
namespace UnityEditor.AddressableAssets.Tests
|
|
{
|
|
public class AddressablesDataBuilderInputTests : AddressableAssetTestBase
|
|
{
|
|
protected override bool PersistSettings
|
|
{
|
|
get { return false; }
|
|
}
|
|
|
|
[Test]
|
|
public void Constructor_WithSettings_UsesBuildSettingsProvider()
|
|
{
|
|
// Create a test provider with known values
|
|
var testProvider = new TestBuildSettingsProvider
|
|
{
|
|
activeBuildTarget = BuildTarget.StandaloneWindows64,
|
|
development = true,
|
|
extraScriptingDefines = new[] { "TEST_DEFINE_1", "TEST_DEFINE_2" }
|
|
};
|
|
|
|
// Create input with settings and test provider
|
|
var input = new AddressablesDataBuilderInput(Settings, testProvider);
|
|
|
|
// Verify it uses the test provider values
|
|
Assert.AreEqual(testProvider.development, input.DevelopmentBuild);
|
|
Assert.AreEqual(testProvider.activeBuildTarget, input.Target);
|
|
CollectionAssert.AreEquivalent(
|
|
testProvider.extraScriptingDefines,
|
|
input.ExtraScriptingDefines);
|
|
}
|
|
|
|
[Test]
|
|
public void Constructor_WithBuildPlayerOptions_UsesBuildPlayerOptions()
|
|
{
|
|
var buildPlayerOptions = new BuildPlayerOptions
|
|
{
|
|
target = BuildTarget.StandaloneWindows64,
|
|
options = BuildOptions.Development,
|
|
extraScriptingDefines = new[] { "TEST_DEFINE_FROM_OPTIONS" }
|
|
};
|
|
|
|
var input = new AddressablesDataBuilderInput(Settings, buildPlayerOptions);
|
|
|
|
Assert.IsTrue(input.DevelopmentBuild, "DevelopmentBuild should be true when BuildOptions.Development is set");
|
|
Assert.IsNotNull(input.ExtraScriptingDefines, "ExtraScriptingDefines should not be null");
|
|
CollectionAssert.Contains(input.ExtraScriptingDefines, "TEST_DEFINE_FROM_OPTIONS",
|
|
"ExtraScriptingDefines should contain the define from BuildPlayerOptions");
|
|
}
|
|
|
|
[Test]
|
|
public void Constructor_WithBuildPlayerOptions_NonDevelopment_UsesBuildPlayerOptions()
|
|
{
|
|
var buildPlayerOptions = new BuildPlayerOptions
|
|
{
|
|
target = BuildTarget.StandaloneWindows64,
|
|
options = BuildOptions.None,
|
|
extraScriptingDefines = new[] { "NON_DEV_DEFINE" }
|
|
};
|
|
|
|
var input = new AddressablesDataBuilderInput(Settings, buildPlayerOptions);
|
|
|
|
Assert.IsFalse(input.DevelopmentBuild, "DevelopmentBuild should be false when BuildOptions.Development is not set");
|
|
Assert.IsNotNull(input.ExtraScriptingDefines, "ExtraScriptingDefines should not be null");
|
|
CollectionAssert.Contains(input.ExtraScriptingDefines, "NON_DEV_DEFINE",
|
|
"ExtraScriptingDefines should contain the define from BuildPlayerOptions");
|
|
}
|
|
|
|
[Test]
|
|
public void Constructor_WithBuildPlayerOptions_EmptyExtraDefines_HandlesNull()
|
|
{
|
|
var buildPlayerOptions = new BuildPlayerOptions
|
|
{
|
|
target = BuildTarget.StandaloneWindows64,
|
|
options = BuildOptions.None,
|
|
extraScriptingDefines = null
|
|
};
|
|
|
|
var input = new AddressablesDataBuilderInput(Settings, buildPlayerOptions);
|
|
|
|
Assert.IsFalse(input.DevelopmentBuild);
|
|
Assert.IsNull(input.ExtraScriptingDefines, "ExtraScriptingDefines should be null when BuildPlayerOptions has null extraScriptingDefines");
|
|
}
|
|
|
|
[Test]
|
|
public void Constructor_WithPlayerBuildVersion_UsesBuildSettingsProvider()
|
|
{
|
|
// Create a test provider with known values
|
|
var testProvider = new TestBuildSettingsProvider
|
|
{
|
|
activeBuildTarget = BuildTarget.StandaloneWindows64,
|
|
development = false,
|
|
extraScriptingDefines = new[] { "VERSION_TEST_DEFINE" }
|
|
};
|
|
|
|
// Create input with playerBuildVersion and test provider
|
|
var input = new AddressablesDataBuilderInput(Settings, "1.0.0", testProvider);
|
|
|
|
// Verify it uses the test provider values
|
|
Assert.AreEqual(testProvider.development, input.DevelopmentBuild);
|
|
Assert.AreEqual(testProvider.activeBuildTarget, input.Target);
|
|
CollectionAssert.AreEquivalent(
|
|
testProvider.extraScriptingDefines,
|
|
input.ExtraScriptingDefines);
|
|
Assert.AreEqual("1.0.0", input.PlayerVersion);
|
|
}
|
|
|
|
[Test]
|
|
public void Constructor_WithSettings_DefaultsToEditorBuildSettingsProvider()
|
|
{
|
|
// This test verifies that when no provider is specified, it uses EditorBuildSettingsProvider.Default
|
|
// We can't fully test this without manipulating globals, but we can verify the constructor accepts null
|
|
var input = new AddressablesDataBuilderInput(Settings);
|
|
|
|
// Verify it was created successfully and has reasonable values
|
|
Assert.IsNotNull(input);
|
|
Assert.IsNotNull(input.AddressableSettings);
|
|
}
|
|
}
|
|
}
|