Skip to content

Commit

Permalink
Merge pull request #290 from elucidsoft/xdr-missing-results
Browse files Browse the repository at this point in the history
Added XDR missing results
  • Loading branch information
fracek committed Dec 17, 2020
2 parents ddf7ad7 + 4f0c710 commit 0a91922
Show file tree
Hide file tree
Showing 18 changed files with 360 additions and 0 deletions.
@@ -0,0 +1,63 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using stellar_dotnet_sdk.responses.results;
using XDR = stellar_dotnet_sdk.xdr;

namespace stellar_dotnet_sdk_test.responses.results
{
[TestClass]
public class BeginSponsoringFutureReservesResultTest
{
[TestMethod]
public void TestAlreadySponsored()
{
var operationResultTr = new XDR.OperationResult.OperationResultTr();
operationResultTr.Discriminant.InnerValue = XDR.OperationType.OperationTypeEnum.BEGIN_SPONSORING_FUTURE_RESERVES;

var result = new XDR.BeginSponsoringFutureReservesResult();
result.Discriminant.InnerValue = XDR.BeginSponsoringFutureReservesResultCode.BeginSponsoringFutureReservesResultCodeEnum.BEGIN_SPONSORING_FUTURE_RESERVES_ALREADY_SPONSORED;
operationResultTr.BeginSponsoringFutureReservesResult = result;

Util.AssertResultOfType(Util.CreateTransactionResultXDR(operationResultTr), typeof(BeginSponsoringFutureReservesAlreadySponsored), false);
}

[TestMethod]
public void TestMalformed()
{
var operationResultTr = new XDR.OperationResult.OperationResultTr();
operationResultTr.Discriminant.InnerValue = XDR.OperationType.OperationTypeEnum.BEGIN_SPONSORING_FUTURE_RESERVES;

var result = new XDR.BeginSponsoringFutureReservesResult();
result.Discriminant.InnerValue = XDR.BeginSponsoringFutureReservesResultCode.BeginSponsoringFutureReservesResultCodeEnum.BEGIN_SPONSORING_FUTURE_RESERVES_MALFORMED;
operationResultTr.BeginSponsoringFutureReservesResult = result;

Util.AssertResultOfType(Util.CreateTransactionResultXDR(operationResultTr), typeof(BeginSponsoringFutureReservesMalformed), false);
}

[TestMethod]
public void TestRecursive()
{
var operationResultTr = new XDR.OperationResult.OperationResultTr();
operationResultTr.Discriminant.InnerValue = XDR.OperationType.OperationTypeEnum.BEGIN_SPONSORING_FUTURE_RESERVES;

var result = new XDR.BeginSponsoringFutureReservesResult();
result.Discriminant.InnerValue = XDR.BeginSponsoringFutureReservesResultCode.BeginSponsoringFutureReservesResultCodeEnum.BEGIN_SPONSORING_FUTURE_RESERVES_RECURSIVE;
operationResultTr.BeginSponsoringFutureReservesResult = result;

Util.AssertResultOfType(Util.CreateTransactionResultXDR(operationResultTr), typeof(BeginSponsoringFutureReservesRecursive), false);
}

[TestMethod]
public void TestSuccess()
{
var operationResultTr = new XDR.OperationResult.OperationResultTr();
operationResultTr.Discriminant.InnerValue = XDR.OperationType.OperationTypeEnum.BEGIN_SPONSORING_FUTURE_RESERVES;

var result = new XDR.BeginSponsoringFutureReservesResult();
result.Discriminant.InnerValue = XDR.BeginSponsoringFutureReservesResultCode.BeginSponsoringFutureReservesResultCodeEnum.BEGIN_SPONSORING_FUTURE_RESERVES_SUCCESS;
operationResultTr.BeginSponsoringFutureReservesResult = result;

Util.AssertResultOfType(Util.CreateTransactionResultXDR(operationResultTr), typeof(BeginSponsoringFutureReservesSuccess), true);

}
}
}
@@ -0,0 +1,36 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using stellar_dotnet_sdk.responses.results;
using XDR = stellar_dotnet_sdk.xdr;

namespace stellar_dotnet_sdk_test.responses.results
{
[TestClass]
public class EndSponsoringFutureReservesResultTest
{
[TestMethod]
public void TestNotSponsored()
{
var operationResultTr = new XDR.OperationResult.OperationResultTr();
operationResultTr.Discriminant.InnerValue = XDR.OperationType.OperationTypeEnum.END_SPONSORING_FUTURE_RESERVES;

var result = new XDR.EndSponsoringFutureReservesResult();
result.Discriminant.InnerValue = XDR.EndSponsoringFutureReservesResultCode.EndSponsoringFutureReservesResultCodeEnum.END_SPONSORING_FUTURE_RESERVES_NOT_SPONSORED;
operationResultTr.EndSponsoringFutureReservesResult = result;

Util.AssertResultOfType(Util.CreateTransactionResultXDR(operationResultTr), typeof(EndSponsoringFutureReservesNotSponsored), false);
}

[TestMethod]
public void TestSuccess()
{
var operationResultTr = new XDR.OperationResult.OperationResultTr();
operationResultTr.Discriminant.InnerValue = XDR.OperationType.OperationTypeEnum.END_SPONSORING_FUTURE_RESERVES;

var result = new XDR.EndSponsoringFutureReservesResult();
result.Discriminant.InnerValue = XDR.EndSponsoringFutureReservesResultCode.EndSponsoringFutureReservesResultCodeEnum.END_SPONSORING_FUTURE_RESERVES_SUCCESS;
operationResultTr.EndSponsoringFutureReservesResult = result;

Util.AssertResultOfType(Util.CreateTransactionResultXDR(operationResultTr), typeof(EndSponsoringFutureReservesSuccess), true);
}
}
}
@@ -0,0 +1,75 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using stellar_dotnet_sdk.responses.results;
using XDR = stellar_dotnet_sdk.xdr;

namespace stellar_dotnet_sdk_test.responses.results
{
[TestClass]
public class RevokeSponsorshipResultTest
{
[TestMethod]
public void TestDoesNotExist()
{
var operationResultTr = new XDR.OperationResult.OperationResultTr();
operationResultTr.Discriminant.InnerValue = XDR.OperationType.OperationTypeEnum.REVOKE_SPONSORSHIP;

var result = new XDR.RevokeSponsorshipResult();
result.Discriminant.InnerValue = XDR.RevokeSponsorshipResultCode.RevokeSponsorshipResultCodeEnum.REVOKE_SPONSORSHIP_DOES_NOT_EXIST;
operationResultTr.RevokeSponsorshipResult = result;

Util.AssertResultOfType(Util.CreateTransactionResultXDR(operationResultTr), typeof(RevokeSponsorshipDoesNotExist), false);
}

[TestMethod]
public void TestLowReserve()
{
var operationResultTr = new XDR.OperationResult.OperationResultTr();
operationResultTr.Discriminant.InnerValue = XDR.OperationType.OperationTypeEnum.REVOKE_SPONSORSHIP;

var result = new XDR.RevokeSponsorshipResult();
result.Discriminant.InnerValue = XDR.RevokeSponsorshipResultCode.RevokeSponsorshipResultCodeEnum.REVOKE_SPONSORSHIP_LOW_RESERVE;
operationResultTr.RevokeSponsorshipResult = result;

Util.AssertResultOfType(Util.CreateTransactionResultXDR(operationResultTr), typeof(RevokeSponsorshipLowReserve), false);
}

[TestMethod]
public void TestNotSponsor()
{
var operationResultTr = new XDR.OperationResult.OperationResultTr();
operationResultTr.Discriminant.InnerValue = XDR.OperationType.OperationTypeEnum.REVOKE_SPONSORSHIP;

var result = new XDR.RevokeSponsorshipResult();
result.Discriminant.InnerValue = XDR.RevokeSponsorshipResultCode.RevokeSponsorshipResultCodeEnum.REVOKE_SPONSORSHIP_NOT_SPONSOR;
operationResultTr.RevokeSponsorshipResult = result;

Util.AssertResultOfType(Util.CreateTransactionResultXDR(operationResultTr), typeof(RevokeSponsorshipNotSponsor), false);
}

[TestMethod]
public void TestOnlyTransferable()
{
var operationResultTr = new XDR.OperationResult.OperationResultTr();
operationResultTr.Discriminant.InnerValue = XDR.OperationType.OperationTypeEnum.REVOKE_SPONSORSHIP;

var result = new XDR.RevokeSponsorshipResult();
result.Discriminant.InnerValue = XDR.RevokeSponsorshipResultCode.RevokeSponsorshipResultCodeEnum.REVOKE_SPONSORSHIP_ONLY_TRANSFERABLE;
operationResultTr.RevokeSponsorshipResult = result;

Util.AssertResultOfType(Util.CreateTransactionResultXDR(operationResultTr), typeof(RevokeSponsorshipOnlyTransferable), false);
}

[TestMethod]
public void TestSuccesss()
{
var operationResultTr = new XDR.OperationResult.OperationResultTr();
operationResultTr.Discriminant.InnerValue = XDR.OperationType.OperationTypeEnum.REVOKE_SPONSORSHIP;

var result = new XDR.RevokeSponsorshipResult();
result.Discriminant.InnerValue = XDR.RevokeSponsorshipResultCode.RevokeSponsorshipResultCodeEnum.REVOKE_SPONSORSHIP_SUCCESS;
operationResultTr.RevokeSponsorshipResult = result;

Util.AssertResultOfType(Util.CreateTransactionResultXDR(operationResultTr), typeof(RevokeSponsorshipSuccess), true);
}
}
}
@@ -0,0 +1,10 @@
namespace stellar_dotnet_sdk.responses.results
{
/// <summary>
/// Already sponsored
/// </summary>
public class BeginSponsoringFutureReservesAlreadySponsored : BeginSponsoringFutureReservesResult
{

}
}
@@ -0,0 +1,10 @@
namespace stellar_dotnet_sdk.responses.results
{
/// <summary>
/// The operation is malformed.
/// </summary>
public class BeginSponsoringFutureReservesMalformed : BeginSponsoringFutureReservesResult
{

}
}
@@ -0,0 +1,10 @@
namespace stellar_dotnet_sdk.responses.results
{
/// <summary>
/// The operation is recursive.
/// </summary>
public class BeginSponsoringFutureReservesRecursive : BeginSponsoringFutureReservesResult
{

}
}
@@ -0,0 +1,24 @@
using System;

namespace stellar_dotnet_sdk.responses.results
{
public class BeginSponsoringFutureReservesResult : OperationResult
{
public static BeginSponsoringFutureReservesResult FromXdr(xdr.BeginSponsoringFutureReservesResult result)
{
switch (result.Discriminant.InnerValue)
{
case xdr.BeginSponsoringFutureReservesResultCode.BeginSponsoringFutureReservesResultCodeEnum.BEGIN_SPONSORING_FUTURE_RESERVES_ALREADY_SPONSORED:
return new BeginSponsoringFutureReservesAlreadySponsored();
case xdr.BeginSponsoringFutureReservesResultCode.BeginSponsoringFutureReservesResultCodeEnum.BEGIN_SPONSORING_FUTURE_RESERVES_MALFORMED:
return new BeginSponsoringFutureReservesMalformed();
case xdr.BeginSponsoringFutureReservesResultCode.BeginSponsoringFutureReservesResultCodeEnum.BEGIN_SPONSORING_FUTURE_RESERVES_RECURSIVE:
return new BeginSponsoringFutureReservesRecursive();
case xdr.BeginSponsoringFutureReservesResultCode.BeginSponsoringFutureReservesResultCodeEnum.BEGIN_SPONSORING_FUTURE_RESERVES_SUCCESS:
return new BeginSponsoringFutureReservesSuccess();
default:
throw new SystemException("Unknown BeginSponsoringFutureReserves type");
}
}
}
}
@@ -0,0 +1,10 @@
namespace stellar_dotnet_sdk.responses.results
{
/// <summary>
/// The operation is successful.
/// </summary>
public class BeginSponsoringFutureReservesSuccess : BeginSponsoringFutureReservesResult
{
public override bool IsSuccess => true;
}
}
@@ -0,0 +1,10 @@
namespace stellar_dotnet_sdk.responses.results
{
/// <summary>
/// Not sponsored
/// </summary>
public class EndSponsoringFutureReservesNotSponsored : EndSponsoringFutureReservesResult
{

}
}
@@ -0,0 +1,20 @@
using System;

namespace stellar_dotnet_sdk.responses.results
{
public class EndSponsoringFutureReservesResult : OperationResult
{
public static EndSponsoringFutureReservesResult FromXdr(xdr.EndSponsoringFutureReservesResult result)
{
switch (result.Discriminant.InnerValue)
{
case xdr.EndSponsoringFutureReservesResultCode.EndSponsoringFutureReservesResultCodeEnum.END_SPONSORING_FUTURE_RESERVES_NOT_SPONSORED:
return new EndSponsoringFutureReservesNotSponsored();
case xdr.EndSponsoringFutureReservesResultCode.EndSponsoringFutureReservesResultCodeEnum.END_SPONSORING_FUTURE_RESERVES_SUCCESS:
return new EndSponsoringFutureReservesSuccess();
default:
throw new SystemException("Unknown EndSponsoringFutureReserves type");
}
}
}
}
@@ -0,0 +1,10 @@
namespace stellar_dotnet_sdk.responses.results
{
/// <summary>
/// Success
/// </summary>
public class EndSponsoringFutureReservesSuccess : EndSponsoringFutureReservesResult
{
public override bool IsSuccess => true;
}
}
6 changes: 6 additions & 0 deletions stellar-dotnet-sdk/responses/results/OperationResult.cs
Expand Up @@ -62,6 +62,12 @@ private static OperationResult InnerOperationResultFromXdr(xdr.OperationResult.O
return CreateClaimableBalanceResult.FromXdr(result.CreateClaimableBalanceResult);
case xdr.OperationType.OperationTypeEnum.CLAIM_CLAIMABLE_BALANCE:
return ClaimClaimableBalanceResult.FromXdr(result.ClaimClaimableBalanceResult);
case xdr.OperationType.OperationTypeEnum.BEGIN_SPONSORING_FUTURE_RESERVES:
return BeginSponsoringFutureReservesResult.FromXdr(result.BeginSponsoringFutureReservesResult);
case xdr.OperationType.OperationTypeEnum.END_SPONSORING_FUTURE_RESERVES:
return EndSponsoringFutureReservesResult.FromXdr(result.EndSponsoringFutureReservesResult);
case xdr.OperationType.OperationTypeEnum.REVOKE_SPONSORSHIP:
return RevokeSponsorshipResult.FromXdr(result.RevokeSponsorshipResult);
default:
throw new SystemException("Unknown OperationType");
}
Expand Down
@@ -0,0 +1,10 @@
namespace stellar_dotnet_sdk.responses.results
{
/// <summary>
/// Sponsorship doesn't exist.
/// </summary>
public class RevokeSponsorshipDoesNotExist : RevokeSponsorshipResult
{

}
}
@@ -0,0 +1,10 @@
namespace stellar_dotnet_sdk.responses.results
{
/// <summary>
/// Low reserve
/// </summary>
public class RevokeSponsorshipLowReserve : RevokeSponsorshipResult
{

}
}
@@ -0,0 +1,10 @@
namespace stellar_dotnet_sdk.responses.results
{
/// <summary>
/// Not sponsor
/// </summary>
public class RevokeSponsorshipNotSponsor : RevokeSponsorshipResult
{

}
}
@@ -0,0 +1,10 @@
namespace stellar_dotnet_sdk.responses.results
{
/// <summary>
/// Sponsorship is only transferable
/// </summary>
public class RevokeSponsorshipOnlyTransferable : RevokeSponsorshipResult
{

}
}
26 changes: 26 additions & 0 deletions stellar-dotnet-sdk/responses/results/RevokeSponsorshipResult.cs
@@ -0,0 +1,26 @@
using System;

namespace stellar_dotnet_sdk.responses.results
{
public class RevokeSponsorshipResult : OperationResult
{
public static RevokeSponsorshipResult FromXdr(xdr.RevokeSponsorshipResult result)
{
switch (result.Discriminant.InnerValue)
{
case xdr.RevokeSponsorshipResultCode.RevokeSponsorshipResultCodeEnum.REVOKE_SPONSORSHIP_DOES_NOT_EXIST:
return new RevokeSponsorshipDoesNotExist();
case xdr.RevokeSponsorshipResultCode.RevokeSponsorshipResultCodeEnum.REVOKE_SPONSORSHIP_LOW_RESERVE:
return new RevokeSponsorshipLowReserve();
case xdr.RevokeSponsorshipResultCode.RevokeSponsorshipResultCodeEnum.REVOKE_SPONSORSHIP_NOT_SPONSOR:
return new RevokeSponsorshipNotSponsor();
case xdr.RevokeSponsorshipResultCode.RevokeSponsorshipResultCodeEnum.REVOKE_SPONSORSHIP_ONLY_TRANSFERABLE:
return new RevokeSponsorshipOnlyTransferable();
case xdr.RevokeSponsorshipResultCode.RevokeSponsorshipResultCodeEnum.REVOKE_SPONSORSHIP_SUCCESS:
return new RevokeSponsorshipSuccess();
default:
throw new SystemException("Unknown RevokeSponsorship type");
}
}
}
}
10 changes: 10 additions & 0 deletions stellar-dotnet-sdk/responses/results/RevokeSponsorshipSuccess.cs
@@ -0,0 +1,10 @@
namespace stellar_dotnet_sdk.responses.results
{
/// <summary>
/// Success
/// </summary>
public class RevokeSponsorshipSuccess : RevokeSponsorshipResult
{
public override bool IsSuccess => true;
}
}

0 comments on commit 0a91922

Please sign in to comment.