package org.springframework.roo.addon.layers.repository.jpa.addon;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.roo.addon.layers.repository.jpa.addon.RepositoryJpaLayerMethod;
import org.springframework.roo.classpath.layers.MethodParameter;
import org.springframework.roo.model.JavaType;
/**
* Unit test of the {@link RepositoryLayerMethod} enum.
*
* @author Andrew Swan
* @since 1.2.0
*/
public class RepositoryLayerMethodTest {
@Mock
private JavaType mockIdType;
// Fixture
@Mock
private JavaType mockTargetEntity;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test
public void testCallFlushMethod() {
// Invoke
final String methodCall =
RepositoryJpaLayerMethod.FLUSH.getCall(Collections.<MethodParameter>emptyList());
// Check
assertEquals("flush()", methodCall);
}
@Test
public void testNamesAreUniqueAndNotBlank() {
final Set<String> names = new HashSet<String>();
for (final RepositoryJpaLayerMethod method : RepositoryJpaLayerMethod.values()) {
final String name = method.getName();
names.add(name);
assertTrue(StringUtils.isNotBlank(name));
}
assertEquals(RepositoryJpaLayerMethod.values().length, names.size());
}
@Test
public void testParameterTypesAreNotNull() {
for (final RepositoryJpaLayerMethod method : RepositoryJpaLayerMethod.values()) {
assertNotNull(method.getParameterTypes(mockTargetEntity, mockIdType));
}
}
}