/* * 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.sql.mysql; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.sql.Connection; import javax.inject.Provider; import org.easymock.EasyMock; import org.junit.Before; import org.junit.Test; import com.querydsl.sql.SQLExpressions; import com.querydsl.sql.SQLTemplates; import com.querydsl.sql.dml.SQLInsertClause; import com.querydsl.sql.domain.QSurvey; public class MySQLQueryFactoryTest { private MySQLQueryFactory queryFactory; @Before public void setUp() { Provider<Connection> provider = new Provider<Connection>() { @Override public Connection get() { return EasyMock.createNiceMock(Connection.class); } }; queryFactory = new MySQLQueryFactory(SQLTemplates.DEFAULT, provider); } @Test public void query() { assertNotNull(queryFactory.query()); } @Test public void from() { assertNotNull(queryFactory.from(QSurvey.survey)); } @Test public void delete() { assertNotNull(queryFactory.delete(QSurvey.survey)); } @Test public void insert() { assertNotNull(queryFactory.insert(QSurvey.survey)); } @Test public void insertIgnore() { SQLInsertClause clause = queryFactory.insertIgnore(QSurvey.survey); assertEquals("insert ignore into SURVEY\nvalues ()", clause.toString()); } @Test public void insertOnDuplicateKeyUpdate() { SQLInsertClause clause = queryFactory.insertOnDuplicateKeyUpdate(QSurvey.survey, "c = c+1"); assertEquals("insert into SURVEY\nvalues () on duplicate key update c = c+1", clause.toString()); } @Test public void insertOnDuplicateKeyUpdate2() { SQLInsertClause clause = queryFactory.insertOnDuplicateKeyUpdate(QSurvey.survey, QSurvey.survey.id.eq(2)); assertEquals("insert into SURVEY\nvalues () on duplicate key update SURVEY.ID = ?", clause.toString()); } @Test public void insertOnDuplicateKeyUpdate_multiple() { SQLInsertClause clause = queryFactory.insertOnDuplicateKeyUpdate(QSurvey.survey, SQLExpressions.set(QSurvey.survey.id, 2), SQLExpressions.set(QSurvey.survey.name, "B")); assertEquals("insert into SURVEY\n" + "values () on duplicate key update SURVEY.ID = ?, SURVEY.NAME = ?", clause.toString()); } @Test public void insertOnDuplicateKeyUpdate_values() { SQLInsertClause clause = queryFactory.insertOnDuplicateKeyUpdate(QSurvey.survey, SQLExpressions.set(QSurvey.survey.name, QSurvey.survey.name)); assertEquals("insert into SURVEY\n" + "values () on duplicate key update SURVEY.NAME = values(SURVEY.NAME)", clause.toString()); } @Test public void insertOnDuplicateKeyUpdate_null() { SQLInsertClause clause = queryFactory.insertOnDuplicateKeyUpdate(QSurvey.survey, SQLExpressions.set(QSurvey.survey.name, (String) null)); assertEquals("insert into SURVEY\n" + "values () on duplicate key update SURVEY.NAME = null", clause.toString()); } @Test public void replace() { assertNotNull(queryFactory.replace(QSurvey.survey)); } @Test public void update() { assertNotNull(queryFactory.update(QSurvey.survey)); } @Test public void merge() { assertNotNull(queryFactory.merge(QSurvey.survey)); } }