From ba33231d50e1dfd4d1c35ab11d383f23d15c6ca7 Mon Sep 17 00:00:00 2001 From: "Andrew Petrochuk (from Dev Box)" Date: Sun, 21 Jan 2024 16:12:39 -0800 Subject: [PATCH] Added type to control --- src/PAModel/Model/Control.cs | 9 +++------ src/PAModel/Model/ControlEditorState.cs | 8 ++++++++ src/PAModelTests/MsApp/MsappArchiveTests.cs | 9 ++++++--- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/PAModel/Model/Control.cs b/src/PAModel/Model/Control.cs index 66a0dced..4b12697d 100644 --- a/src/PAModel/Model/Control.cs +++ b/src/PAModel/Model/Control.cs @@ -2,8 +2,6 @@ // Licensed under the MIT License. using System.Diagnostics; -using System.Text.Json.Serialization; -using Microsoft.PowerPlatform.Formulas.Tools.JsonConverters; using YamlDotNet.Serialization; namespace Microsoft.PowerPlatform.Formulas.Tools.Model; @@ -20,6 +18,7 @@ public Control(ControlEditorState editorState) { EditorState = editorState ?? throw new ArgumentNullException(nameof(editorState)); Name = editorState.Name; + Type = editorState.Type; if (editorState.Children != null) { @@ -38,10 +37,8 @@ public Control(ControlEditorState editorState) public string Name { get; init; } - public string Type { get; set; } - - [JsonConverter(typeof(JsonDoubleToIntConverter))] - public int Index { get; set; } + [YamlMember(Alias = "Control")] + public string Type { get; init; } public IList Controls { get; init; } diff --git a/src/PAModel/Model/ControlEditorState.cs b/src/PAModel/Model/ControlEditorState.cs index 7daf8e14..5f02d371 100644 --- a/src/PAModel/Model/ControlEditorState.cs +++ b/src/PAModel/Model/ControlEditorState.cs @@ -1,12 +1,20 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +using System.Text.Json.Serialization; +using Microsoft.PowerPlatform.Formulas.Tools.JsonConverters; + namespace Microsoft.PowerPlatform.Formulas.Tools.Model; public record ControlEditorState { public string Name { get; init; } + public string Type { get; set; } + + [JsonConverter(typeof(JsonDoubleToIntConverter))] + public int Index { get; set; } + public ControlEditorState[] Children { get; set; } public IList Rules { get; init; } diff --git a/src/PAModelTests/MsApp/MsappArchiveTests.cs b/src/PAModelTests/MsApp/MsappArchiveTests.cs index 20a919fa..3f5b25b4 100644 --- a/src/PAModelTests/MsApp/MsappArchiveTests.cs +++ b/src/PAModelTests/MsApp/MsappArchiveTests.cs @@ -74,9 +74,11 @@ public void AddEntryTests(string[] entries) } [TestMethod] - [DataRow(@"Apps/WithYaml/HelloWorld.msapp", 14, 2, "HelloScreen", 8)] - [DataRow(@"Apps/AppWithLabel.msapp", 11, 2, "Screen1", 8)] - public void GetTopLevelControlsTests(string testFile, int allEntriesCount, int controlsCount, string topLevelControlName, int topLevelRulesCount) + [DataRow(@"Apps/WithYaml/HelloWorld.msapp", 14, 2, "HelloScreen", "screen", 8)] + [DataRow(@"Apps/AppWithLabel.msapp", 11, 2, "Screen1", "ControlInfo", 8)] + public void GetTopLevelControlsTests(string testFile, int allEntriesCount, int controlsCount, + string topLevelControlName, string topLevelControlType, + int topLevelRulesCount) { // Arrange: Create new ZipArchive in memory using var msappArchive = new MsappArchive(testFile); @@ -88,5 +90,6 @@ public void GetTopLevelControlsTests(string testFile, int allEntriesCount, int c var topLevelControl = msappArchive.TopLevelControls.Single(c => c.Name == topLevelControlName); topLevelControl.EditorState.Rules.Count.Should().Be(topLevelRulesCount); + topLevelControl.Type.Should().Be(topLevelControlType); } }