/* * Copyright 2012 C24 Technologies * * 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 biz.c24.io.spring.batch.config; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import biz.c24.io.api.transform.Transform; import biz.c24.io.spring.batch.processor.C24TransformItemProcessor; import biz.c24.io.spring.batch.processor.C24TransformItemProcessorTests.MyEmail; /** * Validate the C24TranformItemProcessor parser * * @author Andrew Elmore */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("transform-item-processor.xml") public class C24TransformItemProcessorParserTests { @Autowired @Qualifier("transformItemProcessor") C24TransformItemProcessor transformItemProcessor; @Autowired @Qualifier("spelTransformItemProcessor") C24TransformItemProcessor spelTransformItemProcessor; @Autowired @Qualifier("validatingTransformItemProcessor") C24TransformItemProcessor validatingTransformItemProcessor; @Autowired @Qualifier("fullyValidatingTransformItemProcessor") C24TransformItemProcessor fullyValidatingTransformItemProcessor; @Autowired @Qualifier("defaultTransformItemProcessor") C24TransformItemProcessor defaultTransformItemProcessor; @Autowired @Qualifier("javaSinkItemProcessor") C24TransformItemProcessor javaSinkItemProcessor; @Autowired Transform transform; private void validateProcessor(C24TransformItemProcessor processor, boolean validating, boolean failfast, Class<?> clazz) { assertThat(processor.getTransformer(), is(transform)); assertThat(processor.isValidating(), is(validating)); assertThat(processor.isFailfast(), is(failfast)); if(clazz == null) { assertThat(processor.getTargetClass(), nullValue()) ; } else { assertEquals(clazz, processor.getTargetClass()); } } @Test public void validateParser() { validateProcessor(defaultTransformItemProcessor, false, true, null); validateProcessor(transformItemProcessor, false, true, null); validateProcessor(validatingTransformItemProcessor, true, true, null); validateProcessor(fullyValidatingTransformItemProcessor, true, false, null); validateProcessor(javaSinkItemProcessor, false, true, MyEmail.class); validateProcessor(spelTransformItemProcessor, true, true, null); } }