|
@@ -1,8 +1,7 @@
|
|
|
-contract('PullPaymentExample', function(accounts) {
|
|
|
+contract('PullPayment', function(accounts) {
|
|
|
|
|
|
it("can't call asyncSend externally", function(done) {
|
|
|
- var ppc;
|
|
|
- return PullPaymentExample.new()
|
|
|
+ return PullPaymentMock.new()
|
|
|
.then(function(ppc) {
|
|
|
assert.isUndefined(ppc.asyncSend);
|
|
|
})
|
|
@@ -12,7 +11,7 @@ contract('PullPaymentExample', function(accounts) {
|
|
|
it("can record an async payment correctly", function(done) {
|
|
|
var ppce;
|
|
|
var AMOUNT = 100;
|
|
|
- return PullPaymentExample.new()
|
|
|
+ return PullPaymentMock.new()
|
|
|
.then(function(_ppce) {
|
|
|
ppce = _ppce;
|
|
|
ppce.callSend(accounts[0], AMOUNT)
|
|
@@ -26,4 +25,78 @@ contract('PullPaymentExample', function(accounts) {
|
|
|
.then(done);
|
|
|
});
|
|
|
|
|
|
+ it("can add multiple balances on one account", function(done) {
|
|
|
+ var ppce;
|
|
|
+ return PullPaymentMock.new()
|
|
|
+ .then(function(_ppce) {
|
|
|
+ ppce = _ppce;
|
|
|
+ return ppce.callSend(accounts[0], 200)
|
|
|
+ })
|
|
|
+ .then(function() {
|
|
|
+ return ppce.callSend(accounts[0], 300)
|
|
|
+ })
|
|
|
+ .then(function() {
|
|
|
+ return ppce.payments(accounts[0]);
|
|
|
+ })
|
|
|
+ .then(function(paymentsToAccount0) {
|
|
|
+ assert.equal(paymentsToAccount0, 500);
|
|
|
+ })
|
|
|
+ .then(done);
|
|
|
+ });
|
|
|
+
|
|
|
+ it("can add balances on multiple accounts", function(done) {
|
|
|
+ var ppce;
|
|
|
+ return PullPaymentMock.new()
|
|
|
+ .then(function(_ppce) {
|
|
|
+ ppce = _ppce;
|
|
|
+ return ppce.callSend(accounts[0], 200)
|
|
|
+ })
|
|
|
+ .then(function() {
|
|
|
+ return ppce.callSend(accounts[1], 300)
|
|
|
+ })
|
|
|
+ .then(function() {
|
|
|
+ return ppce.payments(accounts[0]);
|
|
|
+ })
|
|
|
+ .then(function(paymentsToAccount0) {
|
|
|
+ assert.equal(paymentsToAccount0, 200);
|
|
|
+ })
|
|
|
+ .then(function() {
|
|
|
+ return ppce.payments(accounts[1]);
|
|
|
+ })
|
|
|
+ .then(function(paymentsToAccount0) {
|
|
|
+ assert.equal(paymentsToAccount0, 300);
|
|
|
+ })
|
|
|
+ .then(done);
|
|
|
+ });
|
|
|
+
|
|
|
+ it("can withdraw payment", function(done) {
|
|
|
+ var ppce;
|
|
|
+ var AMOUNT = 17*1e18;
|
|
|
+ var payee = accounts[1];
|
|
|
+ var initialBalance = web3.eth.getBalance(payee);
|
|
|
+ return PullPaymentMock.new({value: AMOUNT})
|
|
|
+ .then(function(_ppce) {
|
|
|
+ ppce = _ppce;
|
|
|
+ return ppce.callSend(payee, AMOUNT);
|
|
|
+ })
|
|
|
+ .then(function() {
|
|
|
+ return ppce.payments(payee);
|
|
|
+ })
|
|
|
+ .then(function(paymentsToAccount0) {
|
|
|
+ assert.equal(paymentsToAccount0, AMOUNT);
|
|
|
+ })
|
|
|
+ .then(function() {
|
|
|
+ return ppce.withdrawPayments({from: payee});
|
|
|
+ })
|
|
|
+ .then(function() {
|
|
|
+ return ppce.payments(payee);
|
|
|
+ })
|
|
|
+ .then(function(paymentsToAccount0) {
|
|
|
+ assert.equal(paymentsToAccount0, 0);
|
|
|
+ var balance = web3.eth.getBalance(payee);
|
|
|
+ assert(Math.abs(balance-initialBalance-AMOUNT) < 1e16);
|
|
|
+ })
|
|
|
+ .then(done);
|
|
|
+ });
|
|
|
+
|
|
|
});
|