/*
* Copyright 2004-2015 the Seasar Foundation and the Others.
*
* 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 org.seasar.extension.jdbc.gen.internal.desc;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import org.junit.Before;
import org.junit.Test;
import org.seasar.extension.jdbc.gen.desc.ColumnDesc;
import org.seasar.extension.jdbc.gen.desc.UniqueKeyDesc;
import org.seasar.extension.jdbc.gen.internal.desc.UniqueKeyDescFactoryImpl;
import org.seasar.extension.jdbc.gen.internal.dialect.StandardGenDialect;
import static org.junit.Assert.*;
/**
* @author taedium
*
*/
public class UniqueKeyDescFactoryImplTest {
private UniqueKeyDescFactoryImpl factory;
/**
*
* @throws Exception
*/
@Before
public void setUp() throws Exception {
factory = new UniqueKeyDescFactoryImpl(new StandardGenDialect());
}
/**
*
* @throws Exception
*/
@Test
public void testGetCompositeUniqueKeyDesc() throws Exception {
UniqueConstraint[] uniqueConstraints = Aaa.class.getAnnotation(
Table.class).uniqueConstraints();
UniqueKeyDesc uniqueKeyDesc = factory
.getCompositeUniqueKeyDesc(uniqueConstraints[0]);
assertNotNull(uniqueKeyDesc);
assertEquals(2, uniqueKeyDesc.getColumnNameList().size());
assertEquals("aaa", uniqueKeyDesc.getColumnNameList().get(0));
assertEquals("bbb", uniqueKeyDesc.getColumnNameList().get(1));
uniqueKeyDesc = factory.getCompositeUniqueKeyDesc(uniqueConstraints[1]);
assertNull(uniqueKeyDesc);
}
/**
*
* @throws Exception
*/
@Test
public void testGetSingleUniqueKeyDesc() throws Exception {
ColumnDesc columnDesc = new ColumnDesc();
columnDesc.setName("aaa");
columnDesc.setUnique(true);
UniqueKeyDesc uniqueKeyDesc = factory
.getSingleUniqueKeyDesc(columnDesc);
assertNotNull(uniqueKeyDesc);
assertEquals(1, uniqueKeyDesc.getColumnNameList().size());
assertEquals("aaa", uniqueKeyDesc.getColumnNameList().get(0));
columnDesc.setUnique(false);
uniqueKeyDesc = factory.getSingleUniqueKeyDesc(columnDesc);
assertNull(uniqueKeyDesc);
}
/** */
@Table(uniqueConstraints = {
@UniqueConstraint(columnNames = { "aaa", "bbb" }),
@UniqueConstraint(columnNames = {}) })
public static class Aaa {
}
}