using UnityEngine; using NUnit.Framework; using System; using System.Collections.Generic; namespace IsoTools.Tiled.Internal { class TiledMapPropertiesTests { [Test] public void Test00() { var props = new TiledMapProperties(null); Assert.AreEqual(props.Count, 0); Assert.False(props.Has(null)); Assert.False(props.Has(string.Empty)); Assert.False(props.Has("prop1")); } [Test] public void Test01() { var prop_list = new List{ "prop1", "val1", "prop2", "val2", "prop3", "val3", "prop4", "", "fakep" }; var props = new TiledMapProperties(prop_list); Assert.AreEqual(props.Count, 4); Assert.True(props.Has("prop1")); Assert.True(props.Has("prop2")); Assert.True(props.Has("prop3")); Assert.True(props.Has("prop4")); Assert.False(props.Has(null)); Assert.False(props.Has("val2")); Assert.False(props.Has("prop5")); Assert.False(props.Has(string.Empty)); } [Test] public void Test02() { var props = new TiledMapProperties(null); Assert.Throws(() => { props.GetAsBool (""); }); Assert.Throws(() => { props.GetAsShort (""); }); Assert.Throws(() => { props.GetAsInt (""); }); Assert.Throws(() => { props.GetAsLong (""); }); Assert.Throws(() => { props.GetAsFloat (""); }); Assert.Throws(() => { props.GetAsDouble(""); }); Assert.Throws(() => { props.GetAsString(""); }); } [Test] public void Test03() { var props = new TiledMapProperties(null); Assert.Throws(() => { props.GetKeyByIndex(0); }); Assert.Throws(() => { props.GetValueByIndex(0); }); var prop_list = new List{ "prop1", "val1", "prop2", "val2", "prop3", "val3", "prop4", "", "fakep" }; props = new TiledMapProperties(prop_list); Assert.AreEqual(props.GetKeyByIndex (0), "prop1"); Assert.AreEqual(props.GetKeyByIndex (1), "prop2"); Assert.AreEqual(props.GetValueByIndex(0), "val1"); Assert.AreEqual(props.GetValueByIndex(1), "val2"); Assert.Throws(() => { props.GetKeyByIndex(-1); }); Assert.Throws(() => { props.GetValueByIndex(4); }); } [Test] public void Test04() { var props = new TiledMapProperties(null); bool v0; short v1; int v2; long v3; float v4; double v5; string v6; Assert.False(props.TryGetAsBool ("", out v0)); Assert.False(props.TryGetAsShort ("", out v1)); Assert.False(props.TryGetAsInt ("", out v2)); Assert.False(props.TryGetAsLong ("", out v3)); Assert.False(props.TryGetAsFloat ("", out v4)); Assert.False(props.TryGetAsDouble("", out v5)); Assert.False(props.TryGetAsString("", out v6)); } [Test] public void Test05() { var prop_list = new List{ "bool" , "true", "short" , "64", "int" , "128", "long" , "1024", "float" , "1.2", "double" , "1.23", "string1", "hello", "string2", "" }; var props = new TiledMapProperties(prop_list); bool v0; short v1; int v2; long v3; float v4; double v5; string v6; string v7; Assert.True(props.TryGetAsBool ("bool" , out v0)); Assert.True(props.TryGetAsShort ("short" , out v1)); Assert.True(props.TryGetAsInt ("int" , out v2)); Assert.True(props.TryGetAsLong ("long" , out v3)); Assert.True(props.TryGetAsFloat ("float" , out v4)); Assert.True(props.TryGetAsDouble("double" , out v5)); Assert.True(props.TryGetAsString("string1", out v6)); Assert.True(props.TryGetAsString("string2", out v7)); Assert.AreEqual(v0, true); Assert.AreEqual(v1, 64); Assert.AreEqual(v2, 128); Assert.AreEqual(v3, 1024); Assert.AreEqual(v4, 1.2f); Assert.AreEqual(v5, 1.23); Assert.AreEqual(v6, "hello"); Assert.AreEqual(v7, ""); Assert.AreEqual(props.GetAsBool ("bool" ), v0); Assert.AreEqual(props.GetAsShort ("short" ), v1); Assert.AreEqual(props.GetAsInt ("int" ), v2); Assert.AreEqual(props.GetAsLong ("long" ), v3); Assert.AreEqual(props.GetAsFloat ("float" ), v4); Assert.AreEqual(props.GetAsDouble("double" ), v5); Assert.AreEqual(props.GetAsString("string1"), v6); Assert.AreEqual(props.GetAsString("string2"), v7); } } }