Пример #1
0
  @Test
  public void testSimplePayment() throws Exception {
    // Create a PaymentRequest and make sure the correct values are parsed by the PaymentSession.
    MockPaymentSession paymentSession = new MockPaymentSession(newSimplePaymentRequest());
    assertEquals(paymentRequestMemo, paymentSession.getMemo());
    assertEquals(nanoCoins, paymentSession.getValue());
    assertEquals(simplePaymentUrl, paymentSession.getPaymentUrl());
    assertTrue(new Date(time * 1000L).equals(paymentSession.getDate()));
    assertTrue(paymentSession.getSendRequest().tx.equals(tx));
    assertFalse(paymentSession.isExpired());

    // Send the payment and verify that the correct information is sent.
    // Add a dummy input to tx so it is considered valid.
    tx.addInput(new TransactionInput(params, tx, outputToMe.getScriptBytes()));
    ArrayList<Transaction> txns = new ArrayList<Transaction>();
    txns.add(tx);
    Address refundAddr = new Address(params, serverKey.getPubKeyHash());
    paymentSession.sendPayment(txns, refundAddr, paymentMemo);
    assertEquals(1, paymentSession.getPaymentLog().size());
    assertEquals(simplePaymentUrl, paymentSession.getPaymentLog().get(0).getUrl().toString());
    Protos.Payment payment = paymentSession.getPaymentLog().get(0).getPayment();
    assertEquals(paymentMemo, payment.getMemo());
    assertEquals(merchantData, payment.getMerchantData());
    assertEquals(1, payment.getRefundToCount());
    assertEquals(nanoCoins.longValue(), payment.getRefundTo(0).getAmount());
    TransactionOutput refundOutput = new TransactionOutput(params, null, nanoCoins, refundAddr);
    ByteString refundScript = ByteString.copyFrom(refundOutput.getScriptBytes());
    assertTrue(refundScript.equals(payment.getRefundTo(0).getScript()));
  }
Пример #2
0
 @Test
 public void testExpiredPaymentRequest() throws Exception {
   MockPaymentSession paymentSession = new MockPaymentSession(newExpiredPaymentRequest());
   assertTrue(paymentSession.isExpired());
   // Send the payment and verify that an exception is thrown.
   // Add a dummy input to tx so it is considered valid.
   tx.addInput(new TransactionInput(params, tx, outputToMe.getScriptBytes()));
   ArrayList<Transaction> txns = new ArrayList<Transaction>();
   txns.add(tx);
   try {
     paymentSession.sendPayment(txns, null, null);
   } catch (PaymentRequestException.Expired e) {
     assertEquals(0, paymentSession.getPaymentLog().size());
     assertEquals(e.getMessage(), "PaymentRequest is expired");
     return;
   }
   fail("Expected exception due to expired PaymentRequest");
 }