Пример #1
0
        public void Generate_ConfigurationExtensions_WhenPropertyHasInvalidIdentifier()
        {
            var(generated, _) = _configGenerator.Generate("InvalidIdentifier.json");

            generated.Select(x => x.fileName).Should().ContainSingle(x => x == "ConfigurationExtensions.cs");
            var configurationExtensions = generated.FirstOrDefault(x => x.fileName == "ConfigurationExtensions.cs");

            configurationExtensions.generatedClass.Should().Contain(@"return configuration.GetValue<int>(""MyArray:LogLevel2:Microsoft,[Host.ing,Lifetime1"")");
            AssertCompilation(generated);
        }
Пример #2
0
        public void Generate_FromMyArrayFile_ShouldContains_ListOfMyArray()
        {
            var(generated, _) = _configGenerator.Generate("MyArray.json");

            generated.Select(x => x.fileName).Should().ContainSingle(x => x == "MyArray.cs");
            var appsettings = generated.FirstOrDefault(x => x.fileName == "AppSettings.cs");

            appsettings.generatedClass.Should().Contain("public System.Collections.Generic.List<MyArray> MyArray { get; set; }");

            AssertCompilation(generated);
        }
Пример #3
0
        public void Generate_FromBasicDataTypes_Should_CreateBasicTypes()
        {
            using var assertionScope = new AssertionScope();
            var(generated, _)        = _configGenerator.Generate("BasicDataTypes.json");

            var appsettings = generated.FirstOrDefault(x => x.fileName == "AppSettings.cs");

            appsettings.generatedClass.Should().Contain("public int number_1 { get; set; }");
            appsettings.generatedClass.Should().Contain("public int number_2 { get; set; }");
            appsettings.generatedClass.Should().Contain("public float number_3 { get; set; }");
            appsettings.generatedClass.Should().Contain("public int number_4 { get; set; }");

            appsettings.generatedClass.Should().Contain("public bool bool_1 { get; set; }");
            appsettings.generatedClass.Should().Contain("public bool bool_2 { get; set; }");

            appsettings.generatedClass.Should().Contain("public string popularity { get; set; }");

            appsettings.generatedClass.Should().Contain("public System.TimeSpan Timespan_1 { get; set; }");
            appsettings.generatedClass.Should().Contain("public System.DateTime DateTime_1 { get; set; }");

            appsettings.generatedClass.Should().Contain("public System.Collections.Generic.List<System.DateTime> Array_1 { get; set; }");
            appsettings.generatedClass.Should().Contain("public System.Collections.Generic.List<string> Array_2 { get; set; }");

            // invalid identifier skip
            appsettings.generatedClass.Should().NotContain("public _object _object { get; set; }");
            generated.Select(x => x.fileName).Should().NotContain(x => x == "_object.cs");

            var(compilationResult, reason) = new TestCodeCompiler().Compile(generated.Select(x => x.generatedClass));

            compilationResult.Should().BeTrue();
            reason.Should().BeEmpty();
        }
Пример #4
0
        public void Generate_()
        {
            using var assertionScope = new AssertionScope();
            var(generated, _)        = _configGenerator.Generate("NLog.json");

            generated.Select(x => x.fileName).Should().ContainSingle(x => x == "extensions.cs");
            var appsettings = generated.FirstOrDefault(x => x.fileName == "AppSettings.cs");

            appsettings.generatedClass.Should().Contain("public NLog NLog { get; set; }");

            var(compilationResult, reason) = new TestCodeCompiler().Compile(generated.Select(x => x.generatedClass));
            compilationResult.Should().BeTrue();
            reason.Should().BeEmpty();
        }
Пример #5
0
        static void Main(string[] args)
        {
            MarkdownGenerator markdownGenerator = new MarkdownGenerator();
            SharedContent     sharedContent     = new SharedContent();

            MetricsGenerator metricsGenerator = new MetricsGenerator(sharedContent);

            metricsGenerator.Generate();

            ConfigGenerator configGenerator = new ConfigGenerator(sharedContent);

            configGenerator.Generate();

            RpcAndCliGenerator rpcAndCliGenerator = new RpcAndCliGenerator(markdownGenerator, sharedContent);

            rpcAndCliGenerator.Generate();

            SampleConfigGenerator sampleConfigGenerator = new SampleConfigGenerator(markdownGenerator, sharedContent);

            sampleConfigGenerator.Generate();
        }
Пример #6
0
        static void Main(string[] args)
        {
            MarkdownGenerator markdownGenerator = new MarkdownGenerator();
            SharedContent     sharedContent     = new SharedContent();

            JsonRpcGenerator rpcGenerator = new JsonRpcGenerator(markdownGenerator, sharedContent);

            rpcGenerator.Generate();

            CliGenerator cliGenerator = new CliGenerator(markdownGenerator, sharedContent);

            cliGenerator.Generate();

            MetricsGenerator metricsGenerator = new MetricsGenerator(sharedContent);

            metricsGenerator.Generate();

            ConfigGenerator configGenerator = new ConfigGenerator(sharedContent);

            configGenerator.Generate();
        }
Пример #7
0
 public void Start()
 {
     //_contentHandler.Get("/config", (req, res) =>
     //{
     //    res.Send("<h1>Hello, World</h1>");
     //});
     _contentHandler.Get("/ondemand", (req, res) =>
     {
         // generate mobileconfig
         var args = req.Url.Query.Substring(1).Split('&').Select(s => s.Split('=')).ToDictionary(s => s[0], s => WebUtility.UrlDecode(s[1]));
         try
         {
             var config  = new ConfigGenerator();
             config.Name = args["name"];
             config.AuthenticationType = args["type"];
             config.Username           = args["username"];
             config.Password           = args["password"];
             config.Apn = args["apn"];
             // gen hash
             var key    = AppDelegate.Current.HttpServer.Token;
             var digest = config.GetDigest(key);
             if (digest != args["token"])
             {
                 res.Send("error");
                 return;
             }
             // send it
             res.Send(config.Generate(), "application/x-apple-aspen-config");
         }
         catch (Exception e)
         {
             res.Send("error");
         }
     });
     _contentHandler.Start();
 }