📄 paymenttest.java
字号:
/*
* Copyright 2006 Borys Burnayev
*
* Licensed 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 test.persistence;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import junit.framework.TestCase;
import com.rdacorp.petstore.domain.Account;
import com.rdacorp.petstore.domain.CreditCardCompany;
import com.rdacorp.petstore.domain.Payment;
/**
* @author Borys Burnayev
*/
public class PaymentTest extends TestCase {
public void testCRUD() throws Exception {
Map config = new HashMap();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("manager1", config);
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
// create a payment record
List accounts = em.createQuery("from Account").getResultList();
Account initialAccount = (Account) accounts.get(0);
Account updatedAccount = (Account) accounts.get(1);
String initialFirstName = initialAccount.getPerson().getFirstName();
String updatedFirstName = updatedAccount.getPerson().getFirstName();
List creditCardCompanies = em.createQuery("from CreditCardCompany").getResultList();
CreditCardCompany initialCreditCardCompany = (CreditCardCompany) creditCardCompanies.get(0);
CreditCardCompany updatedCreditCardCompany = (CreditCardCompany) creditCardCompanies.get(1);
String initialCreditCardCompanyCode = initialCreditCardCompany.getCode();
String updatedCreditCardCompanyCode = updatedCreditCardCompany.getCode();
DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
Date initialPaymentDate = formatter.parse("12/31/2002");
Date updatedPaymentDate = formatter.parse("12/12/2003");
Payment payment = new Payment(new BigDecimal(123), initialPaymentDate, "1111222233334444", 6, 2006,
initialCreditCardCompany, initialAccount);
em.persist(payment);
em.getTransaction().commit();
// verify primary key
Integer paymentId = payment.getPaymentId();
assertNotNull(paymentId);
em.getTransaction().begin();
// read the account
payment = (Payment) em.find(Payment.class, paymentId);
// verify payment info
assertEquals(123.0, payment.getAmount().doubleValue());
assertEquals(initialPaymentDate, payment.getPaymentTs());
assertEquals("1111222233334444", payment.getCreditCardNumber());
assertEquals(6, payment.getExpirationMonth());
assertEquals(2006, payment.getExpirationYear());
// verify some derived info related to account and credit card company
assertEquals(initialFirstName, payment.getAccount().getPerson().getFirstName());
assertEquals(initialCreditCardCompanyCode, payment.getCreditCardCompany().getCode());
// update existing person and account records
payment.setAmount(new BigDecimal(321));
payment.setPaymentTs(updatedPaymentDate);
payment.setCreditCardNumber("4444333322221111");
payment.setExpirationMonth(2);
payment.setExpirationYear(2007);
payment.setAccount(em.merge(updatedAccount));
payment.setCreditCardCompany(em.merge(updatedCreditCardCompany));
em.getTransaction().commit();
em.getTransaction().begin();
// reread the record
payment = (Payment) em.find(Payment.class, paymentId);
// verify the updated record
assertEquals(321.0, payment.getAmount().doubleValue());
assertEquals(updatedPaymentDate, payment.getPaymentTs());
assertEquals("4444333322221111", payment.getCreditCardNumber());
assertEquals(2, payment.getExpirationMonth());
assertEquals(2007, payment.getExpirationYear());
assertEquals(updatedFirstName, payment.getAccount().getPerson().getFirstName());
assertEquals(updatedCreditCardCompanyCode, payment.getCreditCardCompany().getCode());
// delete the record
em.remove(payment);
em.getTransaction().commit();
// retrive the person and verify it is null
payment = (Payment) em.find(Payment.class, paymentId);
assertNull(payment);
em.close();
emf.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -