package com.pinecone.technology.mcommerce.learning.android.chapter07.example.test; import java.util.Date; import java.util.List; import android.app.Application; import com.pinecone.technology.mcommerce.learning.android.chapter06.example.dao.DaoMaster; import com.pinecone.technology.mcommerce.learning.android.chapter06.example.dao.DaoSession; import com.pinecone.technology.mcommerce.learning.android.chapter06.example.dao.Invoice; import com.pinecone.technology.mcommerce.learning.android.chapter06.example.dao.InvoiceLine; import de.greenrobot.dao.test.AbstractDaoSessionTest; public class CustomerOrderTest extends AbstractDaoSessionTest<Application, DaoMaster, DaoSession> { public CustomerOrderTest() { super(DaoMaster.class); } public void testInvoiceToLines() { Date date = new Date(System.currentTimeMillis() - ((long) (Math.random() * 1000 * 60 * 60 * 24 * 365))); Invoice invoice = new Invoice(null, date, 1, null, null, null, null, null, null); daoSession.insert(invoice); addLinesToInvoice(invoice); addLinesToInvoice(invoice); List<InvoiceLine> orders = invoice.getInvoiceLines(); assertEquals(2, orders.size()); } public void testLinesToInvoice() { Date date = new Date(System.currentTimeMillis() - ((long) (Math.random() * 1000 * 60 * 60 * 24 * 365))); Invoice invoice = new Invoice(null, date, 1, null, null, null, null, null, null); daoSession.insert(invoice); InvoiceLine lines = addLinesToInvoice(invoice); Invoice invoice2 = lines.getInvoice(); assertSame(invoice, invoice2); } public void testUpdateBirectional() { Date date = new Date(System.currentTimeMillis() - ((long) (Math.random() * 1000 * 60 * 60 * 24 * 365))); Invoice invoice = new Invoice(null, date, 1, null, null, null, null, null, null); daoSession.insert(invoice); addLinesToInvoice(invoice); List<InvoiceLine> lines = invoice.getInvoiceLines(); InvoiceLine newInvoice = new InvoiceLine(); newInvoice.setInvoice(invoice); daoSession.insert(newInvoice); lines.add(newInvoice); assertEquals(2, lines.size()); invoice.resetInvoiceLines(); List<InvoiceLine> lines2 = invoice.getInvoiceLines(); assertEquals(lines.size(), lines2.size()); } private InvoiceLine addLinesToInvoice(Invoice invoice) { InvoiceLine line = new InvoiceLine(null, invoice.getId(), 0, 0, null); daoSession.insert(line); return line; } }