public void DuplicatePayoutTest() { var ps = PayPalSys; var amount = new Amount("USD", 1.2m); var from = new Account("SYSTEM", 111, 222); var to = new Account("USER", 111, 222); object id = null; using (var session = ps.StartSession()) { session.StoreAccountData(new ActualAccountData(from) { Identity = from.Identity, IdentityID = from.IdentityID, AccountID = from.AccountID }); session.StoreAccountData(new ActualAccountData(to) { Identity = from.Identity, IdentityID = from.IdentityID, AccountID = PayPalHost.PaypalValidAccount }); var tran = session.Transfer(from, to, amount); id = tran.ID; } var transaction = PayPalHost.FetchTransaction(id); refreshTransaction(transaction); //refreshTransaction(transaction); //Aver.IsTrue(TransactionStatus.Success == transaction.Status); PayPalHost.SetNextTransactionID(id); using (var session = ps.StartSession()) session.Transfer(from, to, amount); transaction = PayPalHost.FetchTransaction(id); refreshTransaction(transaction); }
public void PayoutTest() { var ps = PayPalSys; var amount = new Amount("USD", 1.0m); var from = new Account("SYSTEM", 111, 222); var to = new Account("USER", 111, 222); object id = null; using (var session = ps.StartSession()) { session.StoreAccountData(new ActualAccountData(from) { Identity = from.Identity, IdentityID = from.IdentityID, AccountID = from.AccountID }); session.StoreAccountData(new ActualAccountData(to) { Identity = from.Identity, IdentityID = from.IdentityID, AccountID = PayPalHost.PaypalValidAccount }); var tran = session.Transfer(from, to, amount); Aver.IsNotNull(tran); Aver.IsNotNull(tran.ID); id = tran.ID; Aver.IsTrue(TransactionType.Transfer == tran.Type); Aver.AreEqual(amount, tran.Amount); Aver.AreEqual(from, tran.From); Aver.AreEqual(to, tran.To); Aver.IsTrue(TransactionStatus.Promised == tran.Status); Aver.IsNotNull(((PayPalSession)session).AuthorizationToken); // token occured on first call var token = session.User.AuthToken.Data as PayPalOAuthToken; Aver.IsNotNull(token); Aver.IsTrue(token.ObtainTime > App.TimeSource.Now.AddMinutes(-1)); Aver.AreEqual(3600, token.ExpirationMarginSec); Aver.IsTrue(token.ApplicationID.IsNotNullOrEmpty()); Aver.IsTrue(token.ExpiresInSec > 0); Aver.IsTrue(token.AccessToken.IsNotNullOrEmpty()); Aver.IsTrue(token.Scope.IsNotNullOrEmpty()); Aver.IsTrue(token.Nonce.IsNotNullOrEmpty()); } var transaction = PayPalHost.FetchTransaction(id); Aver.IsNotNull(transaction); // actually, the transfer is made only when Refresh() method is calling refreshTransaction(transaction); Aver.IsNotNull(transaction); Aver.IsTrue(TransactionType.Transfer == transaction.Type); Aver.AreEqual(amount, transaction.Amount); Aver.AreEqual(from, transaction.From); Aver.AreEqual(to, transaction.To); Aver.IsTrue(TransactionStatus.Pending == transaction.Status); refreshTransaction(transaction); Aver.IsNotNull(transaction); Aver.IsTrue(TransactionType.Transfer == transaction.Type); Aver.AreEqual(amount, transaction.Amount); Aver.AreEqual(from, transaction.From); Aver.AreEqual(to, transaction.To); Aver.IsTrue(TransactionStatus.Success == transaction.Status); }