📄 customertest.java
字号:
package entity;
import junit.framework.JUnit4TestAdapter;
import org.junit.After;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import javax.persistence.*;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
/**
* @author Antonio Goncalves
*/
public class CustomerTest {
private static String PERSISTENCE_UNIT_NAME = "watermelonPU";
private static Calendar calendar;
private EntityManagerFactory emf;
private EntityManager em;
private EntityTransaction trans;
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(CustomerTest.class);
}
@BeforeClass
public static void initCalendar() {
calendar = GregorianCalendar.getInstance();
}
@Before
public void init() {
emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
em = emf.createEntityManager();
trans = em.getTransaction();
}
@After
public void close() {
em.close();
emf.close();
}
@Test(expected = Exception.class)
public void createCustomerWithoutAddress() {
calendar.set(1940, 10, 9);
Date dateOfBirth = calendar.getTime();
Customer customer = new Customer("John", "Lennon", "+411909", "john@lenon.com", dateOfBirth);
// Persists a customer
trans.begin();
em.persist(customer);
trans.commit();
}
@Test
public void createCustomerWithAddress() {
calendar.set(1940, 10, 9);
Date dateOfBirth = calendar.getTime();
Customer customer = new Customer("John", "Lennon", "+411909", "john@lenon.com", dateOfBirth);
Address homeAddress = new Address("Abbey Road", "London", "SW14", "UK");
customer.setHomeAddress(homeAddress);
// Persists a customer
trans.begin();
em.persist(customer);
trans.commit();
Long customerId = customer.getId();
Long addressId = homeAddress.getId();
// Finds the customer by primary key
customer = em.find(Customer.class, customerId);
assertEquals(customer.getEmail(), "john@lenon.com");
assertEquals(customer.getAge(), 66);
assertEquals(customer.getHomeAddress().getCountry(), "UK");
// Updates the customer
trans.begin();
customer.setEmail("john@beatles.co.uk");
homeAddress.setCountry("US");
trans.commit();
// Finds the customer by primary key
customer = em.find(Customer.class, customerId);
assertEquals(customer.getEmail(), "john@beatles.co.uk");
assertEquals(customer.getAge(), 66);
assertEquals(customer.getHomeAddress().getCountry(), "US");
// Deletes the customer
trans.begin();
em.remove(customer);
trans.commit();
assertNull("Customer should have been deleted", em.find(Customer.class, customerId));
assertNull("Address should have been deleted", em.find(Address.class, addressId));
}
@Test(expected = IllegalArgumentException.class)
public void createCustomerWithInvalidPhone() {
calendar.set(1940, 10, 9);
Date dateOfBirth = calendar.getTime();
Customer customer = new Customer("John", "Lennon", "411909", "john@lenon.com", dateOfBirth);
// Persists a customer
trans.begin();
em.persist(customer);
trans.commit();
}
@Test
public void findCustomers() {
calendar.set(1940, 10, 9);
Customer customer1 = new Customer("John", "Lennon", "+411909", "john@lenon.com", calendar.getTime());
customer1.setHomeAddress(new Address("Abbey Road", "London", "SW14", "UK"));
calendar.set(1940, 7, 7);
Customer customer2 = new Customer("Ringo", "Starr", "+187445", "ringo@star.com", calendar.getTime());
customer2.setHomeAddress(new Address("Abbey Road", "London", "SW14", "UK"));
calendar.set(1943, 2, 25);
Customer customer3 = new Customer("Georges", "Harrison", "+44877899", "georges@harrison.com", calendar.getTime());
customer3.setHomeAddress(new Address("Abbey Road", "London", "SW14", "US"));
calendar.set(1942, 6, 18);
Customer customer4 = new Customer("Paul", "McCartney", "+41871109", "paul@mccartney.com", calendar.getTime());
customer4.setHomeAddress(new Address("Abbey Road", "London", "SW14", "US"));
// Persists a customers
trans.begin();
em.persist(customer1);
em.persist(customer2);
em.persist(customer3);
em.persist(customer4);
trans.commit();
Query query;
List<Customer> customers;
// Finds all the customers
query = em.createQuery("SELECT c FROM Customer c");
customers = query.getResultList();
assertEquals(customers.size(), 4);
// Finds all the customers ordered by lastname
query = em.createQuery("SELECT c FROM Customer c ORDER BY c.lastname");
customers = query.getResultList();
assertEquals(customers.size(), 4);
// Finds all the customers with a name = Ringo
query = em.createQuery("SELECT c FROM Customer c WHERE c.firstname='John'");
customers = query.getResultList();
assertEquals(customers.size(), 1);
// Finds all the customers living in the US
query = em.createQuery("SELECT c FROM Customer c WHERE c.homeAddress.country='US'");
customers = query.getResultList();
assertEquals(customers.size(), 2);
// Finds all the customers living in the US (using parameters)
query = em.createQuery("SELECT c FROM Customer c WHERE c.homeAddress.country=:cnty");
query.setParameter("cnty", "US");
customers = query.getResultList();
assertEquals(customers.size(), 2);
// Finds all the customers with a name containing "Mc" or MC
query = em.createQuery("SELECT c FROM Customer c WHERE UPPER(c.lastname) LIKE :keyword");
query.setParameter("keyword", "%MC%");
customers = query.getResultList();
assertEquals(customers.size(), 1);
// Deletes the customers
trans.begin();
em.remove(customer1);
em.remove(customer2);
em.remove(customer3);
em.remove(customer4);
trans.commit();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -