Пример #1
0
        public void TestCanGetBool()
        {
            string[]          args   = new string[] { "NAME=1" };
            CommandLineConfig config = new CommandLineConfig(LoggingService(), args);

            Assert.AreEqual(true, config.GetBool("NAME"));
        }
Пример #2
0
        public void TestSingleArgument()
        {
            string[]          args   = new string[] { "NAME=VALUE" };
            CommandLineConfig config = new CommandLineConfig(LoggingService(), args);

            Assert.AreEqual("VALUE", config.GetString("NAME"));
        }
Пример #3
0
        public void TestIpAddress()
        {
            var args   = new[] { "" };
            var config = new CommandLineConfig(args);

            Assert.Equal(config.IpAddress.ToString(), "0.0.0.0");
        }
Пример #4
0
        private static void Main(string[] args)
        {
            var config      = new CommandLineConfig(args);
            var server      = Server(config);
            var tokenSource = new CancellationTokenSource();

            server.Start(tokenSource.Token);
        }
Пример #5
0
        public void TestArgsProvided()
        {
            var args   = new[] { "-p", "7000", "-d", "/this/directory", "-l", "./logfile.txt" };
            var config = new CommandLineConfig(args);

            Assert.Equal(config.Port, 7000);
            Assert.Equal(config.PublicDir, "/this/directory");
            Assert.Equal(config.LogFile, "./logfile.txt");
        }
Пример #6
0
        private static Server Server(CommandLineConfig config)
        {
            var listener = new Listener(config.IpAddress, config.Port);
            var parser   = new Parser();
            var router   = BasicServerRouter.Configure();
            var factory  = new RequestProcessorFactory(parser, router);
            var logger   = new FileLogger(config.LogFile);
            var server   = new Server(listener, factory, logger);

            return(server);
        }
        public ServerIntegrationTest()
        {
            var args = new string[] { "-d", _publicDir, "-l", _logFile };

            _config      = new CommandLineConfig(args);
            _tokenSource = new CancellationTokenSource();
            var listener = new Listener(_config.IpAddress, _config.Port);
            var parser   = new Parser();
            var router   = new Router();

            router.AddRoute(new Route("GET", "/", new DirHandler(_config.PublicDir)));
            var factory = new RequestProcessorFactory(parser, router);
            var logger  = new FileLogger(_config.LogFile);

            _server = new Server(listener, factory, logger);
            var startTask = Task.Run(() => _server.Start(_tokenSource.Token));
        }
Пример #8
0
 internal new static Config Parse(IEnumerable <String> args)
 {
     return((Config)CommandLineConfig.Parse(args));
 }
Пример #9
0
 internal new static Config Parse(params String[] args)
 {
     return((Config)CommandLineConfig.Parse(args));
 }
Пример #10
0
        public static void LoadFromFile(string filename)
        {
            #region Config file loading and verification
            var doc = new XmlDocument();
            try
            {
                doc.Load(File.OpenRead(filename));
            }
            catch (Exception e)
            {
                throw ConfigurationException.AppConfigLoadFailure(e);
            }

            var xnList = doc.GetElementsByTagName("mbuilder");

            if (xnList.Count != 1)
            {
                throw ConfigurationException.MultipleMBuilderSettings();
            }
            #endregion

            var mbuildRoot = xnList[0] as XmlElement;
            if (mbuildRoot == null)
            {
                throw ConfigurationException.ConfigurationReadFailure();
            }

            var nodeList = mbuildRoot.SelectSingleNode("setup/debug") as XmlElement;
            if (nodeList != null && nodeList.HasAttribute("enabled"))
            {
                IsDebug = nodeList.Attributes["enabled"].Value.ToLower() == bool.TrueString.ToLower();
            }
            else
            {
                IsDebug = false;
            }

            var pm = new PropertyManager();

            nodeList = mbuildRoot.SelectSingleNode("setup/asyncbuilders") as XmlElement;
            if (nodeList != null && nodeList.HasAttribute("count"))
            {
                var rawBuilderCount = nodeList.Attributes["count"].Value;
                var strBuildCount   = pm.Evaluate(rawBuilderCount);
                var bldCount        = 0;
                if (!Int32.TryParse(strBuildCount, out bldCount))
                {
                    throw ConfigurationException.ConfigurationReadFailure("setup/asyncbuilders");
                }

                MaximumBuilders = bldCount;
            }
            else
            {
                MaximumBuilders = Environment.ProcessorCount;
            }

            Log.DebugFormat("Debug Mode: {0}", IsDebug);
            Log.DebugFormat("Asynchronous Builders: {0}", MaximumBuilders);

            nodeList = mbuildRoot.SelectSingleNode("builders/commandlinebuilder") as XmlElement;
            if (nodeList != null)
            {
                CommandLineConfig.Configure(nodeList);
            }
        }