/*
* Copyright 2015, The Querydsl Team (http://www.querydsl.com/team)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.querydsl.core.alias;
import static org.junit.Assert.assertEquals;
import static com.querydsl.core.alias.Alias.$;
import org.junit.Test;
import com.querydsl.core.types.Path;
public class AliasTest {
@Test
public void alias() {
DomainType domainType = Alias.alias(DomainType.class);
Alias.alias(DomainType.class, $(domainType.getCollection()).any());
}
@Test
public void comparableEntity() {
ComparableEntity entity = Alias.alias(ComparableEntity.class);
Path<ComparableEntity> path = $(entity);
assertEquals(ComparableEntity.class, path.getType());
}
@Test
public void comparableEntity_property() {
ComparableEntity entity = Alias.alias(ComparableEntity.class);
Path<String> propertyPath = $(entity.getProperty());
assertEquals(String.class, propertyPath.getType());
assertEquals("property", propertyPath.getMetadata().getName());
}
@Test
public void basicUsage() {
DomainType domainType = Alias.alias(DomainType.class);
assertEquals("lower(domainType.firstName)", $(domainType.getFirstName()).lower().toString());
assertEquals("domainType.age", $(domainType.getAge()).toString());
assertEquals("domainType.map.get(a)", $(domainType.getMap().get("a")).toString());
assertEquals("domainType.list.get(0)", $(domainType.getList().get(0)).toString());
assertEquals("domainType.bigDecimal", $(domainType.getBigDecimal()).toString());
assertEquals("domainType.bigInteger", $(domainType.getBigInteger()).toString());
assertEquals("domainType.byte", $(domainType.getByte()).toString());
assertEquals("domainType.collection", $(domainType.getCollection()).toString());
assertEquals("domainType.double", $(domainType.getDouble()).toString());
assertEquals("domainType.float", $(domainType.getFloat()).toString());
assertEquals("domainType.date", $(domainType.getDate()).toString());
assertEquals("domainType.date2", $(domainType.getDate2()).toString());
assertEquals("domainType.set", $(domainType.getSet()).toString());
assertEquals("domainType.short", $(domainType.getShort()).toString());
assertEquals("domainType.time", $(domainType.getTime()).toString());
assertEquals("domainType.timestamp", $(domainType.getTimestamp()).toString());
assertEquals("domainType.gender", $(domainType.getGender()).toString());
}
@Test
public void getAny() {
DomainType domainType = Alias.alias(DomainType.class);
assertEquals(DomainType.class, Alias.getAny(domainType).getType());
assertEquals(String.class, Alias.getAny(domainType.getFirstName()).getType());
}
@Test
public void otherMethods() {
DomainType domainType = Alias.alias(DomainType.class);
assertEquals("domainType", domainType.toString());
}
@Test
public void var() {
assertEquals("it", Alias.var().toString());
assertEquals("varInteger1", Alias.var(1).toString());
assertEquals("X", Alias.var("X").toString());
assertEquals("varMALE", Alias.var(Gender.MALE).toString());
assertEquals("varAliasTest_XXX", Alias.var(new AliasTest()).toString());
}
@Override
public String toString() {
return "XXX";
}
}