public void DataCorrectlySerializes()
        {
            string expectedSupportedMessage = "A newer version of Visual Studio is recommended for projects targetting .NET Core projects later then 2.2.";
            string versionDataString        = $@" {{
  ""vsVersions"": {{
    ""15.6"": {{
      ""recommendedVersion"": ""2.0"",
      ""nonRecommendedVersionSelectedMessage"": """",
      ""supportedVersion"": ""2.1"",
      ""openSupportedMessage"": """",
      ""unsupportedVersion"": ""3.0"",
      ""unsupportedVersionsInstalledMessage"": """",
      ""openUnsupportedMessage"": """"
    }},
    ""15.8"": {{
      ""recommendedVersion"": ""2.1"",
      ""nonRecommendedVersionSelectedMessage"": ""{0} requires a newer version of Visual Studio."",
      ""supportedVersion"": ""2.2"",
      ""openSupportedMessage"": ""Visual Studio 2017 version 15.9 or newer is recommended for .NET Core 2.2 projects."",
      ""unsupportedVersion"": ""3.0"",
      ""unsupportedVersionsInstalledMessage"": """",
      ""openUnsupportedMessage"": """"
    }},
    ""15.9"": {{
      ""nonRecommendedVersionSelectedMessage"": """",
      ""supportedVersion"": ""2.3"",
      ""openSupportedMessage"": ""{expectedSupportedMessage}"",
      ""unsupportedVersion"": ""3.0"",
      ""unsupportedVersionsInstalledMessage"": """",
      ""openUnsupportedMessage"": """"
    }},
    ""16.0"": {{
      ""nonRecommendedVersionSelectedMessage"": """",
      ""supportedVersion"": ""3.0"",
      ""openSupportedMessage"": ""New string for 3.0 project open scenario"",
      ""unsupportedVersion"": ""3.1"",
      ""unsupportedVersionsInstalledMessage"": """",
      ""openUnsupportedMessage"": """"
    }}
  }}
}}";
            var    data = VersionCompatibilityData.DeserializeVersionData(versionDataString);

            Assert.NotNull(data);
            Assert.False(data.TryGetValue(new Version("15.5"), out _));
            Assert.True(data.TryGetValue(new Version("15.6"), out _));
            Assert.True(data.TryGetValue(new Version("15.8"), out _));
            Assert.True(data.TryGetValue(new Version("16.0"), out _));
            Assert.True(data.TryGetValue(new Version("15.9"), out var compatibilityData));
            Assert.NotNull(compatibilityData.SupportedVersion);
            Assert.NotNull(compatibilityData.UnsupportedVersion);
            Assert.NotNull(compatibilityData.OpenSupportedMessage);
            Assert.NotNull(compatibilityData.OpenUnsupportedMessage);
            Assert.Equal(expectedSupportedMessage, compatibilityData.OpenSupportedMessage);
        }
Esempio n. 2
0
 /// <summary>
 /// If the cached file exists reads the data and returns it
 /// </summary>
 private Dictionary <Version, VersionCompatibilityData> GetCompabilityDataFromCacheFile()
 {
     try
     {
         string data = _versionDataCacheFile?.ReadCacheFile();
         if (data != null)
         {
             return(VersionCompatibilityData.DeserializeVersionData(data));
         }
     }
     catch
     {
     }
     return(null);
 }
        /// <summary>
        /// If the cached file exists reads the data and returns it
        /// </summary>
        private async Task <Dictionary <Version, VersionCompatibilityData>?> GetCompatibilityDataFromCacheFileAsync()
        {
            if (_versionDataCacheFile is null)
            {
                return(null);
            }

            try
            {
                string?data = await _versionDataCacheFile.ReadCacheFileAsync();

                if (data != null)
                {
                    return(VersionCompatibilityData.DeserializeVersionData(data));
                }
            }
            catch
            {
            }

            return(null);
        }
        public void DataCorrectlySerializes_PreviewVersion()
        {
            string expectedSupportedMessage = "A newer version of Visual Studio is recommended for projects targetting .NET Core projects later then 2.2.";
            string versionDataString        = $@" {{
  ""vsVersions"": {{
    ""16.1"": {{
      ""openSupportedPreviewMessage"": ""{expectedSupportedMessage}"",
      ""supportedPreviewVersion"": ""3.0"",
    }}
  }}
}}";
            var    data = VersionCompatibilityData.DeserializeVersionData(versionDataString);

            Assert.NotNull(data);
            Assert.True(data.TryGetValue(new Version("16.1"), out var compatibilityData));
            Assert.Null(compatibilityData.SupportedVersion);
            Assert.Null(compatibilityData.UnsupportedVersion);
            Assert.Null(compatibilityData.OpenSupportedMessage);
            Assert.Null(compatibilityData.OpenUnsupportedMessage);
            Assert.NotNull(compatibilityData.SupportedPreviewVersion);
            Assert.Equal(expectedSupportedMessage, compatibilityData.OpenSupportedPreviewMessage);
        }