BATCH-859: fixed failing tests

This commit is contained in:
trisberg
2008-10-28 20:00:56 +00:00
parent a3ba1913f2
commit 1fa38d4c20
7 changed files with 85 additions and 23 deletions

View File

@@ -0,0 +1,50 @@
/*
* Copyright 2006-2007 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.internal;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.batch.item.validator.ValidationException;
import org.springframework.batch.sample.domain.trade.Trade;
/**
* Processes the Trade - throwing validation errors if necessary.
*/
public class TradeProcessor implements ItemProcessor<Trade, Trade> {
private int failure = -1;
private int index = 0;
private Trade failedItem = null;
/**
* Public setter for the the index on which failure should occur.
*
* @param failure the failure to set
*/
public void setValidationFailure(int failure) {
this.failure = failure;
}
public Trade process(Trade item) throws Exception {
if ((failedItem == null && index++ == failure) || (failedItem != null && failedItem.equals(item))) {
failedItem = item;
throw new ValidationException("Some bad data for " + failedItem);
}
return item;
}
}

View File

@@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.List;
import org.springframework.batch.item.ItemWriter;
import org.springframework.batch.item.validator.ValidationException;
/**
* Remembers all items written - useful for testing.
@@ -21,7 +20,7 @@ public class ItemTrackingItemWriter<T> implements ItemWriter<T> {
public void write(List<? extends T> items) throws Exception {
if (failed!=null && items.contains(failed)) {
throw new ValidationException("validation failed");
throw new RuntimeException("write failed again");
}
this.items.addAll(items);
int current = counter;
@@ -29,7 +28,7 @@ public class ItemTrackingItemWriter<T> implements ItemWriter<T> {
if (current < failure && counter >= failure) {
failed = items.get(failure-current-1);
this.items.remove(failed);
throw new ValidationException("validation failed");
throw new RuntimeException("write failed");
}
}
@@ -37,7 +36,7 @@ public class ItemTrackingItemWriter<T> implements ItemWriter<T> {
return items;
}
public void setValidationFailure(int failure) {
public void setWriteFailure(int failure) {
this.failure = failure;
}