API Overview API Index Package Overview Direct link to this page
JavaOnTracks 0.1.2
  net.jot.test.db. CRUDTest View Javadoc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91

/*
------------------------------------
JavaOnTracks          Thibaut Colar
tcolar-jot AT colar DOT net
Artistic Licence 2.0
http://www.javaontracks.net
------------------------------------
 */
package net.jot.test.db;

import java.util.Vector;

import net.jot.persistance.JOTSQLCondition;
import net.jot.persistance.builders.JOTQueryBuilder;
import net.jot.persistance.query.JOTQueryManager;
import net.jot.testing.JOTTestable;
import net.jot.testing.JOTTester;

/**
 * Test standard ORM / DB model crud operations
 * @author thibautc
 *
 */
public class CRUDTest implements JOTTestable
{
    /**
     * 
     * Testing JOTMOdel / CRUD
     */
    public void jotTest() throws Throwable
    {
        //new TestAuthor().books.find(null);
        
        DBTestData.populateUserTestData();
        //JOTQueryManager.dumpToCSV(System.out, TestUser.class);
        TestUser user=DBTestData._users[3];

        Vector users = JOTQueryBuilder.selectQuery(null, TestUser.class).find().getAllResults();
        //System.out.println("users: "+users);
        JOTTester.checkIf("Checking that 4 users where created (using find)", users != null && users.size() == 4);

        TestUser readUser = (TestUser) JOTQueryBuilder.findByID(null, TestUser.class, (int) user.getId());
        JOTTester.checkIf("Checking reading user 4 back (find by ID)", readUser != null);
        JOTTester.checkIf("Checking user firstname", readUser.firstName.equals(user.firstName));
        JOTTester.checkIf("Checking user lastname", readUser.lastName.equals(user.lastName));
        JOTTester.checkIf("Checking user age", readUser.age == user.age);

        // test update
        long id = user.getId();
        user.firstName = "superwayne";
        user.save();
        readUser = (TestUser) (TestUser) JOTQueryBuilder.findByID(null, TestUser.class, (int) user.getId());
        JOTTester.checkIf("Checking update worked and ID didn't change", readUser.firstName.equals(user.firstName) && id == readUser.getId());
        //revert
        user.firstName = "Wayne";
        user.save();

        // findOne
        JOTSQLCondition cond=new JOTSQLCondition("age", JOTSQLCondition.IS_GREATER, new Integer(40));
        readUser = (TestUser) JOTQueryBuilder.selectQuery(null, TestUser.class).where(cond).findOne();
        JOTTester.checkIf("Checking findOne", readUser != null && readUser.age > 40, "" + readUser);

        // find with multiple conditions and descending, order by
        cond=new JOTSQLCondition("age", JOTSQLCondition.IS_GREATER, new Integer(28));
        JOTSQLCondition cond2=new JOTSQLCondition("age", JOTSQLCondition.IS_LOWER_OR_EQUAL, new Integer(48));
        users = JOTQueryBuilder.selectQuery(null, TestUser.class).where(cond).where(cond2).orderBy("age").find().getAllResults();
        JOTTester.checkIf("Checking find() with mutliple conds, orderBy", users.size() == 2 && ((TestUser) users.get(0)).age == 33, "" + users);

        // find with conditions and limits
        cond=new JOTSQLCondition("age", JOTSQLCondition.IS_GREATER, new Integer(28));
        cond2=new JOTSQLCondition("age", JOTSQLCondition.IS_LOWER_OR_EQUAL, new Integer(48));
        users = JOTQueryBuilder.selectQuery(null, TestUser.class).where(cond).where(cond2).orderBy("age",false).limit(1).find().getAllResults();
        JOTTester.checkIf("Checking find() with mutliple conds, orderBy, [limit]", users.size() == 1, "" + users);
        JOTTester.checkIf("Checking find() with mutliple conds, [orderBy], limit", ((TestUser) users.get(0)).age == 48, ((TestUser) users.get(0)).toString());

        // find with 'like' conditions
        cond=new JOTSQLCondition("FIRST_NAME", JOTSQLCondition.IS_LIKE, "%J%");
        users = JOTQueryBuilder.selectQuery(null, TestUser.class).where(cond).find().getAllResults();
        JOTTester.checkIf("Checking find() with 'like' condition", users.size() == 2);

        user.delete();
        users = JOTQueryBuilder.selectQuery(null, TestUser.class).find().getAllResults();
        JOTTester.checkIf("checking delete worked",users.size()==3,""+users.size());
        cond=new JOTSQLCondition("FIRST_NAME", JOTSQLCondition.IS_EQUAL, "Wayne");
        users = JOTQueryBuilder.selectQuery(null, TestUser.class).where(cond).find().getAllResults();
        JOTTester.checkIf("checking delete worked 2",users.size()==0);
        
        //TODO: check custom field names(mapping), constraints etc....
    }

}

Generated By: JavaOnTracks Doclet 0.1.5     ©Thibaut Colar