package com.mysema.rdfbean.query;
import static com.mysema.query.alias.Alias.$;
import static org.junit.Assert.assertEquals;
import java.sql.Time;
import java.sql.Timestamp;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.joda.time.LocalTime;
import org.junit.Test;
import com.mysema.query.alias.Alias;
import com.mysema.rdfbean.domains.DateTimeDomain;
import com.mysema.rdfbean.domains.DateTimeDomain.Literals;
import com.mysema.rdfbean.testutil.SessionConfig;
@SessionConfig(Literals.class)
public class DateTimeTest extends SessionTestBase implements DateTimeDomain {
@Test
public void test() {
Literals literals = new Literals();
literals.date = new java.util.Date();
literals.date2 = new java.sql.Date(0);
literals.dateTime = new DateTime();
literals.localDate = new LocalDate();
literals.localTime = new LocalTime();
literals.time = new Time(0);
literals.timestamp = new Timestamp(0);
session.save(literals);
session.clear();
Literals other = session.get(Literals.class, literals.id);
assertEquals(literals.date, other.date);
assertEquals(literals.date2, other.date2);
assertEquals(literals.dateTime.getMillis(), other.dateTime.getMillis());
assertEquals(literals.localDate, other.localDate);
assertEquals(literals.localTime, other.localTime);
assertEquals(literals.time, other.time);
assertEquals(literals.timestamp, other.timestamp);
session.clear();
Literals l = Alias.alias(Literals.class);
assertEquals(literals.date, session.from($(l)).where($(l.getDate()).eq(literals.date)).uniqueResult($(l.getDate())));
assertEquals(literals.date2, session.from($(l)).where($(l.getDate2()).eq(literals.date2)).uniqueResult($(l.getDate2())));
assertEquals(literals.dateTime.getMillis(), session.from($(l)).where($(l.getDateTime()).eq(literals.dateTime)).uniqueResult($(l.getDateTime())).getMillis());
assertEquals(literals.localDate, session.from($(l)).where($(l.getLocalDate()).eq(literals.localDate)).uniqueResult($(l.getLocalDate())));
assertEquals(literals.localTime, session.from($(l)).where($(l.getLocalTime()).eq(literals.localTime)).uniqueResult($(l.getLocalTime())));
assertEquals(literals.time, session.from($(l)).where($(l.getTime()).eq(literals.time)).uniqueResult($(l.getTime())));
assertEquals(literals.timestamp, session.from($(l)).where($(l.getTimestamp()).eq(literals.timestamp)).uniqueResult($(l.getTimestamp())));
assertEquals(1, session.from($(l)).where($(l.getDate()).eq(literals.date)).count());
assertEquals(1, session.from($(l)).where($(l.getDate2()).eq(literals.date2)).count());
assertEquals(1, session.from($(l)).where($(l.getDateTime()).eq(literals.dateTime)).count());
assertEquals(1, session.from($(l)).where($(l.getLocalDate()).eq(literals.localDate)).count());
assertEquals(1, session.from($(l)).where($(l.getLocalTime()).eq(literals.localTime)).count());
assertEquals(1, session.from($(l)).where($(l.getTime()).eq(literals.time)).count());
assertEquals(1, session.from($(l)).where($(l.getTimestamp()).eq(literals.timestamp)).count());
}
}