using NUnit.Framework;
using UnityEngine;
using UnityEngine.Rendering;
namespace UnityEditor.Rendering.Tests
{
partial class RenderingDebuggerTests
{
class Volumes
{
static TestCaseData[] s_TestCaseDatasVolumeParameters =
{
new TestCaseData(null).Returns("N/A"), new TestCaseData(new FloatParameter(101.01f)).Returns("101.01"),
new TestCaseData(new BoolParameter(true)).Returns("True"),
new TestCaseData(new BoolParameter(false)).Returns("False"),
new TestCaseData(new IntParameter(1000)).Returns("1000"),
new TestCaseData(new ColorParameter(Color.red)).Returns("RGBA(1.000, 0.000, 0.000, 1.000)"),
new TestCaseData(new IntParameter(1000, overrideState: false)).Returns("1000"), // Extract value should give the proper value
};
[Test, TestCaseSource(nameof(s_TestCaseDatasVolumeParameters))]
public string ExtractResult(VolumeParameter parameter)
{
return DebugDisplaySettingsVolume.ExtractResult(parameter);
}
static TestCaseData[] s_TestCaseDatasCreateParameterWidget =
{
new TestCaseData(null).Returns("N/A"),
new TestCaseData(new FloatParameter(101.01f, overrideState: true)).Returns("101.01"),
new TestCaseData(new BoolParameter(true, overrideState: true)).Returns("True"),
new TestCaseData(new BoolParameter(false, overrideState: true)).Returns("False"),
new TestCaseData(new IntParameter(1000, overrideState: true)).Returns("1000"),
new TestCaseData(new ColorParameter(Color.red, overrideState: true)).Returns("RGBA(1.000, 0.000, 0.000, 1.000)"),
new TestCaseData(new IntParameter(1000, overrideState: false)).Returns("1000"),
};
[Test, TestCaseSource(nameof(s_TestCaseDatasCreateParameterWidget))]
public string CreateParameterWidget(VolumeParameter parameter)
{
var widget = DebugDisplaySettingsVolume.WidgetFactory.CreateVolumeParameterWidget(string.Empty, false, parameter);
if (widget is DebugUI.Value value)
return value.getter() as string;
if (widget is DebugUI.ColorField colorField)
return colorField.getter().ToString();
return "Not Implemented";
}
}
}
}