RESOLVED - issue BATCH-1022: Chunk is not serializable but is wrapped by a Serializable ChunkRequest

Added test for Serializable
This commit is contained in:
dsyer
2009-01-27 10:58:30 +00:00
parent 5e69b39a97
commit 8e1e352be4
4 changed files with 156 additions and 1 deletions

View File

@@ -192,4 +192,24 @@ public class StepContribution implements Serializable {
+ processSkipCount + ", exitStatus=" + exitStatus.getExitCode() + "]";
}
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (!(obj instanceof StepContribution)) {
return false;
}
StepContribution other = (StepContribution) obj;
return toString().equals(other.toString());
}
/**
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
return 11 + toString().hashCode() * 43;
}
}

View File

@@ -17,6 +17,8 @@ package org.springframework.batch.core;
import junit.framework.TestCase;
import org.junit.Test;
/**
* @author Dave Syer
*
@@ -29,11 +31,23 @@ public class StepContributionTests extends TestCase {
/**
* Test method for
* {@link org.springframework.batch.core.StepContribution#incrementFilterCount(int)}.
* {@link org.springframework.batch.core.StepContribution#incrementFilterCount(int)}
* .
*/
public void testIncrementFilterCount() {
assertEquals(0, contribution.getFilterCount());
contribution.incrementFilterCount(1);
assertEquals(1, contribution.getFilterCount());
}
@Test
public void testEqualsNull() throws Exception {
assertFalse(contribution.equals(null));
}
@Test
public void testEqualsAnother() throws Exception {
assertEquals(new StepExecution("foo", null).createStepContribution(), contribution);
assertEquals(new StepExecution("foo", null).createStepContribution().hashCode(), contribution.hashCode());
}
}

View File

@@ -0,0 +1,65 @@
/*
* 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.integration.chunk;
import static org.junit.Assert.*;
import java.util.Arrays;
import org.apache.commons.lang.SerializationUtils;
import org.junit.Test;
import org.springframework.batch.test.MetaDataInstanceFactory;
/**
* @author Dave Syer
*
*/
public class ChunkRequestTests {
private ChunkRequest<String> request = new ChunkRequest<String>(Arrays.asList("foo", "bar"), 111L,
MetaDataInstanceFactory.createStepExecution().createStepContribution());
@Test
public void testGetJobId() {
assertEquals(new Long(111L), request.getJobId());
}
@Test
public void testGetItems() {
assertEquals(2, request.getItems().size());
}
@Test
public void testGetStepContribution() {
assertNotNull(request.getStepContribution());
}
@Test
public void testToString() {
System.err.println(request.toString());
}
@Test
public void testSerializable() throws Exception {
@SuppressWarnings("unchecked")
ChunkRequest<String> result = (ChunkRequest<String>) SerializationUtils.deserialize(SerializationUtils
.serialize(request));
assertNotNull(result.getStepContribution());
assertEquals(new Long(111L), result.getJobId());
assertEquals(2, result.getItems().size());
}
}

View File

@@ -0,0 +1,56 @@
/*
* 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.integration.chunk;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.apache.commons.lang.SerializationUtils;
import org.junit.Test;
import org.springframework.batch.test.MetaDataInstanceFactory;
/**
* @author Dave Syer
*
*/
public class ChunkResponseTests {
private ChunkResponse response = new ChunkResponse(111L, MetaDataInstanceFactory.createStepExecution()
.createStepContribution());
@Test
public void testGetJobId() {
assertEquals(new Long(111L), response.getJobId());
}
@Test
public void testGetStepContribution() {
assertNotNull(response.getStepContribution());
}
@Test
public void testToString() {
System.err.println(response.toString());
}
@Test
public void testSerializable() throws Exception {
ChunkResponse result = (ChunkResponse) SerializationUtils.deserialize(SerializationUtils.serialize(response));
assertNotNull(result.getStepContribution());
assertEquals(new Long(111L), result.getJobId());
}
}