Skip to content
This repository has been archived by the owner on May 24, 2024. It is now read-only.

Commit

Permalink
Added new tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
Kirbyrawr committed Apr 29, 2020
1 parent b9d0ee3 commit 0427cb4
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 23 deletions.
29 changes: 27 additions & 2 deletions stellar-dotnet-sdk-test/ServerCheckMemoRequiredTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public void Setup()
{
Network.UseTestNetwork();

_fakeHttpMessageHandler = new Mock<ServerTest.FakeHttpMessageHandler> {CallBase = true};
_fakeHttpMessageHandler = new Mock<ServerTest.FakeHttpMessageHandler> { CallBase = true };
_httpClient = new HttpClient(_fakeHttpMessageHandler.Object);
_server = new Server("https://horizon.stellar.org", _httpClient);
}
Expand Down Expand Up @@ -105,7 +105,7 @@ public async Task TestDoesNotCheckDestinationMoreThanOnce()
.Builder(KeyPair.FromAccountId(accountId), new AssetTypeNative(), "100.500")
.Build();

var tx = BuildTransaction(accountId, new Operation[] {payment});
var tx = BuildTransaction(accountId, new Operation[] { payment });
await _server.CheckMemoRequired(tx);
}

Expand Down Expand Up @@ -182,6 +182,31 @@ public async Task TestSkipCheckIfDestinationIsMuxedAccount()
await _server.CheckMemoRequired(tx);
}

[TestMethod]
public async Task TestIsPaymentOperation()
{
var source = KeyPair.FromSecretSeed("SCH27VUZZ6UAKB67BDNF6FA42YMBMQCBKXWGMFD5TZ6S5ZZCZFLRXKHS");
var destination = KeyPair.FromAccountId("GDW6AUTBXTOC7FIKUO5BOO3OGLK4SF7ZPOBLMQHMZDI45J2Z6VXRB5NR");

var pathPaymentStrictSendOperation = new PathPaymentStrictSendOperation.Builder(Asset.CreateNonNativeAsset("ABCD", KeyPair.Random().AccountId), "300", KeyPair.Random(), new AssetTypeNative(), "200").Build();
var pathPaymentStrictReceiveOperation = new PathPaymentStrictReceiveOperation.Builder(Asset.CreateNonNativeAsset("ABCD", KeyPair.Random().AccountId), "300", KeyPair.Random(), new AssetTypeNative(), "200").Build();
var accountMergeOperation = new AccountMergeOperation.Builder(KeyPair.Random()).Build();

var account = new Account(source.AccountId, 2908908335136768L);
var builder = new TransactionBuilder(account)
.AddOperation(pathPaymentStrictReceiveOperation)
.AddOperation(pathPaymentStrictSendOperation)
.AddOperation(accountMergeOperation)
.AddMemo(Memo.Text("Hello world!"));

var transaction = builder.Build();
Assert.AreEqual(2908908335136769L, transaction.SequenceNumber);
Assert.AreEqual(2908908335136769L, account.SequenceNumber);
transaction.Sign(source);

await _server.CheckMemoRequired(transaction);
}

private string BuildAccountResponse(string accountId, Dictionary<string, string> data = null)
{
var accountData = data ?? new Dictionary<string, string>();
Expand Down
64 changes: 46 additions & 18 deletions stellar-dotnet-sdk-test/ServerTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public void Setup()
{
Network.UseTestNetwork();

_fakeHttpMessageHandler = new Mock<FakeHttpMessageHandler> {CallBase = true};
_fakeHttpMessageHandler = new Mock<FakeHttpMessageHandler> { CallBase = true };
_httpClient = new HttpClient(_fakeHttpMessageHandler.Object);
_server = new Server("https://horizon.stellar.org", _httpClient);
}
Expand Down Expand Up @@ -82,7 +82,7 @@ public async Task TestSubmitTransactionSuccess()
When().Returns(ResponseMessage(HttpOk, json));

var response = await _server.SubmitTransaction(
BuildTransaction(), new SubmitTransactionOptions {SkipMemoRequiredCheck = true});
BuildTransaction(), new SubmitTransactionOptions { SkipMemoRequiredCheck = true });
Assert.IsTrue(response.IsSuccess());
Assert.AreEqual(response.Ledger, (uint)826150);
Assert.AreEqual(response.Hash, "2634d2cf5adcbd3487d1df042166eef53830115844fdde1588828667bf93ff42");
Expand All @@ -92,7 +92,7 @@ public async Task TestSubmitTransactionSuccess()
[TestMethod]
public async Task TestDefaultClientHeaders()
{
var messageHandler = new Mock<FakeHttpMessageHandler> {CallBase = true};
var messageHandler = new Mock<FakeHttpMessageHandler> { CallBase = true };
var httpClient = Server.CreateHttpClient(messageHandler.Object);
var server = new Server("https://horizon.stellar.org", httpClient);

Expand All @@ -110,7 +110,7 @@ public async Task TestDefaultClientHeaders()
.Returns(ResponseMessage(HttpOk, json));

var response = await server.SubmitTransaction(
BuildTransaction(), new SubmitTransactionOptions {SkipMemoRequiredCheck = true});
BuildTransaction(), new SubmitTransactionOptions { SkipMemoRequiredCheck = true });

Assert.IsTrue(response.IsSuccess());
Assert.AreEqual("stellar-dotnet-sdk", clientName);
Expand All @@ -127,7 +127,7 @@ public async Task TestSubmitTransactionFail()
When().Returns(ResponseMessage(HttpBadRequest, json));

var response = await _server.SubmitTransaction(
BuildTransaction(), new SubmitTransactionOptions {SkipMemoRequiredCheck = true});
BuildTransaction(), new SubmitTransactionOptions { SkipMemoRequiredCheck = true });
Assert.IsFalse(response.IsSuccess());
Assert.IsNull(response.Ledger);
Assert.IsNull(response.Hash);
Expand All @@ -140,23 +140,51 @@ public async Task TestSubmitTransactionFail()
var result = response.Result;
Assert.IsInstanceOfType(result, typeof(TransactionResultFailed));
Assert.AreEqual("0.00001", result.FeeCharged);
Assert.AreEqual(1, ((TransactionResultFailed) result).Results.Count);
Assert.AreEqual(1, ((TransactionResultFailed)result).Results.Count);
}

public class FakeHttpMessageHandler : HttpMessageHandler
[TestMethod]
public async Task TestNoSkipMemoRequiredCheck()
{
public Uri RequestUri { get; private set; }
var json = File.ReadAllText(Path.Combine("testdata", "serverSuccess.json"));
When().Returns(ResponseMessage(HttpOk, json));

public virtual HttpResponseMessage Send(HttpRequestMessage request)
{
throw new NotImplementedException();
}
var response = await _server.SubmitTransaction(
BuildTransaction(), new SubmitTransactionOptions { SkipMemoRequiredCheck = false });
Assert.IsTrue(response.IsSuccess());
Assert.AreEqual(response.Ledger, (uint)826150);
Assert.AreEqual(response.Hash, "2634d2cf5adcbd3487d1df042166eef53830115844fdde1588828667bf93ff42");
Assert.IsNull(response.SubmitTransactionResponseExtras);
}

[TestMethod]
public async Task TestSubmitTransactionEnvelopeBase64()
{
var json = File.ReadAllText(Path.Combine("testdata", "serverSuccess.json"));
When().Returns(ResponseMessage(HttpOk, json));

protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
RequestUri = request.RequestUri;
return await Task.FromResult(Send(request));
}
}
var response = await _server.SubmitTransaction(
BuildTransaction().ToEnvelopeXdrBase64(), new SubmitTransactionOptions { SkipMemoRequiredCheck = false });
Assert.IsTrue(response.IsSuccess());
Assert.AreEqual(response.Ledger, (uint)826150);
Assert.AreEqual(response.Hash, "2634d2cf5adcbd3487d1df042166eef53830115844fdde1588828667bf93ff42");
Assert.IsNull(response.SubmitTransactionResponseExtras);
}

public class FakeHttpMessageHandler : HttpMessageHandler
{
public Uri RequestUri { get; private set; }

public virtual HttpResponseMessage Send(HttpRequestMessage request)
{
throw new NotImplementedException();
}

protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
RequestUri = request.RequestUri;
return await Task.FromResult(Send(request));
}
}
}
}
6 changes: 3 additions & 3 deletions stellar-dotnet-sdk-test/TransactionTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -447,7 +447,7 @@ public void TestTransactionWithMuxedAccount()
}

[TestMethod]
public void SignatureBaseNoNetwork()
public void TestSignatureBaseNoNetwork()
{
var network = new Network("Standalone Network ; February 2017");
var source = KeyPair.FromSecretSeed(network.NetworkId);
Expand Down Expand Up @@ -475,7 +475,7 @@ public void SignatureBaseNoNetwork()
}

[TestMethod]
public void ToXdrWithMuxedAccount()
public void TestToXdrWithMuxedAccount()
{
var network = new Network("Standalone Network ; February 2017");
var source = KeyPair.FromSecretSeed(network.NetworkId);
Expand Down Expand Up @@ -503,7 +503,7 @@ public void ToXdrWithMuxedAccount()
}

[TestMethod]
public void ToUnsignedEnvelopeXdrWithSignatures()
public void TestToUnsignedEnvelopeXdrWithSignatures()
{
var network = new Network("Standalone Network ; February 2017");
var source = KeyPair.FromSecretSeed(network.NetworkId);
Expand Down

0 comments on commit 0427cb4

Please sign in to comment.