/* * Copyright (c) 2010 Mysema Ltd. * All rights reserved. * */ package com.mysema.rdfbean.sesame.query; import java.util.Collections; import java.util.Date; import java.util.Locale; import org.junit.Test; import com.mysema.commons.lang.Pair; import com.mysema.query.Module; import com.mysema.query.Projectable; import com.mysema.query.QueryExecution; import com.mysema.query.Target; import com.mysema.query.types.Expression; import com.mysema.query.types.Predicate; import com.mysema.rdfbean.domains.SimpleDomain.SimpleType; import com.mysema.rdfbean.domains.SimpleDomain.SimpleType2; import com.mysema.rdfbean.sesame.SessionTestBase; import com.mysema.rdfbean.testutil.SessionConfig; @SessionConfig({ SimpleType.class, SimpleType2.class }) public class BeanQueryStandardTest extends SessionTestBase { private final String knownStringValue = "propertymap"; protected QSimpleType v1 = new QSimpleType("v1"); protected QSimpleType v2 = new QSimpleType("v2"); private SimpleType2 other; private final QueryExecution standardTest = new QueryExecution(Module.RDFBEAN, Target.MEM) { @Override protected Pair<Projectable, Expression<?>[]> createQuery() { return Pair.of((Projectable) session.from(v1, v2), new Expression<?>[0]); } @Override protected Pair<Projectable, Expression<?>[]> createQuery(Predicate filter) { return Pair.of((Projectable) session.from(v1, v2).where(filter), new Expression<?>[] { v1, v2 }); } }; @Test public void test() throws InterruptedException { SimpleType2 st2 = new SimpleType2(); st2.directProperty = "target_idspace"; session.save(st2); SimpleType st = new SimpleType(); st.dateProperty = new Date(); st.directProperty = "XXX"; st.numericProperty = 2; st.localizedProperty = "YYY"; st.localizedAsMap = Collections.singletonMap(Locale.ENGLISH, "X"); st.listProperty = Collections.singletonList(st2); st.setProperty = Collections.singleton(st2); session.save(st); session.clear(); st = session.getById(st.id, SimpleType.class); // SimpleType st = session.from(v1).limit(1).uniqueResult(v1); SimpleType2 inMap = st.getMapProperty().values().iterator().next(); SimpleType2 inList = st.getListProperty().iterator().next(); SimpleType2 inSet = st.getSetProperty().iterator().next(); other = new SimpleType2(); session.save(other); standardTest.runBooleanTests(v1.directProperty.isNull(), v2.numericProperty.isNotNull()); standardTest.runCollectionTests(v1.setProperty, v2.setProperty, inSet, other); // standardTest.dateTests(v1.dateProperty, v2.dateProperty, // st.getDateProperty()); standardTest.runDateTimeTests(v1.dateProperty, v2.dateProperty, st.getDateProperty()); standardTest.runListTests(v1.listProperty, v2.listProperty, inList, other); standardTest.runMapTests(v1.mapProperty, v2.mapProperty, "target_idspace", inMap, "xxx", other); standardTest.runNumericCasts(v1.numericProperty, v2.numericProperty, 1); // standardTest.runNumericTests(v1.numericProperty, v2.numericProperty, // 10); standardTest.runStringTests(v1.directProperty, v2.directProperty, knownStringValue); // standardTest.timeTests(null, null, null); // delay the report slightly Thread.sleep(10); standardTest.report(); } }