package race;

import java.util.Date;
import java.util.List;

import javax.jdo.PersistenceManager;

import org.junit.Test;

import common.LocalDatastoreTestCase;
import common.PMF;

public class TestRace extends LocalDatastoreTestCase {

    @Test
    public void test1()
    {
    	System.out.println("test1");
    	
        Race race = new Race("Blagnac", new Date(), 10);

        PersistenceManager pm = PMF.get().getPersistenceManager();
        try {
            race = pm.makePersistent(race);
        } finally {
            pm.close();
        }

        pm = PMF.get().getPersistenceManager();

        String racesQuery = "select from " + Race.class.getName();
        List<Result> races = (List<Result>) pm.newQuery(racesQuery).execute();
        System.out.println("races.size="+races.size());

        assertTrue(true);
    }

    @Test
    public void test2()
    {
    	System.out.println("test2");
    	
        Race race = new Race("Blagnac", new Date(), 10);

        Runner runner1 = new Runner("Smith");
        Runner runner2 = new Runner("John");

        Result result1 = new Result(race, runner1, 1);
        Result result2 = new Result(race, runner2, 2);

        PersistenceManager pm = PMF.get().getPersistenceManager();
        try {
            race = pm.makePersistent(race);

            runner1 = pm.makePersistent(runner1);
            runner2 = pm.makePersistent(runner2);

            pm.makePersistent(result1);
            pm.makePersistent(result2);
        } finally {
            pm.close();
        }

        pm = PMF.get().getPersistenceManager();

        String racesQuery = "select from " + Race.class.getName();
        List<Result> races = (List<Result>) pm.newQuery(racesQuery).execute();
        System.out.println("races.size="+races.size());

        String runnersQuery = "select from " + Result.class.getName();
        List<Result> runners = (List<Result>) pm.newQuery(runnersQuery).execute();
        System.out.println("runners.size="+runners.size());

        String resultQuery = "select from " + Result.class.getName();
        List<Result> results = (List<Result>) pm.newQuery(resultQuery).execute();
        System.out.println("results.size="+results.size());

        assertTrue(true);
    }

}