Esempio n. 1
0
        public void LoadXmlFromDefault()
        {
            var xml  = @"<ApiTool>
        <Targets>
            <Target Name='target1' Alias='alias1' />
       </Targets>
     </ApiTool> ";
            var file = new FileInfo("TargetMap.xml");

            try
            {
                using (var fs = file.OpenWrite())
                    using (var writer = new StreamWriter(fs))
                    {
                        writer.Write(xml);
                    }

                var map = new TargetMapper();

                Assert.True(map.LoadFromConfig(String.Format(@"{0}\{1}", Directory.GetCurrentDirectory(), "TargetMap.xml")));
                Assert.Equal("target1", map.GetNames("alias1").Single());
            }
            finally
            {
                file.Delete();
            }
        }
Esempio n. 2
0
        public static void LoadXmlFromDefault()
        {
            var xml  = @"<ApiTool>
        <Targets>
            <Target Name='target1' Alias='alias1' />
       </Targets>
     </ApiTool> ";
            var file = new FileInfo("TargetMap.xml");

            try
            {
                using (var fs = file.OpenWrite())
                {
                    using (var writer = new StreamWriter(fs))
                    {
                        writer.Write(xml);
                    }
                }

                var map = new TargetMapper();
                Assert.True(map.LoadFromConfig(file.FullName));
                Assert.Equal("target1", map.GetNames("alias1").Single());
            }
            finally
            {
                file.Delete();
            }
        }
Esempio n. 3
0
        public static IUnityContainer Build(ICommandLineOptions options, ProductInformation productInformation)
        {
            var container = new UnityContainer();

            var targetMapper = new TargetMapper();

            targetMapper.LoadFromConfig(options.TargetMapFile);

            container.RegisterInstance <ICommandLineOptions>(options);
            container.RegisterInstance <ITargetMapper>(targetMapper);

            // For debug purposes, the FileOutputApiPortService helps as it serializes the request to json and opens it with the
            // default json handler. To use this service, uncomment the the next line and comment the one after that.
            //container.RegisterType<IApiPortService, FileOutputApiPortService>(new ContainerControlledLifetimeManager());
            container.RegisterInstance <IApiPortService>(new ApiPortService(options.ServiceEndpoint, productInformation));

            container.RegisterType <IEnumerable <IgnoreAssemblyInfo>, FileIgnoreAssemblyInfoList>(new ContainerControlledLifetimeManager());
            container.RegisterType <IDependencyFinder, ReflectionMetadataDependencyFinder>(new ContainerControlledLifetimeManager());
            container.RegisterType <IDependencyFilter, DotNetFrameworkFilter>(new ContainerControlledLifetimeManager());
            container.RegisterType <IReportGenerator, ReportGenerator>(new ContainerControlledLifetimeManager());
            container.RegisterType <ApiPortService>(new ContainerControlledLifetimeManager());
            container.RegisterType <IFileSystem, WindowsFileSystem>(new ContainerControlledLifetimeManager());
            container.RegisterType <IFileWriter, ReportFileWriter>(new ContainerControlledLifetimeManager());
            container.RegisterType <IRequestAnalyzer, RequestAnalyzer>(new ContainerControlledLifetimeManager());
            container.RegisterType <IAnalysisEngine, AnalysisEngine>(new ContainerControlledLifetimeManager());
            container.RegisterType <ConsoleApiPort>(new ContainerControlledLifetimeManager());
            container.RegisterType <ICollection <IReportWriter> >(new ContainerControlledLifetimeManager(), new InjectionFactory(WriterCollection));
            container.RegisterType <IApiPortOptions>(new ContainerControlledLifetimeManager(), new InjectionFactory(GetOptions));
            container.RegisterType <DocIdSearchRepl>(new ContainerControlledLifetimeManager());
            container.RegisterType <ISearcher <string>, ApiPortServiceSearcher>(new ContainerControlledLifetimeManager());

            // Register the default output format name
            container.RegisterInstance(DefaultOutputFormatInstanceName, "Excel");

            if (Console.IsOutputRedirected)
            {
                container.RegisterInstance <IProgressReporter>(new TextWriterProgressReporter(Console.Out));
            }
            else
            {
                container.RegisterType <IProgressReporter, ConsoleProgressReporter>(new ContainerControlledLifetimeManager());
            }

#if FEATURE_DESKTOP_CONFIGURATION // Unity configuration is only available in its desktop package
            // Load any customizations via Unity
            var fileMap = new ExeConfigurationFileMap
            {
                ExeConfigFilename = Path.Combine(GetApplicationDirectory(), "unity.config")
            };

            var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
            var unitySection  = (UnityConfigurationSection)configuration.GetSection("unity");

            return(unitySection == null ? container : container.LoadConfiguration(unitySection));
#else // FEATURE_DESKTOP_CONFIGURATION
            // TODO : Allow runtime configuration through some non-.config means?
            return(container);
#endif // FEATURE_DESKTOP_CONFIGURATION
        }
Esempio n. 4
0
        public static IUnityContainer Build(ICommandLineOptions options, ProductInformation productInformation)
        {
            var container = new UnityContainer();

            var targetMapper = new TargetMapper();

            targetMapper.LoadFromConfig();

            var ignoreAssemblyList = new FileIgnoreAssemblyInfoList(options.RequestFlags.HasFlag(AnalyzeRequestFlags.NoDefaultIgnoreFile), options.IgnoredAssemblyFiles);

            container.RegisterInstance(options);
            container.RegisterInstance <ITargetMapper>(targetMapper);
            container.RegisterInstance <IEnumerable <IgnoreAssemblyInfo> >(ignoreAssemblyList);

            // For debug purposes, the FileOutputApiPortService helps as it serializes the request to json and opens it with the
            // default json handler. To use this service, uncomment the the next line and comment the one after that.
            //container.RegisterType<IApiPortService, FileOutputApiPortService>(new ContainerControlledLifetimeManager());
            container.RegisterInstance <IApiPortService>(new ApiPortService(options.ServiceEndpoint, productInformation));

            container.RegisterType <IDependencyFinder, ReflectionMetadataDependencyFinder>(new ContainerControlledLifetimeManager());
            container.RegisterType <IReportGenerator, ReportGenerator>(new ContainerControlledLifetimeManager());
            container.RegisterType <ApiPortService>(new ContainerControlledLifetimeManager());
            container.RegisterType <IFileSystem, WindowsFileSystem>(new ContainerControlledLifetimeManager());
            container.RegisterType <IFileWriter, ReportFileWriter>(new ContainerControlledLifetimeManager());
            container.RegisterType <IRequestAnalyzer, RequestAnalyzer>(new ContainerControlledLifetimeManager());
            container.RegisterType <IAnalysisEngine, AnalysisEngine>(new ContainerControlledLifetimeManager());
            container.RegisterType <ICollection <IReportWriter> >(new ContainerControlledLifetimeManager(), new InjectionFactory(WriterCollection));

            if (Console.IsOutputRedirected)
            {
                container.RegisterInstance <IProgressReporter>(new TextWriterProgressReporter(Console.Out));
            }
            else
            {
                container.RegisterType <IProgressReporter, ConsoleProgressReporter>(new ContainerControlledLifetimeManager());
            }

            // Load any customizations via Unity
            var fileMap = new ExeConfigurationFileMap
            {
                ExeConfigFilename = Path.Combine(GetApplicationDirectory(), "unity.config")
            };

            var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
            var unitySection  = (UnityConfigurationSection)configuration.GetSection("unity");

            return(unitySection == null ? container : container.LoadConfiguration(unitySection));
        }
Esempio n. 5
0
        public void LoadXmlFromFile()
        {
            var map = new TargetMapper();

            Assert.False(map.LoadFromConfig("doesnotexist.xml"));
        }