diff --git a/Assembly-CSharp-Editor.csproj b/Assembly-CSharp-Editor.csproj index 02b2a92..f84e438 100644 --- a/Assembly-CSharp-Editor.csproj +++ b/Assembly-CSharp-Editor.csproj @@ -48,6 +48,7 @@ + /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/Advertisements/Editor/UnityEditor.Advertisements.dll diff --git a/Assets/IsoTools/Tiled/Internal/Editor/TiledMapPropertiesTests.cs b/Assets/IsoTools/Tiled/Internal/Editor/TiledMapPropertiesTests.cs new file mode 100644 index 0000000..1e910dc --- /dev/null +++ b/Assets/IsoTools/Tiled/Internal/Editor/TiledMapPropertiesTests.cs @@ -0,0 +1,115 @@ +using UnityEngine; +using NUnit.Framework; +using System.Collections.Generic; + +namespace IsoTools.Tiled.Internal { + public class TiledMapPropertiesTests { + + [Test] + public void Test00() { + var props = new TiledMapProperties(null); + Assert.AreEqual(props.Count, 0); + Assert.False(props.Has("")); + 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", + "fakep" + }; + var props = new TiledMapProperties(prop_list); + Assert.AreEqual(props.Count, 3); + + Assert.True(props.Has("prop1")); + Assert.True(props.Has("prop2")); + Assert.True(props.Has("prop3")); + + Assert.False(props.Has("")); + Assert.False(props.Has("val2")); + Assert.False(props.Has("prop4")); + 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); + 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 Test04() { + var prop_list = new List{ + "bool" , "true", + "short" , "64", + "int" , "128", + "long" , "1024", + "float" , "1.2", + "double", "1.23", + "string", "hello" + }; + var props = new TiledMapProperties(prop_list); + + bool v0; + short v1; + int v2; + long v3; + float v4; + double v5; + string v6; + + 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("string", out v6)); + + 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(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("string"), v6); + } + } +} // namespace IsoTools.Tiled.Internal diff --git a/Assets/IsoTools/Tiled/Internal/Editor/TiledMapPropertiesTests.cs.meta b/Assets/IsoTools/Tiled/Internal/Editor/TiledMapPropertiesTests.cs.meta new file mode 100644 index 0000000..8c27b5e --- /dev/null +++ b/Assets/IsoTools/Tiled/Internal/Editor/TiledMapPropertiesTests.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1fe9dff9033b94dc2bcc389ef678be7b +timeCreated: 1454350914 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/IsoTools/Tiled/TiledMapAsset.cs b/Assets/IsoTools/Tiled/TiledMapAsset.cs index b9f722a..da30c6e 100644 --- a/Assets/IsoTools/Tiled/TiledMapAsset.cs +++ b/Assets/IsoTools/Tiled/TiledMapAsset.cs @@ -46,4 +46,4 @@ namespace IsoTools.Tiled { public class TiledMapAsset : ScriptableObject { public TiledMapData Data = new TiledMapData(); } -} // namespace IsoTools.Tiled \ No newline at end of file +} // namespace IsoTools.Tiled diff --git a/Assets/IsoTools/Tiled/TiledMapProperties.cs b/Assets/IsoTools/Tiled/TiledMapProperties.cs index 94c184a..c487ad9 100644 --- a/Assets/IsoTools/Tiled/TiledMapProperties.cs +++ b/Assets/IsoTools/Tiled/TiledMapProperties.cs @@ -14,6 +14,14 @@ namespace IsoTools.Tiled { _properties = properties; } + public int Count { + get { + return _properties != null + ? _properties.Count / 2 + : 0; + } + } + public bool Has(string property_name) { if ( _properties != null ) { for ( var i = 0; i < _properties.Count / 2; ++i ) {