示例#1
0
        private bool IsHigherAssemblyVersionInFrameworkHelper(IFileSystem fileSystem, string simpleAssemblyName, Version availableVersion, FrameworkName targetFrameworkName)
        {
            var mockFileSystemProvider = new Mock <IFileSystemProvider>();

            mockFileSystemProvider.Setup(f => f.GetFileSystem(MockFileSystemRoot)).Returns(fileSystem);

            return(FrameworkAssemblyResolver.IsHigherAssemblyVersionInFramework(simpleAssemblyName,
                                                                                availableVersion, targetFrameworkName, mockFileSystemProvider.Object, GetPathToReferenceAssemblies, new ConcurrentDictionary <string, List <AssemblyName> >()));
        }
示例#2
0
        public void GetFrameworkAssembliesReturnsEmptyListWhenFileDoesNotExist()
        {
            // Arrange
            // Pass in a fileSystem with no file in it. An empty list should be returned
            var mockFileSystem = new MockFileSystem(MockFileSystemRoot);

            // Act & Assert
            Assert.Empty(FrameworkAssemblyResolver.GetFrameworkAssemblies(mockFileSystem));
        }
示例#3
0
 public void FrameworkAssemblyResolver_IsFrameworkFacade_ThrowsForNullFunc()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         FrameworkAssemblyResolver.IsFrameworkFacade(
             "System",
             _frameworkName,
             getPathToReferenceAssembliesFunc: null,
             frameworkAssembliesDictionary: _dictionary);
     });
 }
示例#4
0
 public void FrameworkAssemblyResolver_IsHigherAssemblyVersionInFramework_ThrowsForNullFunc()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         FrameworkAssemblyResolver.IsHigherAssemblyVersionInFramework(
             "System",
             new Version("4.0.0"),
             _frameworkName,
             getPathToReferenceAssembliesFunc: null,
             frameworkAssembliesDictionary: _dictionary);
     });
 }
示例#5
0
 public void FrameworkAssemblyResolver_IsFrameworkFacade_ThrowsForNullFrameworkName()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         FrameworkAssemblyResolver.IsFrameworkFacade(
             "System",
             targetFrameworkName: null,
             getPathToReferenceAssembliesFunc: frameworkName => new List <string>()
         {
             _fixture.Path
         },
             frameworkAssembliesDictionary: _dictionary);
     });
 }
示例#6
0
 public void FrameworkAssemblyResolver_IsFrameworkFacade_ThrowsForNullOrEmptyAssemblyName(string simpleAssemblyName)
 {
     Assert.Throws <ArgumentException>(() =>
     {
         FrameworkAssemblyResolver.IsFrameworkFacade(
             simpleAssemblyName,
             _frameworkName,
             frameworkName => new List <string>()
         {
             _fixture.Path
         },
             _dictionary);
     });
 }
示例#7
0
        public void FrameworkAssemblyResolver_IsFrameworkFacade(string simpleAssemblyName, int expectedCount, bool expectedIsFacade)
        {
            var actualIsFacade = FrameworkAssemblyResolver.IsFrameworkFacade(
                simpleAssemblyName,
                _frameworkName,
                frameworkName => new List <string>()
            {
                _fixture.Path
            },
                _dictionary);

            Assert.Equal(expectedIsFacade, actualIsFacade);
            Assert.Equal(expectedCount, _dictionary.Count);
        }
示例#8
0
 public void FrameworkAssemblyResolver_IsFrameworkFacade_ThrowsForNullDictionary()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         FrameworkAssemblyResolver.IsFrameworkFacade(
             "System",
             _frameworkName,
             frameworkName => new List <string>()
         {
             _fixture.Path
         },
             frameworkAssembliesDictionary: null);
     });
 }
示例#9
0
        public void FrameworkAssemblyResolver_IsFrameworkFacade_HandlesNonDotNetFrameworkFrameworks(string name)
        {
            var isFacade = FrameworkAssemblyResolver.IsFrameworkFacade(
                "System",
                new FrameworkName(name),
                frameworkName => new List <string>()
            {
                _fixture.Path
            },
                _dictionary);

            Assert.False(isFacade);
            Assert.Equal(0, _dictionary.Count);
        }
示例#10
0
        public void FrameworkAssemblyResolver_IsHigherAssemblyVersionInFramework_HandlesNonDotNetFrameworkFrameworks(string name)
        {
            var actualResult = FrameworkAssemblyResolver.IsHigherAssemblyVersionInFramework(
                "System",
                new Version("3.0.0"),
                new FrameworkName(name),
                frameworkName => new List <string>()
            {
                _fixture.Path
            },
                _dictionary);

            Assert.False(actualResult);
            Assert.Equal(0, _dictionary.Count);
        }
示例#11
0
 public void FrameworkAssemblyResolver_IsHigherAssemblyVersionInFramework_ThrowsForNullDictionary()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         FrameworkAssemblyResolver.IsHigherAssemblyVersionInFramework(
             "System",
             new Version("4.0.0"),
             _frameworkName,
             frameworkName => new List <string>()
         {
             _fixture.Path
         },
             frameworkAssembliesDictionary: null);
     });
 }
示例#12
0
 public void FrameworkAssemblyResolver_IsHigherAssemblyVersionInFramework_ThrowsForNullFrameworkName()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         FrameworkAssemblyResolver.IsHigherAssemblyVersionInFramework(
             "System",
             new Version("4.0.0"),
             targetFrameworkName: null,
             getPathToReferenceAssembliesFunc: frameworkName => new List <string>()
         {
             _fixture.Path
         },
             frameworkAssembliesDictionary: _dictionary);
     });
 }
示例#13
0
 public void FrameworkAssemblyResolver_IsHigherAssemblyVersionInFramework_ThrowsForNullOrEmptyAssemblyName(string simpleAssemblyName)
 {
     Assert.Throws <ArgumentException>(() =>
     {
         FrameworkAssemblyResolver.IsHigherAssemblyVersionInFramework(
             simpleAssemblyName,
             new Version("4.0.0"),
             _frameworkName,
             frameworkName => new List <string>()
         {
             _fixture.Path
         },
             _dictionary);
     });
 }
示例#14
0
        public void FrameworkAssemblyResolver_IsHigherAssemblyVersionInFramework(string simpleAssemblyName, string version, bool expectedResult)
        {
            var actualResult = FrameworkAssemblyResolver.IsHigherAssemblyVersionInFramework(
                simpleAssemblyName,
                new Version(version),
                _frameworkName,
                frameworkName => new List <string>()
            {
                _fixture.Path
            },
                _dictionary);

            Assert.Equal(expectedResult, actualResult);
            Assert.Equal(1, _dictionary.Count);
        }
示例#15
0
        public void FrameworkAssemblyResolver_IsHigherAssemblyVersionInFramework_SupportFacadeAssemblies(string simpleAssemblyName)
        {
            var actualResult = FrameworkAssemblyResolver.IsHigherAssemblyVersionInFramework(
                simpleAssemblyName,
                new Version("3.0.0"),
                _frameworkName,
                frameworkName => new List <string>()
            {
                _fixture.Path
            },
                _dictionary);

            Assert.True(actualResult);
            Assert.Equal(1, _dictionary.Count);
        }
示例#16
0
        public void GetFrameworkAssembliesReturnsEmptyListWhenAFileEntryDoesNotHaveMandatoryAttributes()
        {
            // Arrange
            // In the content below, the attribute version is missing, and GetFrameworkAssemblies should return an empty list
            var content = @"<?xml version='1.0' encoding='utf-8'?>
<FileList  Name='.NETFramework, v4.0.0.0'>
  <File AssemblyName='System.Net' PublicKeyToken='aaaaaaaaaaaaaaaa' Culture='neutral' ProcessorArchitecture='MSIL' InGac='true' />
</FileList>";

            var mockFileSystem = new MockFileSystem(MockFileSystemRoot);

            mockFileSystem.AddFile(FrameworkAssemblyResolver.FrameworkListFileName, content);

            // Act & Assert
            Assert.Empty(FrameworkAssemblyResolver.GetFrameworkAssemblies(mockFileSystem));
        }
示例#17
0
        public void GetFrameworkAssembliesReturnsEmptyListWhenFileIsInvalid()
        {
            // Arrange
            // In the content below, after a valid entry for 'System.Net' there is an invalid entry for 'mscorlib'
            // And, GetFrameworkAssemblies should return an empty list when this happens
            var content = @"<?xml version='1.0' encoding='utf-8'?>
<FileList  Name='.NETFramework, v4.0.0.0'>
  <File AssemblyName='System.Net' Version='4.0.0.0' PublicKeyToken='aaaaaaaaaaaaaaaa' Culture='neutral' ProcessorArchitecture='MSIL' InGac='true' />
  <File AssemblyName=mscorlib Version='4.0.0.0' PublicKeyToken='aaaaaaaaaaaaaaaa' Culture='neutral' ProcessorArchitecture='MSIL' InGac='true' />
</FileList>";

            var mockFileSystem = new MockFileSystem(MockFileSystemRoot);

            mockFileSystem.AddFile(FrameworkAssemblyResolver.FrameworkListFileName, content);

            // Act & Assert
            Assert.Empty(FrameworkAssemblyResolver.GetFrameworkAssemblies(mockFileSystem));
        }
示例#18
0
        public void FrameworkAssemblyResolver_IsFrameworkFacade_HandlesNonExistentFrameworkDirectory()
        {
            bool isFacade;

            using (var emptyDirectory = TestDirectory.Create())
            {
                isFacade = FrameworkAssemblyResolver.IsFrameworkFacade(
                    "System",
                    _frameworkName,
                    frameworkName => new List <string>()
                {
                    emptyDirectory.Path
                },
                    _dictionary);
            }

            Assert.False(isFacade);
            Assert.Equal(1, _dictionary.Count);
        }
示例#19
0
        public void FrameworkAssemblyResolver_IsFrameworkFacade_HandlesNonExistentFacadesDirectory()
        {
            bool isFacade;

            using (var directory = TestDirectory.Create())
            {
                var redistListDirectory = Directory.CreateDirectory(Path.Combine(directory.Path, "RedistList"));

                TestDirectoryFixture.CreateFrameworkListFile(redistListDirectory);

                isFacade = FrameworkAssemblyResolver.IsFrameworkFacade(
                    "System.Runtime",
                    _frameworkName,
                    frameworkName => new List <string>()
                {
                    redistListDirectory.FullName
                },
                    _dictionary);
            }

            Assert.False(isFacade);
            Assert.Equal(1, _dictionary.Count);
        }