示例#1
0
        public void ToCsharp_ContentTypeWithEncoding_StringContentProperlyInitialized()
        {
            var converterService = new ConverterService();
            var curlOptions      = new CurlOptions
            {
                HttpMethod = HttpMethod.Get.ToString()
                             .ToUpper(),
                Url        = new Uri("https://google.com"),
                UploadData = { new UploadData("content") }
            };

            curlOptions.HttpMethod = HttpMethod.Post.ToString()
                                     .ToUpper();
            curlOptions.SetHeader(HeaderNames.ContentType, "application/json ; charset=utf-8");

            var result = converterService.ToCsharp(curlOptions);

            var tree = CSharpSyntaxTree.ParseText(result.Data);
            var stringContentConstructor = tree
                                           .GetRoot()
                                           .DescendantNodes()
                                           .OfType <ConstructorDeclarationSyntax>()
                                           .First(oc => oc.Identifier.ValueText == "StringContent");

            Assert.Equal("\"application/json\"", stringContentConstructor.ParameterList.Parameters[2].Identifier.TrailingTrivia.ToString());
        }
    public void ToCsharp_ValidCurlOptions_CanBeCompiled()
    {
        var converterService = new ConverterService();
        var curlOptions      = new CurlOptions
        {
            HttpMethod       = HttpMethod.Post.ToString().ToUpper(),
            Url              = new Uri("https://google.com"),
            UploadData       = { new UploadData("{\"status\": \"resolved\"}") },
            UserPasswordPair = "user:pass"
        };

        curlOptions.SetHeader(HeaderNames.ContentType, "application/json");
        curlOptions.SetHeader(HeaderNames.Authorization, "Bearer b7d03a6947b217efb6f3ec3bd3504582");

        var result = converterService.ToCsharp(curlOptions);

        var tree        = WrapToClass(result.Data);
        var diagnostics = tree.GetDiagnostics();

        Assert.Empty(diagnostics);
    }