/*
* 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.jdo.serialization;
import static com.querydsl.jdo.JDOExpressions.selectFrom;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import com.querydsl.jdo.models.fitness.QGym;
import com.querydsl.jdo.models.fitness.Wardrobe;
public class ContainerTest extends AbstractTest {
private QGym gym = QGym.gym1;
private Wardrobe wrd = new Wardrobe(), wrd1 = new Wardrobe(), wrd2 = new Wardrobe();
@Before
public void setUp() {
wrd.setModel("model");
}
@Test
public void notContainsValuesInMapFields() {
// "SELECT FROM org.jpox.samples.models.fitness.Gym "
// + "WHERE !this.wardrobes.containsValue(wrd) "
// + "PARAMETERS org.jpox.samples.models.fitness.Wardrobe wrd");
assertEquals(
"SELECT FROM com.querydsl.jdo.models.fitness.Gym " +
"WHERE !this.wardrobes.containsValue(a1) " +
"PARAMETERS com.querydsl.jdo.models.fitness.Wardrobe a1",
serialize(selectFrom(gym)
.where(gym.wardrobes.containsValue(wrd).not())));
// "SELECT FROM org.jpox.samples.models.fitness.Gym "
// + "WHERE !this.wardrobes.containsValue(wrd) && !this.wardrobes.containsValue(wrd2) "
// + "PARAMETERS org.jpox.samples.models.fitness.Wardrobe wrd,org.jpox.samples.models.fitness.Wardrobe wrd2");
assertEquals(
"SELECT FROM com.querydsl.jdo.models.fitness.Gym " +
"WHERE !this.wardrobes.containsValue(a1) && !this.wardrobes.containsValue(a2) " +
"PARAMETERS com.querydsl.jdo.models.fitness.Wardrobe a1, com.querydsl.jdo.models.fitness.Wardrobe a2",
serialize(selectFrom(gym)
.where(gym.wardrobes.containsValue(wrd).not(), gym.wardrobes.containsValue(wrd2).not())));
//
// "SELECT FROM org.jpox.samples.models.fitness.Gym "
// + "WHERE !this.wardrobes.containsValue(wrd) && !this.wardrobes.containsValue(wrd2) && this.wardrobes.containsValue(wrd1) "
// + "PARAMETERS org.jpox.samples.models.fitness.Wardrobe wrd,org.jpox.samples.models.fitness.Wardrobe wrd2,org.jpox.samples.models.fitness.Wardrobe wrd1");
assertEquals(
"SELECT FROM com.querydsl.jdo.models.fitness.Gym " +
"WHERE !this.wardrobes.containsValue(a1) && !this.wardrobes.containsValue(a2) && this.wardrobes.containsValue(a3) " +
"PARAMETERS com.querydsl.jdo.models.fitness.Wardrobe a1, com.querydsl.jdo.models.fitness.Wardrobe a2, com.querydsl.jdo.models.fitness.Wardrobe a3",
serialize(selectFrom(gym)
.where(
gym.wardrobes.containsValue(wrd).not(),
gym.wardrobes.containsValue(wrd1).not(),
gym.wardrobes.containsValue(wrd2))));
}
@Test
public void notContainsKeysInMapFields() {
// "SELECT FROM org.jpox.samples.models.fitness.Gym "
// + "WHERE !this.wardrobes2.containsKey(wrd) "
// + "PARAMETERS org.jpox.samples.models.fitness.Wardrobe wrd");
assertEquals(
"SELECT FROM com.querydsl.jdo.models.fitness.Gym " +
"WHERE !this.wardrobes2.containsKey(a1) " +
"PARAMETERS com.querydsl.jdo.models.fitness.Wardrobe a1",
serialize(selectFrom(gym)
.where(gym.wardrobes2.containsKey(wrd).not())));
//
// "SELECT FROM org.jpox.samples.models.fitness.Gym "
// + "WHERE !this.wardrobes2.containsKey(wrd) && !this.wardrobes2.containsKey(wrd2) "
// + "PARAMETERS org.jpox.samples.models.fitness.Wardrobe wrd,org.jpox.samples.models.fitness.Wardrobe wrd2");
assertEquals(
"SELECT FROM com.querydsl.jdo.models.fitness.Gym " +
"WHERE !this.wardrobes2.containsKey(a1) && !this.wardrobes2.containsKey(a2) " +
"PARAMETERS com.querydsl.jdo.models.fitness.Wardrobe a1, com.querydsl.jdo.models.fitness.Wardrobe a2",
serialize(selectFrom(gym)
.where(
gym.wardrobes2.containsKey(wrd).not(),
gym.wardrobes2.containsKey(wrd2).not())));
//
// "SELECT FROM org.jpox.samples.models.fitness.Gym "
// + "WHERE !this.wardrobes2.containsKey(wrd) && !this.wardrobes2.containsKey(wrd2) && this.wardrobes2.containsKey(wrd1) "
// + "PARAMETERS org.jpox.samples.models.fitness.Wardrobe wrd,org.jpox.samples.models.fitness.Wardrobe wrd2,org.jpox.samples.models.fitness.Wardrobe wrd1");
assertEquals(
"SELECT FROM com.querydsl.jdo.models.fitness.Gym " +
"WHERE !this.wardrobes2.containsKey(a1) && !this.wardrobes2.containsKey(a2) && this.wardrobes2.containsKey(a3) " +
"PARAMETERS com.querydsl.jdo.models.fitness.Wardrobe a1, com.querydsl.jdo.models.fitness.Wardrobe a2, com.querydsl.jdo.models.fitness.Wardrobe a3",
serialize(selectFrom(gym)
.where(
gym.wardrobes2.containsKey(wrd).not(),
gym.wardrobes2.containsKey(wrd2).not(),
gym.wardrobes2.containsKey(wrd1))));
}
@Test
public void notContainsEntryInMapFields() {
// NOTE : containsEntry is not supported in Querydsl
// "SELECT FROM org.jpox.samples.models.fitness.Gym "
// + "WHERE !this.wardrobes.containsEntry(wrd.model,wrd) "
// + "PARAMETERS org.jpox.samples.models.fitness.Wardrobe wrd");
//
// "SELECT FROM org.jpox.samples.models.fitness.Gym "
// + "WHERE !this.wardrobes.containsEntry(wrd.model,wrd) && !this.wardrobes.containsEntry(wrd2.model,wrd2) "
// + "PARAMETERS org.jpox.samples.models.fitness.Wardrobe wrd,org.jpox.samples.models.fitness.Wardrobe wrd2");
//
// "SELECT FROM org.jpox.samples.models.fitness.Gym "
// + "WHERE !this.wardrobes.containsEntry(wrd.model,wrd) && !this.wardrobes.containsEntry(wrd2.model,wrd2) && this.wardrobes.containsEntry(wrd1.model,wrd1) "
// + "PARAMETERS org.jpox.samples.models.fitness.Wardrobe wrd,org.jpox.samples.models.fitness.Wardrobe wrd2,org.jpox.samples.models.fitness.Wardrobe wrd1");
}
@Test
public void getInMapFields() {
// "SELECT FROM org.jpox.samples.models.fitness.Gym "
// + "WHERE this.wardrobes.get(wrd.model) == wrd "
// + "PARAMETERS org.jpox.samples.models.fitness.Wardrobe wrd");
assertEquals(
"SELECT FROM com.querydsl.jdo.models.fitness.Gym " +
"WHERE this.wardrobes.get(a1) == a2 " +
"PARAMETERS java.lang.String a1, com.querydsl.jdo.models.fitness.Wardrobe a2",
serialize(selectFrom(gym)
.where(gym.wardrobes.get(wrd.getModel()).eq(wrd))));
}
@Test
public void getInOrderingInMapFields() {
// "SELECT FROM org.jpox.samples.models.fitness.Gym "
// + "PARAMETERS org.jpox.samples.models.fitness.Wardrobe wrd");
// .setOrdering("this.wardrobes.get(wrd.model).model ascending");
assertEquals(
"SELECT FROM com.querydsl.jdo.models.fitness.Gym " +
"PARAMETERS java.lang.String a1 " +
"ORDER BY this.wardrobes.get(a1).model ASC",
serialize(selectFrom(gym)
.orderBy(gym.wardrobes.get(wrd.getModel()).model.asc())));
}
}