120 lines
4.4 KiB
C#
120 lines
4.4 KiB
C#
using UnityEngine;
|
|
using NUnit.Framework;
|
|
|
|
public class CanvasRendererTests
|
|
{
|
|
private const int Width = 32;
|
|
private const int Height = 32;
|
|
GameObject m_GraphicObj;
|
|
CanvasRenderer m_CanvasRenderer;
|
|
private Texture2D m_DefaultTexture;
|
|
static readonly string k_MaskTexPropName = "_MaskTex";
|
|
static readonly string k_GlowTexPropName = "_GlowTex";
|
|
Texture2D m_MaskTex;
|
|
Texture2D m_GlowTex;
|
|
|
|
[SetUp]
|
|
public void SetUp()
|
|
{
|
|
m_GraphicObj = new GameObject("Graphic");
|
|
m_CanvasRenderer = m_GraphicObj.AddComponent<CanvasRenderer>();
|
|
m_MaskTex = CreateTexture(Color.red);
|
|
m_GlowTex = CreateTexture(Color.yellow);
|
|
}
|
|
|
|
Texture2D CreateTexture(Color color)
|
|
{
|
|
var tex = new Texture2D(Width, Height);
|
|
Color[] colors = new Color[Width * Height];
|
|
for (int i = 0; i < Width * Height; i++)
|
|
colors[i] = color;
|
|
tex.SetPixels(colors);
|
|
tex.Apply();
|
|
return tex;
|
|
}
|
|
|
|
[Test]
|
|
public void InitialData()
|
|
{
|
|
Assert.AreEqual(0, m_CanvasRenderer.GetSecondaryTextureCount());
|
|
}
|
|
|
|
[Test]
|
|
public void AddSecondaryTextures()
|
|
{
|
|
m_CanvasRenderer.SetSecondaryTextureCount(2);
|
|
|
|
Assert.AreEqual(2, m_CanvasRenderer.GetSecondaryTextureCount());
|
|
Assert.True(string.IsNullOrEmpty(m_CanvasRenderer.GetSecondaryTextureName(0)));
|
|
Assert.Null(m_CanvasRenderer.GetSecondaryTexture(0));
|
|
Assert.True(string.IsNullOrEmpty(m_CanvasRenderer.GetSecondaryTextureName(1)));
|
|
Assert.Null(m_CanvasRenderer.GetSecondaryTexture(1));
|
|
|
|
m_CanvasRenderer.SetSecondaryTexture(0, k_MaskTexPropName, m_MaskTex);
|
|
m_CanvasRenderer.SetSecondaryTexture(1, k_GlowTexPropName, m_GlowTex);
|
|
|
|
Assert.AreEqual(k_MaskTexPropName, m_CanvasRenderer.GetSecondaryTextureName(0));
|
|
Assert.AreEqual(m_MaskTex, m_CanvasRenderer.GetSecondaryTexture(0));
|
|
Assert.AreEqual(k_GlowTexPropName, m_CanvasRenderer.GetSecondaryTextureName(1));
|
|
Assert.AreEqual(m_GlowTex, m_CanvasRenderer.GetSecondaryTexture(1));
|
|
}
|
|
|
|
[Test]
|
|
public void RemoveSecondaryTextures()
|
|
{
|
|
m_CanvasRenderer.SetSecondaryTextureCount(2);
|
|
m_CanvasRenderer.SetSecondaryTexture(0, k_MaskTexPropName, m_MaskTex);
|
|
m_CanvasRenderer.SetSecondaryTexture(1, k_GlowTexPropName, m_GlowTex);
|
|
|
|
// The last secondary texture
|
|
m_CanvasRenderer.SetSecondaryTextureCount(1);
|
|
|
|
Assert.AreEqual(1, m_CanvasRenderer.GetSecondaryTextureCount());
|
|
Assert.AreEqual(k_MaskTexPropName, m_CanvasRenderer.GetSecondaryTextureName(0));
|
|
Assert.AreEqual(m_MaskTex, m_CanvasRenderer.GetSecondaryTexture(0));
|
|
}
|
|
|
|
[Test]
|
|
public void SetSecondaryTextureCount()
|
|
{
|
|
m_CanvasRenderer.SetSecondaryTextureCount(2);
|
|
m_CanvasRenderer.SetSecondaryTexture(0, k_MaskTexPropName, m_MaskTex);
|
|
m_CanvasRenderer.SetSecondaryTexture(1, k_GlowTexPropName, m_GlowTex);
|
|
|
|
m_CanvasRenderer.SetSecondaryTextureCount(1);
|
|
|
|
Assert.AreEqual(1, m_CanvasRenderer.GetSecondaryTextureCount());
|
|
Assert.AreEqual(k_MaskTexPropName, m_CanvasRenderer.GetSecondaryTextureName(0));
|
|
Assert.AreEqual(m_MaskTex, m_CanvasRenderer.GetSecondaryTexture(0));
|
|
|
|
// Increase the number of secondary textures and verify that the new entries are empty
|
|
m_CanvasRenderer.SetSecondaryTextureCount(3);
|
|
|
|
Assert.AreEqual(3, m_CanvasRenderer.GetSecondaryTextureCount());
|
|
Assert.AreEqual(k_MaskTexPropName, m_CanvasRenderer.GetSecondaryTextureName(0));
|
|
Assert.AreEqual(m_MaskTex, m_CanvasRenderer.GetSecondaryTexture(0));
|
|
Assert.True(string.IsNullOrEmpty(m_CanvasRenderer.GetSecondaryTextureName(1)));
|
|
Assert.Null(m_CanvasRenderer.GetSecondaryTexture(1));
|
|
Assert.True(string.IsNullOrEmpty(m_CanvasRenderer.GetSecondaryTextureName(2)));
|
|
Assert.Null(m_CanvasRenderer.GetSecondaryTexture(2));
|
|
|
|
// Clear all the secondary textures
|
|
m_CanvasRenderer.SetSecondaryTextureCount(0);
|
|
|
|
Assert.AreEqual(0, m_CanvasRenderer.GetSecondaryTextureCount());
|
|
|
|
// Add an element again and verify that it is empty
|
|
m_CanvasRenderer.SetSecondaryTextureCount(1);
|
|
|
|
Assert.True(string.IsNullOrEmpty(m_CanvasRenderer.GetSecondaryTextureName(0)));
|
|
Assert.Null(m_CanvasRenderer.GetSecondaryTexture(0));
|
|
}
|
|
|
|
[TearDown]
|
|
public void TearDown()
|
|
{
|
|
GameObject.DestroyImmediate(m_GraphicObj);
|
|
}
|
|
}
|
|
|