From 7f9889ae927b61fc278c8bbe029eb1122ae295b8 Mon Sep 17 00:00:00 2001
From: Frederik Carlier <frederik.carlier@quamotion.mobi>
Date: Sun, 15 May 2016 21:32:12 +0200
Subject: [PATCH] Type: Fix TypeName property for arrays, add ToString method

---
 source/ProtocolGenerator.Tests/TypeTests.cs | 39 +++++++++++++++++++++
 source/ProtocolGenerator/Type.cs            |  7 +++-
 2 files changed, 45 insertions(+), 1 deletion(-)
 create mode 100644 source/ProtocolGenerator.Tests/TypeTests.cs

diff --git a/source/ProtocolGenerator.Tests/TypeTests.cs b/source/ProtocolGenerator.Tests/TypeTests.cs
new file mode 100644
index 0000000..1b0f6d7
--- /dev/null
+++ b/source/ProtocolGenerator.Tests/TypeTests.cs
@@ -0,0 +1,39 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MasterDevs.ChromeDevTools.ProtocolGenerator.Tests
+{
+    [TestClass]
+    public class TypeTests
+    {
+
+        [TestMethod]
+        [DeploymentItem(DeploymentItems.Inspector10)]
+        public void TypeNameTest()
+        {
+            Protocol p = ProtocolProcessor.LoadProtocol(DeploymentItems.Inspector10, "Chrome-1.0");
+
+            var evaluateCommand = p.GetDomain("Page").GetCommand("searchInResource");
+            var result = evaluateCommand.Returns.Single();
+
+            Assert.AreEqual("SearchMatch[]", result.TypeName.ToString());
+        }
+
+        [TestMethod]
+        [DeploymentItem(DeploymentItems.Inspector10)]
+        public void ToStringTest()
+        {
+            Protocol p = ProtocolProcessor.LoadProtocol(DeploymentItems.Inspector10, "Chrome-1.0");
+
+            var evaluateCommand = p.GetDomain("Page").GetCommand("searchInResource");
+            var result = evaluateCommand.Returns.Single();
+            var items = result.Items;
+
+            Assert.AreEqual("SearchMatch", items.ToString());
+        }
+    }
+}
diff --git a/source/ProtocolGenerator/Type.cs b/source/ProtocolGenerator/Type.cs
index 436cb22..f383acf 100644
--- a/source/ProtocolGenerator/Type.cs
+++ b/source/ProtocolGenerator/Type.cs
@@ -75,7 +75,7 @@ namespace MasterDevs.ChromeDevTools.ProtocolGenerator
                 }
                 else if (this.Items != null)
                 {
-                    return this.Items.Name + "[]";
+                    return this.Items.TypeName + "[]";
                 }
                 else if (this.Kind != null && this.Kind != "object")
                 {
@@ -158,5 +158,10 @@ namespace MasterDevs.ChromeDevTools.ProtocolGenerator
         {
             return string.Equals(this.Kind, "object", StringComparison.OrdinalIgnoreCase);
         }
+
+        public override string ToString()
+        {
+            return this.TypeName;
+        }
     }
 }
-- 
GitLab