mirror of
https://github.com/JKorf/CryptoExchange.Net
synced 2025-06-13 02:46:20 +00:00
Unit tests
This commit is contained in:
parent
21ba6c497f
commit
8611723c6f
@ -60,6 +60,23 @@ namespace CryptoExchange.Net.UnitTests
|
|||||||
Assert.IsTrue(result.Error != null);
|
Assert.IsTrue(result.Error != null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestCase]
|
||||||
|
public void ReceivingErrorAndNotParsingError_Should_ResultInFlatError()
|
||||||
|
{
|
||||||
|
// arrange
|
||||||
|
var client = new TestRestClient();
|
||||||
|
client.SetErrorWithResponse("{\"errorMessage\": \"Invalid request\", \"errorCode\": 123}", System.Net.HttpStatusCode.BadRequest);
|
||||||
|
|
||||||
|
// act
|
||||||
|
var result = client.Request<TestObject>().Result;
|
||||||
|
|
||||||
|
// assert
|
||||||
|
Assert.IsFalse(result.Success);
|
||||||
|
Assert.IsTrue(result.Error != null);
|
||||||
|
Assert.IsTrue(result.Error is ServerError);
|
||||||
|
Assert.IsTrue(result.Error.Message.Contains("{\"errorMessage\": \"Invalid request\", \"errorCode\": 123}"));
|
||||||
|
}
|
||||||
|
|
||||||
[TestCase]
|
[TestCase]
|
||||||
public void ReceivingErrorAndParsingError_Should_ResultInParsedError()
|
public void ReceivingErrorAndParsingError_Should_ResultInParsedError()
|
||||||
{
|
{
|
||||||
|
@ -54,13 +54,10 @@ namespace CryptoExchange.Net.UnitTests.TestImplementations
|
|||||||
typeof(HttpWebResponse).GetField("_httpResponseMessage", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).SetValue(r, re);
|
typeof(HttpWebResponse).GetField("_httpResponseMessage", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).SetValue(r, re);
|
||||||
typeof(WebException).GetField("_message", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).SetValue(we, message);
|
typeof(WebException).GetField("_message", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).SetValue(we, message);
|
||||||
typeof(WebException).GetField("_response", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).SetValue(we, r);
|
typeof(WebException).GetField("_response", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).SetValue(we, r);
|
||||||
|
|
||||||
var response = new Mock<IResponse>();
|
|
||||||
response.Setup(c => c.GetResponseStream()).Throws(we);
|
|
||||||
|
|
||||||
var request = new Mock<IRequest>();
|
var request = new Mock<IRequest>();
|
||||||
request.Setup(c => c.Headers).Returns(new WebHeaderCollection());
|
request.Setup(c => c.Headers).Returns(new WebHeaderCollection());
|
||||||
request.Setup(c => c.GetResponse()).Returns(Task.FromResult(response.Object));
|
request.Setup(c => c.GetResponse()).Throws(we);
|
||||||
|
|
||||||
var factory = Mock.Get(RequestFactory);
|
var factory = Mock.Get(RequestFactory);
|
||||||
factory.Setup(c => c.Create(It.IsAny<string>()))
|
factory.Setup(c => c.Create(It.IsAny<string>()))
|
||||||
@ -74,21 +71,13 @@ namespace CryptoExchange.Net.UnitTests.TestImplementations
|
|||||||
responseStream.Write(expectedBytes, 0, expectedBytes.Length);
|
responseStream.Write(expectedBytes, 0, expectedBytes.Length);
|
||||||
responseStream.Seek(0, SeekOrigin.Begin);
|
responseStream.Seek(0, SeekOrigin.Begin);
|
||||||
|
|
||||||
var we = new WebException();
|
var r = new Mock<HttpWebResponse>();
|
||||||
var r = new HttpWebResponse();
|
r.Setup(x => x.GetResponseStream()).Returns(responseStream);
|
||||||
var re = new HttpResponseMessage();
|
var we = new WebException("", null, WebExceptionStatus.Success, r.Object);
|
||||||
|
|
||||||
typeof(HttpResponseMessage).GetField("_statusCode", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).SetValue(re, code);
|
|
||||||
typeof(HttpWebResponse).GetField("_httpResponseMessage", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).SetValue(r, re);
|
|
||||||
typeof(WebException).GetField("_message", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).SetValue(we, "");
|
|
||||||
typeof(WebException).GetField("_response", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).SetValue(we, r);
|
|
||||||
|
|
||||||
var response = new Mock<IResponse>();
|
|
||||||
response.Setup(c => c.GetResponseStream()).Returns(responseStream);
|
|
||||||
|
|
||||||
var request = new Mock<IRequest>();
|
var request = new Mock<IRequest>();
|
||||||
request.Setup(c => c.Headers).Returns(new WebHeaderCollection());
|
request.Setup(c => c.Headers).Returns(new WebHeaderCollection());
|
||||||
request.Setup(c => c.GetResponse()).Returns(Task.FromResult(response.Object));
|
request.Setup(c => c.GetResponse()).Throws(we);
|
||||||
|
|
||||||
var factory = Mock.Get(RequestFactory);
|
var factory = Mock.Get(RequestFactory);
|
||||||
factory.Setup(c => c.Create(It.IsAny<string>()))
|
factory.Setup(c => c.Create(It.IsAny<string>()))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user