/* * Copyright 2008-2014 the original author or authors. * * 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.springframework.batch.sample.domain.trade; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; import org.springframework.batch.item.file.transform.DefaultFieldSet; import org.springframework.batch.item.file.transform.FieldSet; import org.springframework.batch.item.file.transform.LineTokenizer; /** * @author Lucas Ward * */ public class CompositeCustomerUpdateLineTokenizerTests { private StubLineTokenizer customerTokenizer; private FieldSet customerFieldSet = new DefaultFieldSet(null); private FieldSet footerFieldSet = new DefaultFieldSet(null); private CompositeCustomerUpdateLineTokenizer compositeTokenizer; @Before public void init(){ customerTokenizer = new StubLineTokenizer(customerFieldSet); compositeTokenizer = new CompositeCustomerUpdateLineTokenizer(); compositeTokenizer.setCustomerTokenizer(customerTokenizer); compositeTokenizer.setFooterTokenizer(new StubLineTokenizer(footerFieldSet)); } @Test public void testCustomerAdd() throws Exception{ String customerAddLine = "AFDASFDASFDFSA"; FieldSet fs = compositeTokenizer.tokenize(customerAddLine); assertEquals(customerFieldSet, fs); assertEquals(customerAddLine, customerTokenizer.getTokenizedLine()); } @Test public void testCustomerDelete() throws Exception{ String customerAddLine = "DFDASFDASFDFSA"; FieldSet fs = compositeTokenizer.tokenize(customerAddLine); assertEquals(customerFieldSet, fs); assertEquals(customerAddLine, customerTokenizer.getTokenizedLine()); } @Test public void testCustomerUpdate() throws Exception{ String customerAddLine = "UFDASFDASFDFSA"; FieldSet fs = compositeTokenizer.tokenize(customerAddLine); assertEquals(customerFieldSet, fs); assertEquals(customerAddLine, customerTokenizer.getTokenizedLine()); } @Test(expected=IllegalArgumentException.class) public void testInvalidLine() throws Exception{ String invalidLine = "INVALID"; compositeTokenizer.tokenize(invalidLine); } private static class StubLineTokenizer implements LineTokenizer{ private final FieldSet fieldSetToReturn; private String tokenizedLine; public StubLineTokenizer(FieldSet fieldSetToReturn) { this.fieldSetToReturn = fieldSetToReturn; } @Override public FieldSet tokenize(String line) { this.tokenizedLine = line; return fieldSetToReturn; } public String getTokenizedLine() { return tokenizedLine; } } }