using System; using NUnit.Framework; using Pkmnlib; using PkmnLibSharp; using PkmnLibSharp.Library; using PkmnLibSharp.Utilities; namespace PkmnLibSharpTests.Library { public class EffectParameterTests { [Test] public void CreateInt([Range(-10000000, 10000000, 1000000)] long value) { var p = new EffectParameter(value); Assert.AreEqual(EffectParameterType.Int, p.ParameterType); Assert.AreEqual(value, p.AsInt()); p.Dispose(); } [Test] public void CreateBool() { var p = new EffectParameter(true); Assert.AreEqual(EffectParameterType.Bool, p.ParameterType); Assert.AreEqual(true, p.AsBool()); p.Dispose(); p = new EffectParameter(false); Assert.AreEqual(EffectParameterType.Bool, p.ParameterType); Assert.AreEqual(false, p.AsBool()); p.Dispose(); } [Test] public void CreateFloat([Range(-5, 5, 0.25f)] float value) { var p = new EffectParameter(value); Assert.AreEqual(EffectParameterType.Float, p.ParameterType); Assert.AreEqual(value, p.AsFloat()); p.Dispose(); } [Test] public void CreateString() { var p = new EffectParameter("foobar"); Assert.AreEqual(EffectParameterType.String, p.ParameterType); Assert.AreEqual("foobar", p.AsString()); p.Dispose(); } [Test] public void ThrowOnWrongType() { var p = new EffectParameter(10); var ex = Assert.Throws(() => { p.AsString(); }); Assert.AreEqual("[CreatureLib] - 'Cast effect parameter to string, but was Int'", ex.Message); p.Dispose(); } } }