package org.castor.jdo.jpa.info;
import org.castor.jdo.jpa.processors.classprocessors.JPANamedNativeQueriesProcessor;
import org.castor.jdo.jpa.processors.classprocessors.JPANamedNativeQueryProcessor;
import java.util.Set;
import org.castor.core.annotationprocessing.AnnotationProcessor;
import org.castor.jdo.jpa.processors.classprocessors.JPACacheProcessor;
import org.castor.jdo.jpa.processors.classprocessors.JPAEntityProcessor;
import org.castor.jdo.jpa.processors.classprocessors.JPAInheritanceProcessor;
import org.castor.jdo.jpa.processors.classprocessors.JPANamedQueryProcessor;
import org.castor.jdo.jpa.processors.classprocessors.JPASequenceGeneratorClassProcessor;
import org.castor.jdo.jpa.processors.classprocessors.JPATableGeneratorClassProcessor;
import org.castor.jdo.jpa.processors.classprocessors.JPATableProcessor;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class JPAClassAnnotationProcessingServiceTest {
JPAClassAnnotationProcessingService processingService;
@Before
public void setUp() throws Exception {
processingService = new JPAClassAnnotationProcessingService();
}
@Test
public void entityProcessorIsRegistered() throws Exception {
assertThatProcessorTypeIsRegisteredWithService(JPAEntityProcessor.class);
}
@Test
public void tableProcessorIsRegistered() throws Exception {
assertThatProcessorTypeIsRegisteredWithService(JPATableProcessor.class);
}
@Test
public void namedQueryProcessorIsRegistered() throws Exception {
assertThatProcessorTypeIsRegisteredWithService(JPANamedQueryProcessor.class);
}
@Test
public void namedNativeQueryProcessorIsRegistered() throws Exception {
assertThatProcessorTypeIsRegisteredWithService(JPANamedNativeQueryProcessor.class);
}
@Test
public void namedNativeQueriesProcessorIsRegistered() throws Exception {
assertThatProcessorTypeIsRegisteredWithService(JPANamedNativeQueriesProcessor.class);
}
@Test
public void inheritanceProcessorIsRegistered() throws Exception {
assertThatProcessorTypeIsRegisteredWithService(JPAInheritanceProcessor.class);
}
@Test
public void cacheProcessorIsRegistered() throws Exception {
assertThatProcessorTypeIsRegisteredWithService(JPACacheProcessor.class);
}
@Test
public void sequenceGeneratorProcessorIsRegistered() throws Exception {
assertThatProcessorTypeIsRegisteredWithService(JPASequenceGeneratorClassProcessor.class);
}
@Test
public void tableGeneratorProcessorIsRegistered() throws Exception {
assertThatProcessorTypeIsRegisteredWithService(JPATableGeneratorClassProcessor.class);
}
public void assertThatProcessorTypeIsRegisteredWithService(
Class<? extends AnnotationProcessor> processorType)
throws Exception {
boolean containsProcessor = false;
Set<AnnotationProcessor> processorSet = processingService
.getAllAnnotationProcessors();
for (AnnotationProcessor processor : processorSet) {
if (processor.getClass() == processorType) {
containsProcessor = true;
}
}
assertTrue(containsProcessor);
}
}