Search in sources :

Example 1 with Loan

use of sqlite.feature.custombean.case1.Loan in project kripton by xcesco.

the class TestCustomBeanRuntime method testCompile.

@Test
public void testCompile() throws InterruptedException {
    BindAppDataSource dataSource = BindAppDataSource.getInstance();
    dataSource.execute(new Transaction() {

        @Override
        public TransactionResult onExecute(BindAppDaoFactory daoFactory) {
            User user = createUser(daoFactory);
            Book book = createBook(daoFactory);
            insertLoan(daoFactory, user, book);
            // insertLoan(daoFactory, user, book);
            return TransactionResult.COMMIT;
        }

        private void insertLoan(BindAppDaoFactory daoFactory, User user, Book book) {
            Loan loan = new Loan();
            loan.id = UUID.randomUUID().toString();
            loan.bookId = book.id;
            loan.userId = user.id;
            loan.startTime = new Date();
            daoFactory.getLoanDao().insertLoan(loan);
        }

        private Book createBook(BindAppDaoFactory daoFactory) {
            Book book = new Book();
            book.id = UUID.randomUUID().toString();
            book.title = "Never Ending Story #" + (counter++);
            daoFactory.getBookDao().insertBook(book);
            return book;
        }

        private User createUser(BindAppDaoFactory daoFactory) {
            User user = new User();
            user.id = UUID.randomUUID().toString();
            user.age = 24;
            user.name = "Fox";
            user.lastName = "Mulder";
            daoFactory.getUserDao().insertUser(user);
            return user;
        }
    });
    dataSource.getLoanDao().findAllWithUserAndBook().observeForever(new Observer<List<LoanWithUserAndBook>>() {

        @Override
        public void onChanged(List<LoanWithUserAndBook> t) {
            assertTrue(t.size() == 1);
            LoanWithUserAndBook bean = t.get(0);
            log("Found %s elements", t.size());
            assertTrue(bean.bookTitle != null);
            assertTrue(bean.userName != null);
            assertTrue(bean.startTime != null);
            assertTrue(bean.id != null);
        }
    });
    KriptonLibrary.getExecutorService().awaitTermination(4, TimeUnit.SECONDS);
}
Also used : TransactionResult(com.abubusoft.kripton.android.sqlite.TransactionResult) User(sqlite.feature.custombean.case1.User) Date(java.util.Date) LoanWithUserAndBook(sqlite.feature.custombean.case1.LoanWithUserAndBook) Transaction(sqlite.feature.custombean.case1.BindAppDataSource.Transaction) Loan(sqlite.feature.custombean.case1.Loan) BindAppDataSource(sqlite.feature.custombean.case1.BindAppDataSource) Book(sqlite.feature.custombean.case1.Book) LoanWithUserAndBook(sqlite.feature.custombean.case1.LoanWithUserAndBook) BindAppDaoFactory(sqlite.feature.custombean.case1.BindAppDaoFactory) List(java.util.List) Test(org.junit.Test) BaseAndroidTest(base.BaseAndroidTest)

Example 2 with Loan

use of sqlite.feature.custombean.case1.Loan in project kripton by xcesco.

the class TestCustomBeanRuntime2 method testCompile.

@Test
public void testCompile() throws InterruptedException {
    BindAppDataSource dataSource = BindAppDataSource.build(DataSourceOptions.builder().inMemory(true).populator(new DataSourcePopulator()).build());
    dataSource.execute(new Transaction() {

        @Override
        public TransactionResult onExecute(BindAppDaoFactory daoFactory) {
            User user = createUser(daoFactory);
            Book book = createBook(daoFactory);
            insertLoan(daoFactory, user, book);
            // insertLoan(daoFactory, user, book);
            return TransactionResult.COMMIT;
        }

        private void insertLoan(BindAppDaoFactory daoFactory, User user, Book book) {
            Loan loan = new Loan();
            loan.id = UUID.randomUUID().toString();
            loan.bookId = book.id;
            loan.userId = user.id;
            loan.startTime = new Date();
            daoFactory.getLoanDao().insertLoan(loan);
        }

        private Book createBook(BindAppDaoFactory daoFactory) {
            Book book = new Book();
            book.id = UUID.randomUUID().toString();
            book.title = "Never Ending Story #" + (counter++);
            daoFactory.getBookDao().insertBook(book);
            return book;
        }

        private User createUser(BindAppDaoFactory daoFactory) {
            User user = new User();
            user.id = UUID.randomUUID().toString();
            user.age = 24;
            user.name = "Fox";
            user.lastName = "Mulder";
            daoFactory.getUserDao().insertUser(user);
            return user;
        }
    });
    dataSource.getLoanDao().findAllWithUserAndBook().observeForever(new Observer<List<LoanWithUserAndBook>>() {

        @Override
        public void onChanged(List<LoanWithUserAndBook> t) {
            assertTrue(t.size() > 0);
            LoanWithUserAndBook bean = t.get(0);
            log("Found %s elements", t.size());
            assertTrue(bean.bookTitle != null);
            assertTrue(bean.userName != null);
            assertTrue(bean.startTime != null);
            assertTrue(bean.id != null);
        }
    });
    KriptonLibrary.getExecutorService().awaitTermination(4, TimeUnit.SECONDS);
}
Also used : TransactionResult(com.abubusoft.kripton.android.sqlite.TransactionResult) User(sqlite.feature.custombean.case2.User) Date(java.util.Date) LoanWithUserAndBook(sqlite.feature.custombean.case2.LoanWithUserAndBook) Transaction(sqlite.feature.custombean.case2.BindAppDataSource.Transaction) Loan(sqlite.feature.custombean.case2.Loan) BindAppDataSource(sqlite.feature.custombean.case2.BindAppDataSource) LoanWithUserAndBook(sqlite.feature.custombean.case2.LoanWithUserAndBook) Book(sqlite.feature.custombean.case2.Book) BindAppDaoFactory(sqlite.feature.custombean.case2.BindAppDaoFactory) List(java.util.List) DataSourcePopulator(sqlite.feature.custombean.case2.DataSourcePopulator) BaseAndroidTest(base.BaseAndroidTest) Test(org.junit.Test)

Example 3 with Loan

use of sqlite.feature.custombean.case1.Loan in project kripton by xcesco.

the class TestCustomBeanRuntimeErr1 method testContraintViolation.

@Test
public void testContraintViolation() throws InterruptedException, InstantiationException, IllegalAccessException {
    this.expectedException(KriptonRuntimeException.class);
    BindAppDataSource dataSource = BindAppDataSource.build(DataSourceOptions.builder().inMemory(true).build());
    dataSource.getLoanDao().findAllWithUserAndBook().observeForever(new Observer<List<LoanWithUserAndBook>>() {

        @Override
        public void onChanged(List<LoanWithUserAndBook> t) {
            if (t.size() > 0) {
                LoanWithUserAndBook bean = t.get(0);
                log("Found %s elements", t.size());
                assertTrue(bean.bookTitle != null);
                assertTrue(bean.userName != null);
                assertTrue(bean.startTime != null);
                assertTrue(bean.id != null);
            }
        }
    });
    dataSource.execute(new Transaction() {

        @Override
        public TransactionResult onExecute(BindAppDaoFactory daoFactory) {
            User user = createUser(daoFactory);
            Book book = createBook(daoFactory);
            insertLoan(daoFactory, user, book);
            insertLoan(daoFactory, user, book);
            return TransactionResult.COMMIT;
        }

        private void insertLoan(BindAppDaoFactory daoFactory, User user, Book book) {
            Loan loan = new Loan();
            loan.id = UUID.randomUUID().toString();
            loan.bookId = book.id;
            loan.userId = user.id;
            loan.startTime = new Date();
            daoFactory.getLoanDao().insertLoan(loan);
        }

        private Book createBook(BindAppDaoFactory daoFactory) {
            Book book = new Book();
            book.id = UUID.randomUUID().toString();
            book.title = "Never Ending Story #" + (counter++);
            daoFactory.getBookDao().insertBook(book);
            return book;
        }

        private User createUser(BindAppDaoFactory daoFactory) {
            User user = new User();
            user.id = UUID.randomUUID().toString();
            user.age = 24;
            user.name = "Fox";
            user.lastName = "Mulder";
            daoFactory.getUserDao().insertUser(user);
            return user;
        }
    });
    KriptonLibrary.getExecutorService().awaitTermination(4, TimeUnit.SECONDS);
}
Also used : TransactionResult(com.abubusoft.kripton.android.sqlite.TransactionResult) User(sqlite.feature.custombean.case1.User) LoanWithUserAndBook(sqlite.feature.custombean.case1.LoanWithUserAndBook) Date(java.util.Date) Transaction(sqlite.feature.custombean.case1.BindAppDataSource.Transaction) Loan(sqlite.feature.custombean.case1.Loan) BindAppDataSource(sqlite.feature.custombean.case1.BindAppDataSource) Book(sqlite.feature.custombean.case1.Book) LoanWithUserAndBook(sqlite.feature.custombean.case1.LoanWithUserAndBook) BindAppDaoFactory(sqlite.feature.custombean.case1.BindAppDaoFactory) List(java.util.List) BaseAndroidTest(base.BaseAndroidTest) Test(org.junit.Test)

Aggregations

BaseAndroidTest (base.BaseAndroidTest)3 TransactionResult (com.abubusoft.kripton.android.sqlite.TransactionResult)3 Date (java.util.Date)3 List (java.util.List)3 Test (org.junit.Test)3 BindAppDaoFactory (sqlite.feature.custombean.case1.BindAppDaoFactory)2 BindAppDataSource (sqlite.feature.custombean.case1.BindAppDataSource)2 Transaction (sqlite.feature.custombean.case1.BindAppDataSource.Transaction)2 Book (sqlite.feature.custombean.case1.Book)2 Loan (sqlite.feature.custombean.case1.Loan)2 LoanWithUserAndBook (sqlite.feature.custombean.case1.LoanWithUserAndBook)2 User (sqlite.feature.custombean.case1.User)2 BindAppDaoFactory (sqlite.feature.custombean.case2.BindAppDaoFactory)1 BindAppDataSource (sqlite.feature.custombean.case2.BindAppDataSource)1 Transaction (sqlite.feature.custombean.case2.BindAppDataSource.Transaction)1 Book (sqlite.feature.custombean.case2.Book)1 DataSourcePopulator (sqlite.feature.custombean.case2.DataSourcePopulator)1 Loan (sqlite.feature.custombean.case2.Loan)1 LoanWithUserAndBook (sqlite.feature.custombean.case2.LoanWithUserAndBook)1 User (sqlite.feature.custombean.case2.User)1