diff --git a/querydsl-core/src/main/java/com/mysema/query/types/path/BeanPath.java b/querydsl-core/src/main/java/com/mysema/query/types/path/BeanPath.java index 3a2503923..1d580f18e 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/path/BeanPath.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/path/BeanPath.java @@ -75,11 +75,9 @@ public class BeanPath extends SimpleExpression implements Path { if (!casts.containsKey(clazz)) { T rv; if (inits != null) { - rv = clazz.getConstructor(PathMetadata.class, - PathInits.class).newInstance(this.getMetadata(), inits); + rv = clazz.getConstructor(PathMetadata.class, PathInits.class).newInstance(this.getMetadata(), inits); } else { - rv = (T) clazz.getConstructor(PathMetadata.class) - .newInstance(this.getMetadata()); + rv = (T) clazz.getConstructor(PathMetadata.class).newInstance(this.getMetadata()); } casts.put(clazz, rv); return rv; diff --git a/querydsl-core/src/main/java/com/mysema/query/types/path/MapPath.java b/querydsl-core/src/main/java/com/mysema/query/types/path/MapPath.java index 40994644e..58c208b50 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/path/MapPath.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/path/MapPath.java @@ -45,6 +45,10 @@ public class MapPath> extends MapExpressionB private final Class valueType; + public MapPath(Class keyType, Class valueType, Class queryType, String variable) { + this(keyType, valueType, queryType, PathMetadataFactory.forVariable(variable)); + } + @SuppressWarnings("unchecked") public MapPath(Class keyType, Class valueType, Class queryType, PathMetadata metadata) { super((Class)Map.class); diff --git a/querydsl-core/src/test/java/com/mysema/query/types/path/ArrayPathTest.java b/querydsl-core/src/test/java/com/mysema/query/types/path/ArrayPathTest.java new file mode 100644 index 000000000..5db98c754 --- /dev/null +++ b/querydsl-core/src/test/java/com/mysema/query/types/path/ArrayPathTest.java @@ -0,0 +1,19 @@ +package com.mysema.query.types.path; + +import static org.junit.Assert.*; + +import org.junit.Test; + +import com.mysema.query.types.ConstantImpl; + + +public class ArrayPathTest { + + @Test + public void Get(){ + ArrayPath arrayPath = new ArrayPath(String[].class, "p"); + assertNotNull(arrayPath.get(ConstantImpl.create(0))); + + } + +} diff --git a/querydsl-core/src/test/java/com/mysema/query/types/path/BeanPathTest.java b/querydsl-core/src/test/java/com/mysema/query/types/path/BeanPathTest.java new file mode 100644 index 000000000..ccb99ec73 --- /dev/null +++ b/querydsl-core/src/test/java/com/mysema/query/types/path/BeanPathTest.java @@ -0,0 +1,24 @@ +package com.mysema.query.types.path; + +import static org.junit.Assert.assertNotNull; + +import org.junit.Test; + +import com.mysema.query.annotations.PropertyType; + +public class BeanPathTest { + + @Test + public void CreateEnum(){ + BeanPath beanPath = new BeanPath(BeanPathTest.class, "p"); + assertNotNull(beanPath.createEnum("property", PropertyType.class)); + } + + @Test + public void As(){ + BeanPath beanPath = new BeanPath(BeanPathTest.class, "p"); + SimplePath simplePath = new SimplePath(BeanPathTest.class, "p"); + assertNotNull(beanPath.as(simplePath)); + } + +} diff --git a/querydsl-core/src/test/java/com/mysema/query/types/path/MapPathTest.java b/querydsl-core/src/test/java/com/mysema/query/types/path/MapPathTest.java new file mode 100644 index 000000000..d33115d16 --- /dev/null +++ b/querydsl-core/src/test/java/com/mysema/query/types/path/MapPathTest.java @@ -0,0 +1,18 @@ +package com.mysema.query.types.path; + +import static org.junit.Assert.*; + +import org.junit.Test; + +import com.mysema.query.types.ConstantImpl; + +public class MapPathTest { + + @Test + public void Get() { + MapPath mapPath = new MapPath(String.class, String.class, StringPath.class, "p"); + assertNotNull(mapPath.get("X")); + assertNotNull(mapPath.get(ConstantImpl.create("X"))); + } + +} diff --git a/querydsl-core/src/test/java/com/mysema/query/types/path/PathTest.java b/querydsl-core/src/test/java/com/mysema/query/types/path/PathTest.java index 815ec5380..88a7b526a 100644 --- a/querydsl-core/src/test/java/com/mysema/query/types/path/PathTest.java +++ b/querydsl-core/src/test/java/com/mysema/query/types/path/PathTest.java @@ -30,6 +30,7 @@ import com.mysema.query.annotations.QueryEntity; import com.mysema.query.annotations.QueryTransient; import com.mysema.query.types.Path; import com.mysema.query.types.PathImpl; +import com.mysema.query.types.ToStringVisitor; import com.mysema.util.AnnotatedElementAdapter; public class PathTest { @@ -141,16 +142,22 @@ public class PathTest { public void Various(){ List> paths = new ArrayList>(); paths.add(new ArrayPath(String[].class, "p")); + paths.add(new BeanPath(Object.class, "p")); paths.add(new BooleanPath("p")); paths.add(new ComparablePath(String.class,"p")); paths.add(new DatePath(Date.class,"p")); paths.add(new DateTimePath(Date.class,"p")); paths.add(new EnumPath(ExampleEnum.class,"p")); paths.add(new NumberPath(Integer.class,"p")); + paths.add(new SimplePath(String.class,"p")); paths.add(new StringPath("p")); paths.add(new TimePath(Time.class,"p")); for (Path path : paths){ + Path other = new PathImpl(path.getType(), "p"); + assertEquals(path.toString(), path.accept(ToStringVisitor.DEFAULT, null)); + assertEquals(path.hashCode(), other.hashCode()); + assertEquals(path, other); assertNotNull(path.getMetadata()); assertNotNull(path.getType()); assertEquals(path, path.getRoot());