public void AssemblyLoader_passed_null_project_can_find_paths_for_standard_DLLs_case_insensitive()
 {
     const string vsInstallPath = @"C:\My\Test\VS\InstallPath";
     var assemblyLoader = new DatabaseGenerationAssemblyLoader(null, vsInstallPath);
     Assert.Equal(
         Path.Combine(vsInstallPath, "EntityFramework.dll"),
         assemblyLoader.GetAssemblyPath("EntityFramework"));
     Assert.Equal(
         Path.Combine(vsInstallPath, "EntityFramework.dll"),
         assemblyLoader.GetAssemblyPath("entityframework"));
     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.SqlServer.dll"),
         assemblyLoader.GetAssemblyPath("entityframework.sqlserver"));
     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.Equal(
         Path.Combine(vsInstallPath, "EntityFramework.SqlServerCompact.dll"),
         assemblyLoader.GetAssemblyPath("entityframework.sqlservercompact"));
     Assert.Equal(
         Path.Combine(vsInstallPath, "EntityFramework.SqlServerCompact.dll"),
         assemblyLoader.GetAssemblyPath("ENTITYFRAMEWORK.SQLSERVERCOMPACT"));
 }
        public void AssemblyLoader_passed_null_project_can_find_paths_for_standard_DLLs_case_insensitive()
        {
            const string vsInstallPath  = @"C:\My\Test\VS\InstallPath";
            var          assemblyLoader = new DatabaseGenerationAssemblyLoader(null, vsInstallPath);

            Assert.Equal(
                Path.Combine(vsInstallPath, "EntityFramework.dll"),
                assemblyLoader.GetAssemblyPath("EntityFramework"));
            Assert.Equal(
                Path.Combine(vsInstallPath, "EntityFramework.dll"),
                assemblyLoader.GetAssemblyPath("entityframework"));
            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.SqlServer.dll"),
                assemblyLoader.GetAssemblyPath("entityframework.sqlserver"));
            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.Equal(
                Path.Combine(vsInstallPath, "EntityFramework.SqlServerCompact.dll"),
                assemblyLoader.GetAssemblyPath("entityframework.sqlservercompact"));
            Assert.Equal(
                Path.Combine(vsInstallPath, "EntityFramework.SqlServerCompact.dll"),
                assemblyLoader.GetAssemblyPath("ENTITYFRAMEWORK.SQLSERVERCOMPACT"));
        }
        public void AssemblyLoader_passed_non_WebsiteProject_can_find_correct_paths_to_DLLs()
        {
            const string vsInstallPath = @"C:\My\Test\VS\InstallPath";
            const string projectPath = @"C:\My\Test\ProjectPath";
            var project =
                MockDTE.CreateProject(
                    new[]
                        {
                            MockDTE.CreateReference3(
                                "EntityFramework", "6.0.0.0", "EntityFramework",
                                Path.Combine(projectPath, "EntityFramework.dll")),
                            MockDTE.CreateReference3(
                                "EntityFramework.SqlServer", "6.0.0.0", "EntityFramework.SqlServer",
                                Path.Combine(projectPath, "EntityFramework.SqlServer.dll")),
                            MockDTE.CreateReference3(
                                "EntityFramework.SqlServerCompact", "6.0.0.0",
                                "EntityFramework.SqlServerCompact",
                                Path.Combine(projectPath, "EntityFramework.SqlServerCompact.dll")),
                            MockDTE.CreateReference3(
                                "My.Project.Reference", "6.0.0.0", "My.Project.Reference",
                                Path.Combine(projectPath, "My.Project.Reference.dll"), true)
                        });
            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.Project.Reference.dll"),
                assemblyLoader.GetAssemblyPath("My.Project.Reference"));
        }
        public void AssemblyLoader_passed_non_WebsiteProject_can_find_correct_paths_to_DLLs()
        {
            const string vsInstallPath = @"C:\My\Test\VS\InstallPath";
            const string projectPath   = @"C:\My\Test\ProjectPath";
            var          project       =
                MockDTE.CreateProject(
                    new[]
            {
                MockDTE.CreateReference3(
                    "EntityFramework", "6.0.0.0", "EntityFramework",
                    Path.Combine(projectPath, "EntityFramework.dll")),
                MockDTE.CreateReference3(
                    "EntityFramework.SqlServer", "6.0.0.0", "EntityFramework.SqlServer",
                    Path.Combine(projectPath, "EntityFramework.SqlServer.dll")),
                MockDTE.CreateReference3(
                    "EntityFramework.SqlServerCompact", "6.0.0.0",
                    "EntityFramework.SqlServerCompact",
                    Path.Combine(projectPath, "EntityFramework.SqlServerCompact.dll")),
                MockDTE.CreateReference3(
                    "My.Project.Reference", "6.0.0.0", "My.Project.Reference",
                    Path.Combine(projectPath, "My.Project.Reference.dll"), true)
            });
            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.Project.Reference.dll"),
                assemblyLoader.GetAssemblyPath("My.Project.Reference"));
        }
        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"));
        }
        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"));
        }