public void GetProjectReferenceAssemblyNames_returns_references_for_websites() { var project = MockDTE.CreateWebSite( new[] { MockDTE.CreateAssemblyReference( "System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"), MockDTE.CreateAssemblyReference( "EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") }); var referenceAssemblyNames = VsUtils.GetProjectReferenceAssemblyNames(project).ToArray(); Assert.Equal(2, referenceAssemblyNames.Count()); Assert.Equal("EntityFramework", referenceAssemblyNames.Last().Key); Assert.Equal(new Version(5, 0, 0, 0), referenceAssemblyNames.Last().Value); }
public void GetProjectReferenceAssemblyNames_handles_duplicate_references() { var project = MockDTE.CreateWebSite( new[] { MockDTE.CreateAssemblyReference( "System.Web.WebPages.Deployment, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"), MockDTE.CreateAssemblyReference( "System.Web.WebPages.Deployment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35") }); var referenceAssemblyNames = VsUtils.GetProjectReferenceAssemblyNames(project).ToArray(); Assert.Equal(2, referenceAssemblyNames.Count()); Assert.Equal("System.Web.WebPages.Deployment", referenceAssemblyNames.Last().Key); Assert.Equal(new Version(2, 0, 0, 0), referenceAssemblyNames.Last().Value); }
public void AssemblyLoader_passed_WebsiteProject_can_find_correct_paths_to_DLLs() { const string vsInstallPath = @"C:\My\Test\VS\InstallPath"; const string projectPath = @"C:\My\Test\WebsitePath"; var project = MockDTE.CreateWebSite( new[] { MockDTE.CreateAssemblyReference( "EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", Path.Combine(projectPath, "EntityFramework.dll")), MockDTE.CreateAssemblyReference( "EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", Path.Combine(projectPath, "EntityFramework.SqlServer.dll")), MockDTE.CreateAssemblyReference( "EntityFramework.SqlServerCompact, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", Path.Combine(projectPath, "EntityFramework.SqlServerCompact.dll")), MockDTE.CreateAssemblyReference( "My.WebsiteProject.Reference, Version=4.1.0.0, Culture=neutral, PublicKeyToken=bbbbbbbbbbbbbbbb", Path.Combine(projectPath, "My.WebsiteProject.Reference.dll")) }); var assemblyLoader = new DatabaseGenerationAssemblyLoader(project, vsInstallPath); // assert that the DLLs installed under VS are resolved there Assert.Equal( Path.Combine(vsInstallPath, "EntityFramework.dll"), assemblyLoader.GetAssemblyPath("EntityFramework")); Assert.Equal( Path.Combine(vsInstallPath, "EntityFramework.SqlServer.dll"), assemblyLoader.GetAssemblyPath("EntityFramework.SqlServer")); Assert.Equal( Path.Combine(vsInstallPath, "EntityFramework.SqlServerCompact.dll"), assemblyLoader.GetAssemblyPath("EntityFramework.SqlServerCompact")); // assert that other project references are resolved to wherever their reference points to Assert.Equal( Path.Combine(projectPath, "My.WebsiteProject.Reference.dll"), assemblyLoader.GetAssemblyPath("My.WebsiteProject.Reference")); }