private void VerifyPlatformManifestsAreEqual(InstallManifestPlatform expected, InstallManifestPlatform actual)
        {
            actual.InstallActions.Count.ShouldEqual(expected.InstallActions.Count, $"The number of platforms ({actual.InstallActions.Count}) do not match the expected number of platforms ({expected.InstallActions.Count}).");

            for (int i = 0; i < actual.InstallActions.Count; i++)
            {
                actual.InstallActions[i].Version.ShouldEqual(expected.InstallActions[i].Version);
                actual.InstallActions[i].Args.ShouldEqual(expected.InstallActions[i].Args);
                actual.InstallActions[i].Name.ShouldEqual(expected.InstallActions[i].Name);
                actual.InstallActions[i].InstallerRelativePath.ShouldEqual(expected.InstallActions[i].InstallerRelativePath);
            }
        }
        public void CanReadExpectedJsonString()
        {
            string installManifestJsonString =
                @"
{
  ""Version"" : ""1"",
  ""PlatformInstallManifests"" : {
    ""Windows"": {
      ""InstallActions"": [
        {
        ""Name"" : ""Git"",
        ""Version"" : ""2.19.0.1.34"",
        ""InstallerRelativePath"" : ""Installers\\Windows\\G4W\\Git-2.19.0.gvfs.1.34.gc7fb556-64-bit.exe"",
        ""Args"" : ""/VERYSILENT /CLOSEAPPLICATIONS""
      },
      {
        ""Name"" : ""PostGitInstall script"",
        ""InstallerRelativePath"" : ""Installers\\Windows\\GSD\\postinstall.ps1""
      },
      ]
    }
  }
}
";
            InstallManifest installManifest = InstallManifest.FromJsonString(installManifestJsonString);

            installManifest.ShouldNotBeNull();
            InstallManifestPlatform platformInstallManifest = installManifest.PlatformInstallManifests[InstallManifest.WindowsPlatformKey];

            platformInstallManifest.ShouldNotBeNull();
            platformInstallManifest.InstallActions.Count.ShouldEqual(2);

            this.VerifyInstallActionInfo(
                platformInstallManifest.InstallActions[0],
                "Git",
                "2.19.0.1.34",
                "/VERYSILENT /CLOSEAPPLICATIONS",
                "Installers\\Windows\\G4W\\Git-2.19.0.gvfs.1.34.gc7fb556-64-bit.exe");

            this.VerifyInstallActionInfo(
                platformInstallManifest.InstallActions[1],
                "PostGitInstall script",
                null,
                null,
                "Installers\\Windows\\GSD\\postinstall.ps1");
        }