52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
#if TEST_FRAMEWORK_INSTALLED
|
|
using System;
|
|
using System.Collections;
|
|
using System.Text.RegularExpressions;
|
|
using PrimeTween;
|
|
using UnityEngine;
|
|
using UnityEngine.TestTools;
|
|
using Assert = NUnit.Framework.Assert;
|
|
|
|
public partial class Tests {
|
|
[UnityTest]
|
|
public IEnumerator ExceptionInTheMiddle() {
|
|
expectTweenWasStoppedBecauseException();
|
|
expectOnCompleteIgnored();
|
|
var onCompleteCalled = false;
|
|
var tweener = Tween.Custom(transform, 0, 1, 0.1f, delegate {
|
|
throw new Exception("TEST");
|
|
}).OnComplete(() => {
|
|
onCompleteCalled = true;
|
|
});
|
|
while (tweener.isAlive) {
|
|
yield return null;
|
|
}
|
|
Assert.IsFalse(onCompleteCalled);
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator ExceptionOnLastFrame() {
|
|
expectTweenWasStoppedBecauseException();
|
|
expectOnCompleteIgnored();
|
|
var onCompleteDidCalled = false;
|
|
var tweener = Tween.Custom(transform, 0, 1, getDt() * 4f, (_, val) => {
|
|
if (val > 0.99f) {
|
|
throw new Exception("TEST");
|
|
}
|
|
}).OnComplete(() => {
|
|
onCompleteDidCalled = true;
|
|
});
|
|
while (tweener.isAlive) {
|
|
yield return null;
|
|
}
|
|
Assert.IsFalse(onCompleteDidCalled);
|
|
}
|
|
|
|
static void expectOnCompleteIgnored() => LogAssert.Expect(LogType.Error, new Regex(Constants.onCompleteCallbackIgnored));
|
|
|
|
static void expectTweenWasStoppedBecauseException() {
|
|
LogAssert.Expect(LogType.Exception, new Regex(".*"));
|
|
LogAssert.Expect(LogType.Warning, new Regex("Tween was stopped because of exception"));
|
|
}
|
|
}
|
|
#endif |