Newer
Older
simple-database / test / nl / astraeus / database / TestCache.java
package nl.astraeus.database;

import java.util.List;
import java.util.Map;

import nl.astraeus.database.cache.ObjectCache;
import nl.astraeus.database.test.model.Person;

import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

/**
 * Date: 11/16/13
 * Time: 12:27 AM
 */
public class TestCache extends BaseTest {

    @BeforeClass
    public static void createDatabase() {
        BaseTest.createDatabase("jdbc:h2:mem:TestCache");
    }

    @Test
    public void testCache() {
        Map<Class<?>, ObjectCache<?>> cache = db.getCache().getCache();

        Assert.assertNotNull(cache);
        Assert.assertNotNull(db.getCache().getObjectCache(Person.class));

        db.getCache().getObjectCache(Person.class).setMaxSize(6);

        SimpleDao<Person> dao = new SimpleDao<>(Person.class);

        dao.execute(new SimpleDao.Executor<Person>() {
            @Override
            public void execute(SimpleDao<Person> dao) {
                dao.insert(new Person("Rien", 40, "Road"));
                dao.insert(new Person("Jan", 32, "Straat"));
                dao.insert(new Person("Piet", 26, "Weg"));
                dao.insert(new Person("Klaas", 10, "Pad"));
                dao.insert(new Person("Rien", 40, "Road"));
                dao.insert(new Person("Jan", 32, "Straat"));
                dao.insert(new Person("Piet", 26, "Weg"));
                dao.insert(new Person("Klaas", 10, "Pad"));
            }
        });


        dao.execute(new SimpleDao.Executor<Person>() {
            @Override
            public void execute(SimpleDao<Person> dao) {
                List<Person> persons = dao.all();

                Assert.assertEquals(db.getCache().getObjectCache(Person.class).getNumberCached() ,6);
            }
        });
    }

}