Skip to content

Commit c2c6ac1

Browse files
authored
Fix RequestId is empty in exception message (#289)
* Fix RequestId is empty in exception message * Fix unit test error
1 parent bd3bbb8 commit c2c6ac1

File tree

5 files changed

+18
-13
lines changed

5 files changed

+18
-13
lines changed

aliyun-net-sdk-core.Tests/Units/DefaultAcsClient.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ public void DoAction2()
209209

210210
var result = instance.DoAction(request, true, 1, "cn-hangzhou", credentials, signer, FormatType.JSON, null);
211211

212-
Assert.Equal(result,response);
212+
Assert.Equal(result, response);
213213
}
214214

215215
[Fact]
@@ -445,7 +445,7 @@ public void GetAcsResponseWhenStatusIsNotSuccess()
445445
var ex = Record.Exception(testCode400);
446446
Assert.NotNull(ex);
447447
Assert.IsType<ClientException>(ex);
448-
Assert.Equal("ThisIsCode : ThisIsMessage", ex.Message);
448+
Assert.Contains("ThisIsCode : ThisIsMessage", ex.Message);
449449

450450
// 502 Error
451451
instance = MockDefaultAcsClient(502);
@@ -456,7 +456,7 @@ public void GetAcsResponseWhenStatusIsNotSuccess()
456456
ex = Record.Exception(testCode400);
457457
Assert.NotNull(ex);
458458
Assert.IsType<ServerException>(ex);
459-
Assert.Equal("ThisIsCode : ThisIsMessage, the request url is empty, the RequestId is ThisIsRequestId.", ex.Message);
459+
Assert.Contains("ThisIsCode : ThisIsMessage, the request url is empty, the RequestId is ThisIsRequestId.", ex.Message);
460460
}
461461

462462
[Fact]
@@ -852,7 +852,7 @@ public void TestIncompleteSignature()
852852
var result = instance.GetAcsResponse(request, "cn-hangzhou", credentials);
853853
});
854854

855-
Assert.Equal(
855+
Assert.Contains(
856856
"IncompleteSignature : The request signature does not conform to Aliyun standards. server string to sign is:Error Signature",
857857
signatureException.Message);
858858

@@ -864,7 +864,7 @@ public void TestIncompleteSignature()
864864
var result = instance.GetAcsResponse(request, "cn-hangzhou", credentials);
865865
});
866866

867-
Assert.Equal("SDK.InvalidAccessKeySecret : Specified Access Key Secret is not valid.",
867+
Assert.Contains("SDK.InvalidAccessKeySecret : Specified Access Key Secret is not valid.",
868868
invalidException.Message);
869869
}
870870

@@ -882,7 +882,7 @@ public void TestSignatureDoesNotMatch()
882882
var result = instance.GetAcsResponse(request, "cn-hangzhou", credentials);
883883
});
884884

885-
Assert.Equal(
885+
Assert.Contains(
886886
"SignatureDoesNotMatch : signature does not conform to standards. server string to sign is:Error Signature",
887887
signatureException.Message);
888888

@@ -894,7 +894,7 @@ public void TestSignatureDoesNotMatch()
894894
var result = instance.GetAcsResponse(request, "cn-hangzhou", credentials);
895895
});
896896

897-
Assert.Equal("SDK.InvalidAccessKeySecret : Specified Access Key Secret is not valid.",
897+
Assert.Contains("SDK.InvalidAccessKeySecret : Specified Access Key Secret is not valid.",
898898
invalidException.Message);
899899
}
900900

aliyun-net-sdk-core.Tests/Units/Exceptions/ClientException.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void Instance1()
3131
var exception = new ClientException("200", "message", "requestId");
3232
Assert.Equal("200", exception.ErrorCode);
3333
Assert.Equal("message", exception.ErrorMessage);
34-
Assert.Null(exception.RequestId);
34+
Assert.Equal("requestId", exception.RequestId);
3535
}
3636

3737
[Fact]

aliyun-net-sdk-core/Exceptions/ClientException.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*
1+
/*
22
* Licensed to the Apache Software Foundation (ASF) under one
33
* or more contributor license agreements. See the NOTICE file
44
* distributed with this work for additional information
@@ -23,8 +23,13 @@ namespace Aliyun.Acs.Core.Exceptions
2323
{
2424
public class ClientException : Exception
2525
{
26-
public ClientException(string errCode, string errMsg, string requestId) : this(errCode, errMsg)
26+
public ClientException(string errCode, string errMsg, string requestId) : base(
27+
string.Format("{0} : {1} + [ RequestId : {2} ]", errCode, errMsg, requestId))
2728
{
29+
ErrorType = ErrorType.Client;
30+
ErrorMessage = errMsg;
31+
RequestId = requestId;
32+
ErrorCode = errCode;
2833
}
2934

3035
public ClientException(string errCode, string errMsg) : base(errCode + " : " + errMsg)

aliyun-net-sdk-core/Exceptions/ServerException.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*
1+
/*
22
* Licensed to the Apache Software Foundation (ASF) under one
33
* or more contributor license agreements. See the NOTICE file
44
* distributed with this work for additional information
@@ -22,7 +22,7 @@ namespace Aliyun.Acs.Core.Exceptions
2222
public class ServerException : ClientException
2323
{
2424
public ServerException(string errorCode, string errorMessage, string requestId) :
25-
this(errorCode, errorMessage)
25+
base(errorCode, errorMessage, requestId)
2626
{
2727
RequestId = requestId;
2828
}

aliyun-sdk-feature-test/Credential/CredentialsTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public void STSAssumeRoleCredentialWithPolicyTest()
7272

7373
var exception = Assert.Throws<ClientException>(() => { response = client.GetAcsResponse(request); });
7474

75-
Assert.Equal(
75+
Assert.Contains(
7676
"Forbidden.RAM : User not authorized to operate on the specified resource, or this API doesn't support RAM.",
7777
exception.Message);
7878
}

0 commit comments

Comments
 (0)