Skip to content

Commit 17c8633

Browse files
committed
Fixing tests but it seems that auth might be a breaking change
1 parent 79124cb commit 17c8633

File tree

5 files changed

+13
-40
lines changed

5 files changed

+13
-40
lines changed

src/RestSharp/Authenticators/OAuth/Extensions/StringExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ internal static class StringExtensions
1616

1717
public static byte[] GetBytes(this string input) => Encoding.UTF8.GetBytes(input);
1818

19-
public static string PercentEncode(this string s) => string.Join("", s.GetBytes().Select(x => $"{x:X2}"));
19+
public static string PercentEncode(this string s) => string.Join("", s.GetBytes().Select(x => $"%{x:X2}"));
2020
}
2121
}

src/RestSharp/Authenticators/OAuth/OAuth1Authenticator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ string GetAuthorizationHeader(WebPairCollection parameters)
290290
!p.Name.IsNullOrBlank() && !p.Value.IsNullOrBlank() &&
291291
(p.Name.StartsWith("oauth_") || p.Name.StartsWith("x_auth_"))
292292
)
293-
.Select(x => $"{x.Name}={x.Value}")
293+
.Select(x => $"{x.Name}=\"{x.Value}\"")
294294
.ToList();
295295

296296
if (!Realm.IsNullOrBlank())

src/RestSharp/RestRequest.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,8 @@ public IRestRequest AddParameter(string name, object value, string contentType,
467467
/// <returns></returns>
468468
public IRestRequest AddOrUpdateParameter(Parameter parameter)
469469
{
470-
var p = Parameters.FirstOrDefault(x => x.Name == parameter.Name);
470+
var p = Parameters
471+
.FirstOrDefault(x => x.Name == parameter.Name && x.Type == parameter.Type);
471472

472473
if (p != null) Parameters.Remove(p);
473474

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Linq;
34
using System.Text;
45
using Moq;
56
using NUnit.Framework;
67
using RestSharp.Authenticators;
8+
using Shouldly;
79

810
namespace RestSharp.Tests
911
{
@@ -24,53 +26,23 @@ public void Setup()
2426

2527
HttpBasicAuthenticator _authenticator;
2628

27-
[TestCase("Authorization")]
28-
[TestCase("authorization")]
29-
[TestCase("AUTHORIZATION")]
30-
public void Authenticate_ShouldNotAddAuthorizationParameter_IfAlreadyAssigned(string parameterName)
31-
{
32-
// Arrange
33-
var mockClient = new Mock<IRestClient>();
34-
var mockRequest = new Mock<IRestRequest>();
35-
36-
mockRequest.SetupGet(x => x.Parameters)
37-
.Returns(
38-
new List<Parameter> {new Parameter(parameterName, null, default)}
39-
);
40-
41-
// Act
42-
_authenticator.Authenticate(mockClient.Object, mockRequest.Object);
43-
44-
// Assert
45-
mockRequest.Verify(
46-
x =>
47-
x.AddParameter("Authorization", It.IsAny<string>(), ParameterType.HttpHeader), Times.Never
48-
);
49-
}
50-
5129
[Test]
5230
public void Authenticate_ShouldAddAuthorizationParameter_IfPreviouslyUnassigned()
5331
{
5432
// Arrange
55-
var mockClient = new Mock<IRestClient>();
56-
var mockRequest = new Mock<IRestRequest>();
33+
var client = new RestClient();
34+
var request = new RestRequest();
5735

58-
mockRequest.SetupGet(x => x.Parameters)
59-
.Returns(
60-
new List<Parameter> {new Parameter("NotMatching", null, default)}
61-
);
36+
request.AddParameter(new Parameter("NotMatching", null, default));
6237

6338
var expectedToken =
6439
$"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{_username}:{_password}"))}";
6540

6641
// Act
67-
_authenticator.Authenticate(mockClient.Object, mockRequest.Object);
42+
_authenticator.Authenticate(client, request);
6843

6944
// Assert
70-
mockRequest.Verify(
71-
x =>
72-
x.AddParameter("Authorization", expectedToken, ParameterType.HttpHeader), Times.Once
73-
);
45+
request.Parameters.Single(x => x.Name == "Authorization").Value.ShouldBe(expectedToken);
7446
}
7547
}
7648
}

test/RestSharp.Tests/JwtAuthTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@ public void Set_Auth_Header_Only_Once()
7070
var client = new RestClient();
7171
var request = new RestRequest();
7272

73-
request.AddHeader("Authorization", _expectedAuthHeaderContent);
73+
request.AddHeader("Authorization", "second_header_auth_token");
7474

75-
client.Authenticator = new JwtAuthenticator("second_header_auth_token");
75+
client.Authenticator = new JwtAuthenticator(_testJwt);
7676

7777
//In real case client.Execute(...) will invoke Authenticate method
7878
client.Authenticator.Authenticate(client, request);

0 commit comments

Comments
 (0)