diff --git a/codegens/csharp-restsharp/lib/parseRequest.js b/codegens/csharp-restsharp/lib/parseRequest.js index 94e320ebc..dc320c466 100644 --- a/codegens/csharp-restsharp/lib/parseRequest.js +++ b/codegens/csharp-restsharp/lib/parseRequest.js @@ -106,7 +106,12 @@ function parseHeader (requestJson) { return requestJson.header.reduce((headerSnippet, header) => { if (!header.disabled) { - headerSnippet += `request.AddHeader("${sanitize(header.key, true)}", "${sanitize(header.value)}");\n`; + if (sanitize(header.key, true).toLowerCase() === 'user-agent') { + headerSnippet += `client.UserAgent = "${sanitize(header.value)}";\n`; + } + else { + headerSnippet += `request.AddHeader("${sanitize(header.key, true)}", "${sanitize(header.value)}");\n`; + } } return headerSnippet; }, ''); diff --git a/codegens/csharp-restsharp/test/unit/convert.test.js b/codegens/csharp-restsharp/test/unit/convert.test.js index 764147477..dafd37385 100644 --- a/codegens/csharp-restsharp/test/unit/convert.test.js +++ b/codegens/csharp-restsharp/test/unit/convert.test.js @@ -162,6 +162,36 @@ describe('csharp restsharp function', function () { expect(snippet).to.include('request.AddFile("invalid src", "/path/to/file"'); }); }); + + it('should use client.UserAgent instead of AddHeader function', function () { + const sampleUA = 'Safari/605.1.15', + expectValue = `client.UserAgent = "${sampleUA}";`; + + var request = new sdk.Request({ + 'method': 'GET', + 'header': [ + { + 'key': 'User-Agent', + 'value': sampleUA + } + ], + 'url': { + 'raw': 'https://google.com', + 'protocol': 'https', + 'host': [ + 'google', + 'com' + ] + } + }); + convert(request, {}, function (error, snippet) { + if (error) { + expect.fail(null, null, error); + } + expect(snippet).to.be.a('string'); + expect(snippet).to.include(expectValue); + }); + }); }); describe('getOptions function', function () {