From 8a0d0fd710674914f2b2f0b256162af9e2db9c83 Mon Sep 17 00:00:00 2001 From: rfeng Date: Wed, 27 May 2009 04:52:05 +0000 Subject: Adding XML printout and refactoring a client git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@778997 13f79535-47bb-0310-9956-ffa450edef68 --- .../creditcard/impl/CreditCardPaymentImpl.java | 34 +++++++++++++- .../creditcard/test/CreditCardPaymentClient.java | 54 ++++++++++++++++++++++ .../test/CreditCardPaymentOSGiTestCase.java | 18 +------- 3 files changed, 88 insertions(+), 18 deletions(-) create mode 100644 sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/scatours/payment/creditcard/test/CreditCardPaymentClient.java (limited to 'sandbox/rfeng') diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/payment/creditcard/impl/CreditCardPaymentImpl.java b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/payment/creditcard/impl/CreditCardPaymentImpl.java index 510dc76b7d..014c49f143 100644 --- a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/payment/creditcard/impl/CreditCardPaymentImpl.java +++ b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/payment/creditcard/impl/CreditCardPaymentImpl.java @@ -19,6 +19,16 @@ package scatours.payment.creditcard.impl; +import java.io.StringWriter; +import java.util.UUID; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBElement; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.PropertyException; +import javax.xml.namespace.QName; + import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; @@ -36,17 +46,37 @@ public class CreditCardPaymentImpl implements CreditCardPayment { public String authorize(CreditCardDetailsType creditCard, float amount) { if (creditCard != null) { + try { + print(creditCard); + } catch (Exception e) { + e.printStackTrace(); + } + System.out.println("Credit card: name = " + creditCard.getCardOwner().getName() + " number = " + creditCard.getCreditCardNumber() + " for amount " - + amount + " EUR"); + + amount + + " EUR"); amount = convertCurrency(amount); } else { System.out.println("Credit card is null"); } - return "OK"; + return "SUCCESS: " + UUID.randomUUID(); + } + + private void print(CreditCardDetailsType creditCard) throws JAXBException, PropertyException { + JAXBContext context = JAXBContext.newInstance(CreditCardDetailsType.class); + QName name = new QName("http://ns1", "creditCard"); + JAXBElement element = new JAXBElement(name, Object.class, creditCard); + StringWriter writer = new StringWriter(); + Marshaller marshaller = context.createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + context.createMarshaller().marshal(element, writer); + writer.flush(); + System.out.println(writer.toString()); } private float convertCurrency(float amount) { diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/scatours/payment/creditcard/test/CreditCardPaymentClient.java b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/scatours/payment/creditcard/test/CreditCardPaymentClient.java new file mode 100644 index 0000000000..d41571f679 --- /dev/null +++ b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/scatours/payment/creditcard/test/CreditCardPaymentClient.java @@ -0,0 +1,54 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package scatours.payment.creditcard.test; + +import scatours.payment.creditcard.CreditCardDetailsType; +import scatours.payment.creditcard.CreditCardPayment; +import scatours.payment.creditcard.CreditCardPaymentService; +import scatours.payment.creditcard.CreditCardTypeType; +import scatours.payment.creditcard.ObjectFactory; +import scatours.payment.creditcard.PayerType; + +/** + * + */ +public class CreditCardPaymentClient { + static String invoke() { + CreditCardPaymentService service = new CreditCardPaymentService(); + ObjectFactory objectFactory = new ObjectFactory(); + CreditCardDetailsType ccDetails = objectFactory.createCreditCardDetailsType(); + ccDetails.setCreditCardType(CreditCardTypeType.fromValue("Visa")); + ccDetails.setCreditCardNumber("1234-5678-1234-5678"); + ccDetails.setCVV2("123"); + ccDetails.setExpMonth(12); + ccDetails.setExpYear(2011); + PayerType ccOwner = objectFactory.createPayerType(); + ccOwner.setName("Fred"); + ccDetails.setCardOwner(ccOwner); + CreditCardPayment cc = service.getCreditCardPaymentPort(); + String status = cc.authorize(ccDetails, 100.00f); + System.out.println("Status of the transaction: " + status); + return status; + } + + public static void main(String[] args) { + invoke(); + } +} diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/scatours/payment/creditcard/test/CreditCardPaymentOSGiTestCase.java b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/scatours/payment/creditcard/test/CreditCardPaymentOSGiTestCase.java index f981e31efa..bfc404635b 100644 --- a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/scatours/payment/creditcard/test/CreditCardPaymentOSGiTestCase.java +++ b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/scatours/payment/creditcard/test/CreditCardPaymentOSGiTestCase.java @@ -36,13 +36,6 @@ import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.Constants; -import scatours.payment.creditcard.CreditCardDetailsType; -import scatours.payment.creditcard.CreditCardPayment; -import scatours.payment.creditcard.CreditCardPaymentService; -import scatours.payment.creditcard.CreditCardTypeType; -import scatours.payment.creditcard.ObjectFactory; -import scatours.payment.creditcard.PayerType; - /** * */ @@ -116,15 +109,8 @@ public class CreditCardPaymentOSGiTestCase { */ @Test public void testClient() { - CreditCardPaymentService service = new CreditCardPaymentService(); - ObjectFactory objectFactory = new ObjectFactory(); - CreditCardDetailsType ccDetails = objectFactory.createCreditCardDetailsType(); - ccDetails.setCreditCardType(CreditCardTypeType.fromValue("Visa")); - PayerType ccOwner = objectFactory.createPayerType(); - ccOwner.setName("Fred"); - ccDetails.setCardOwner(ccOwner); - CreditCardPayment cc = service.getCreditCardPaymentPort(); - System.out.println(cc.authorize(ccDetails, 100.00f)); + String status = CreditCardPaymentClient.invoke(); + Assert.assertTrue(status.startsWith("SUCCESS")); } /** -- cgit v1.2.3