public void NetFrameworkVersionProvider_Net35()
        {
            var mscorlib35 = ImmutableArray.Create((MetadataReference)
                                                   MetadataReference.CreateFromFile(CreateMockPath("3.5/mscorlib.dll")));
            var compilation     = GetRawCompilation(mscorlib35);
            var versionProvider = new NetFrameworkVersionProvider();

            versionProvider.GetDotNetFrameworkVersion(compilation).Should().Be(NetFrameworkVersion.Probably35);
        }
        public void NetFrameworkVersionProvider_Net40_NoIOClass()
        {
            var mscorlib35 = ImmutableArray.Create((MetadataReference)
                                                   MetadataReference.CreateFromFile(CreateMockPath("4.0_no_IO/mscorlib.dll")));
            var compilation     = GetRawCompilation(mscorlib35);
            var versionProvider = new NetFrameworkVersionProvider();

            versionProvider.GetDotNetFrameworkVersion(compilation).Should().Be(NetFrameworkVersion.Between4And451);
        }
        public void NetFrameworkVersionProvider_CurrentAssemblyMscorlib_Netstandard()
        {
            var compilation = GetRawCompilation(FrameworkMetadataReference.Mscorlib
                                                .Concat(FrameworkMetadataReference.System)
                                                .Concat(FrameworkMetadataReference.Netstandard));
            var versionProvider = new NetFrameworkVersionProvider();

            // the local .net framework mscorlib is actually used
            versionProvider.GetDotNetFrameworkVersion(compilation).Should().Be(NetFrameworkVersion.After452);
        }