CangJie/Assets/Tests/Editor/FungusPrioritySignalsTest.cs
Roman 787b285227 任务:新建项目 导入必要的插件
1.导入URP
2.配置了URP
3.导入Dotween
4.导入Odin
5.导入了InputSystem
6.设置项目为新旧输入系统并用
7.导入了FunGus
8.创建了一些空文件夹

我是每日提醒上班小助手,今天你上班了吗?😺
2022-03-10 22:49:14 +08:00

87 lines
3.8 KiB
C#

// This code is part of the Fungus library (https://github.com/snozbot/fungus)
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
using NUnit.Framework;
namespace Fungus.Tests
{
[TestFixture]
public class PrioritySignalsTest
{
private int changeCallCount, startCallCount, endCallCount;
[Test]
public void CountsAndSignals()
{
Fungus.FungusPrioritySignals.OnFungusPriorityStart += FungusPrioritySignals_OnFungusPriorityStart;
Fungus.FungusPrioritySignals.OnFungusPriorityEnd += FungusPrioritySignals_OnFungusPriorityEnd;
Fungus.FungusPrioritySignals.OnFungusPriorityChange += FungusPrioritySignals_OnFungusPriorityChange;
Assert.Zero(Fungus.FungusPrioritySignals.CurrentPriorityDepth);
Fungus.FungusPrioritySignals.DoIncreasePriorityDepth();
//one start, one change, no end, 1 depth
Assert.AreEqual(0, endCallCount);
Assert.AreEqual(1, startCallCount);
Assert.AreEqual(1, changeCallCount);
Assert.AreEqual(1, Fungus.FungusPrioritySignals.CurrentPriorityDepth);
Fungus.FungusPrioritySignals.DoIncreasePriorityDepth();
//one start, 2 change, no end, 2 depth
Assert.AreEqual(0, endCallCount);
Assert.AreEqual(1, startCallCount);
Assert.AreEqual(2, changeCallCount);
Assert.AreEqual(2, Fungus.FungusPrioritySignals.CurrentPriorityDepth);
Fungus.FungusPrioritySignals.DoIncreasePriorityDepth();
//one start, 3 change, no end, 3 depth
Assert.AreEqual(0, endCallCount);
Assert.AreEqual(1, startCallCount);
Assert.AreEqual(3, changeCallCount);
Assert.AreEqual(3, Fungus.FungusPrioritySignals.CurrentPriorityDepth);
Fungus.FungusPrioritySignals.DoDecreasePriorityDepth();
//one start, 4 change, no end, 2 depth
Assert.AreEqual(0, endCallCount);
Assert.AreEqual(1, startCallCount);
Assert.AreEqual(4, changeCallCount);
Assert.AreEqual(2, Fungus.FungusPrioritySignals.CurrentPriorityDepth);
Fungus.FungusPrioritySignals.DoDecreasePriorityDepth();
Fungus.FungusPrioritySignals.DoDecreasePriorityDepth();
//one start, 6 change, 1 end, 0 depth
Assert.AreEqual(1, endCallCount);
Assert.AreEqual(1, startCallCount);
Assert.AreEqual(6, changeCallCount);
Assert.AreEqual(0, Fungus.FungusPrioritySignals.CurrentPriorityDepth);
Fungus.FungusPrioritySignals.OnFungusPriorityStart -= FungusPrioritySignals_OnFungusPriorityStart;
Fungus.FungusPrioritySignals.OnFungusPriorityEnd -= FungusPrioritySignals_OnFungusPriorityEnd;
Fungus.FungusPrioritySignals.OnFungusPriorityChange -= FungusPrioritySignals_OnFungusPriorityChange;
//unsubbed so all the same
Fungus.FungusPrioritySignals.DoIncreasePriorityDepth();
Fungus.FungusPrioritySignals.DoDecreasePriorityDepth();
//one start, 6 change, 1 end, 0 depth
Assert.AreEqual(1, endCallCount);
Assert.AreEqual(1, startCallCount);
Assert.AreEqual(6, changeCallCount);
Assert.AreEqual(0, Fungus.FungusPrioritySignals.CurrentPriorityDepth);
}
private void FungusPrioritySignals_OnFungusPriorityChange(int previousActiveDepth, int newActiveDepth)
{
changeCallCount++;
}
private void FungusPrioritySignals_OnFungusPriorityEnd()
{
endCallCount++;
}
private void FungusPrioritySignals_OnFungusPriorityStart()
{
startCallCount++;
}
}
}