Package com.mysema.query.sql

Source Code of com.mysema.query.sql.RelationalPathExtractorTest

package com.mysema.query.sql;

import static com.mysema.query.Constants.employee;
import static com.mysema.query.sql.RelationalPathExtractor.extract;
import static org.junit.Assert.assertEquals;

import org.junit.Test;

import com.google.common.collect.ImmutableSet;
import com.mysema.query.sql.domain.QEmployee;
import com.mysema.query.support.Expressions;

public class RelationalPathExtractorTest {

    private SQLQuery query() {
        return new SQLQuery(SQLTemplates.DEFAULT);
    }

    private SQLSubQuery sq() {
        return new SQLSubQuery();
    }

    @Test
    public void SimpleQuery() {
        QEmployee employee2 = new QEmployee("employee2");
        SQLQuery query = query().from(employee, employee2);

        assertEquals(ImmutableSet.of(employee, employee2), extract(query.getMetadata()));
    }

    @Test
    public void Joins() {
        QEmployee employee2 = new QEmployee("employee2");
        SQLQuery query = query().from(employee)
                .innerJoin(employee2).on(employee.superiorId.eq(employee2.id));

        assertEquals(ImmutableSet.of(employee, employee2), extract(query.getMetadata()));
    }

    @Test
    public void SubQuery() {
        SQLQuery query = query().from(employee)
                .where(employee.id.eq(sq().from(employee).unique(employee.id.max())));
        assertEquals(ImmutableSet.of(employee), extract(query.getMetadata()));
    }

    @Test
    public void SubQuery2() {
        QEmployee employee2 = new QEmployee("employee2");
        SQLQuery query = query().from(employee)
            .where(Expressions.list(employee.id, employee.lastname)
                .in(sq().from(employee2).list(employee2.id, employee2.lastname)));

        assertEquals(ImmutableSet.of(employee, employee2), extract(query.getMetadata()));
    }

}
TOP

Related Classes of com.mysema.query.sql.RelationalPathExtractorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.