Skip to content

Commit 336042e

Browse files
committed
Added test for animator parameters caching
1 parent 4473444 commit 336042e

File tree

8 files changed

+159
-5
lines changed

8 files changed

+159
-5
lines changed

Assets/AdncAnimatorHelpers/Editor/Testing/HasParameter.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
using System;
2+
using Adnc.AnimatorHelpers.Editors.Testing.Utilities;
3+
using Adnc.AnimatorHelpers.HasParameters;
4+
using Adnc.Utility.Testing;
5+
using NUnit.Framework;
6+
using UnityEngine;
7+
using Object = UnityEngine.Object;
8+
9+
namespace Adnc.AnimatorHelpers.Editors.Testing.HasParameters {
10+
[TestFixture(Category = "HasParameter")]
11+
public class TestAnimatorParameters : TestBase {
12+
private AnimatorStub _stub;
13+
14+
[SetUp]
15+
public void Setup () {
16+
_stub = new AnimatorStub();
17+
}
18+
19+
[TearDown]
20+
public void Teardown () {
21+
Object.DestroyImmediate(_stub.Animator.gameObject);
22+
_stub = null;
23+
}
24+
25+
[Test]
26+
public void ErrorsOnNullAnimatorConstructor () {
27+
Assert.Throws<ArgumentNullException>(() => { new AnimatorParameters(null); });
28+
}
29+
30+
[Test]
31+
public void DoesNotCrashOnNullAnimatorParameters () {
32+
_stub.InjectCtrl();
33+
var par = new AnimatorParameters(_stub.Animator);
34+
}
35+
36+
[Test]
37+
public void StoresAllParameters () {
38+
_stub.AnimatorCtrl.AddParameter(new AnimatorControllerParameter {
39+
name = "a",
40+
defaultBool = true,
41+
type = AnimatorControllerParameterType.Bool
42+
});
43+
44+
_stub.InjectCtrl();
45+
var par = new AnimatorParameters(_stub.Animator);
46+
47+
Assert.IsTrue(par.parameters.dic.ContainsKey("a"));
48+
}
49+
50+
[Test]
51+
public void StoresAllBools () {
52+
_stub.AnimatorCtrl.AddParameter(new AnimatorControllerParameter {
53+
name = "a",
54+
defaultBool = true,
55+
type = AnimatorControllerParameterType.Bool
56+
});
57+
58+
_stub.InjectCtrl();
59+
var par = new AnimatorParameters(_stub.Animator);
60+
61+
Assert.IsTrue(par.bools.dic.ContainsKey("a"));
62+
}
63+
64+
[Test]
65+
public void StoresAllFloats () {
66+
_stub.AnimatorCtrl.AddParameter(new AnimatorControllerParameter {
67+
name = "a",
68+
defaultFloat = 1,
69+
type = AnimatorControllerParameterType.Float
70+
});
71+
72+
_stub.InjectCtrl();
73+
var par = new AnimatorParameters(_stub.Animator);
74+
75+
Assert.IsTrue(par.floats.dic.ContainsKey("a"));
76+
}
77+
78+
[Test]
79+
public void StoresAllInts () {
80+
_stub.AnimatorCtrl.AddParameter(new AnimatorControllerParameter {
81+
name = "a",
82+
defaultInt = 1,
83+
type = AnimatorControllerParameterType.Int
84+
});
85+
86+
_stub.InjectCtrl();
87+
var par = new AnimatorParameters(_stub.Animator);
88+
89+
Assert.IsTrue(par.ints.dic.ContainsKey("a"));
90+
}
91+
92+
[Test]
93+
public void StoresAllTriggers () {
94+
_stub.AnimatorCtrl.AddParameter(new AnimatorControllerParameter {
95+
name = "a",
96+
type = AnimatorControllerParameterType.Trigger
97+
});
98+
99+
_stub.InjectCtrl();
100+
var par = new AnimatorParameters(_stub.Animator);
101+
102+
Assert.IsTrue(par.triggers.dic.ContainsKey("a"));
103+
}
104+
}
105+
}

Assets/AdncAnimatorHelpers/Editor/Testing/HasParameter/TestAnimatorParameters.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using Adnc.AnimatorHelpers.HasParameters;
2+
using Adnc.Utility.Testing;
3+
using NUnit.Framework;
4+
5+
namespace Adnc.AnimatorHelpers.Editors.Testing.HasParameters {
6+
[TestFixture(Category = "HasParameter")]
7+
public class TestParameters : TestBase {
8+
[Test]
9+
public void AddIncrementsList () {
10+
var p = new Parameters<bool>();
11+
12+
p.Add("a", true);
13+
14+
Assert.That(p.list.Count, Is.GreaterThan(0));
15+
}
16+
17+
[Test]
18+
public void AddInjectsKeyValueIntoList () {
19+
var p = new Parameters<bool>();
20+
21+
var kv = p.Add("a", true);
22+
23+
Assert.That(p.list, Contains.Item(kv));
24+
}
25+
26+
[Test]
27+
public void AddInjectsKeyValueIntoDictionary () {
28+
var p = new Parameters<bool>();
29+
30+
var kv = p.Add("a", true);
31+
32+
Assert.That(p.dic, Contains.Key(kv.key));
33+
Assert.IsTrue(p.dic.ContainsValue(kv));
34+
}
35+
}
36+
}

Assets/AdncAnimatorHelpers/Editor/Testing/HasParameter/TestParameters.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/AdncAnimatorHelpers/Editor/Testing/Utilities/AnimatorStub.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,9 @@ public bool IsValid {
2424
/// Inject the animator stub onto a GameObject
2525
/// </summary>
2626
/// <param name="target"></param>
27-
public AnimatorStub (GameObject target) {
27+
public AnimatorStub (GameObject target = null) {
2828
if (target == null) {
29-
LogError("Please pass in a target to verify. Failed to generate an animator stub");
30-
31-
return;
29+
target = new GameObject("AnimatorStub");
3230
}
3331

3432
Animator = target.AddComponent<Animator>();

Assets/AdncAnimatorHelpers/Scripts/HasParameter/AnimatorParameters.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ public class AnimatorParameters {
1010
public readonly Parameters<string> triggers = new Parameters<string>();
1111

1212
public AnimatorParameters (Animator animator) {
13+
if (animator == null) {
14+
throw new ArgumentNullException("animator");
15+
}
16+
1317
foreach (var p in animator.parameters) {
1418
parameters.Add(p.name, p);
1519

Assets/AdncAnimatorHelpers/Scripts/HasParameter/Parameters.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,16 @@ public class Parameters<V> {
55
public readonly List<KeyValue<V>> list = new List<KeyValue<V>>();
66
public readonly Dictionary<string, KeyValue<V>> dic = new Dictionary<string, KeyValue<V>>();
77

8-
public void Add (string key, V value) {
8+
public KeyValue<V> Add (string key, V value) {
99
var kv = new KeyValue<V> {
1010
key = key,
1111
value = value
1212
};
1313

1414
list.Add(kv);
1515
dic.Add(key, kv);
16+
17+
return kv;
1618
}
1719
}
1820
}

0 commit comments

Comments
 (0)