コード例 #1
0
ファイル: PayPalTest.cs プロジェクト: zhabis/nfx
        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);
        }
コード例 #2
0
ファイル: PayPalTest.cs プロジェクト: zhabis/nfx
        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);
        }