Author: ningjiang
Date: Tue Jan 19 02:22:32 2010
New Revision: 900649

URL: http://svn.apache.org/viewvc?rev=900649&view=rev
Log:
CAMEL-2330 applied patch with thanks to Pavel

Modified:
    camel/trunk/components/camel-jaxb/pom.xml
    
camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
    
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/FilteringXmlStreamWriterTest.java
    
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/JaxbDataFormatTest.java
    
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/NonXmlCharFiltererTest.java
    
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/NonXmlFilterReaderTest.java
    camel/trunk/parent/pom.xml

Modified: camel/trunk/components/camel-jaxb/pom.xml
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jaxb/pom.xml?rev=900649&r1=900648&r2=900649&view=diff
==============================================================================
--- camel/trunk/components/camel-jaxb/pom.xml (original)
+++ camel/trunk/components/camel-jaxb/pom.xml Tue Jan 19 02:22:32 2010
@@ -100,8 +100,8 @@
                <scope>test</scope>
         </dependency>        
         <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymockclassextension</artifactId>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>

Modified: 
camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java?rev=900649&r1=900648&r2=900649&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
 (original)
+++ 
camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
 Tue Jan 19 02:22:32 2010
@@ -96,7 +96,7 @@
         }
     }
     
-    public Object unmarshal(Exchange exchange, InputStream stream) throws 
IOException, ClassNotFoundException {
+    public Object unmarshal(Exchange exchange, InputStream stream) throws 
IOException {
         try {
             // must create a new instance of unmarshaller as its not thread 
safe
             Object answer;

Modified: 
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/FilteringXmlStreamWriterTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/FilteringXmlStreamWriterTest.java?rev=900649&r1=900648&r2=900649&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/FilteringXmlStreamWriterTest.java
 (original)
+++ 
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/FilteringXmlStreamWriterTest.java
 Tue Jan 19 02:22:32 2010
@@ -19,98 +19,77 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.easymock.classextension.EasyMockSupport;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+
+import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.same;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.same;
-
-public class FilteringXmlStreamWriterTest extends EasyMockSupport {
+...@runwith(MockitoJUnitRunner.class)
+public class FilteringXmlStreamWriterTest {
     private FilteringXmlStreamWriter filteringXmlStreamWriter;
+    @Mock
     private NonXmlCharFilterer nonXmlCharFiltererMock;
+    @Mock
     private XMLStreamWriter xmlStreamWriterMock;
 
     // only testing non-generated methods, those that do apply filtering
 
     @Before
     public void setUp() {
-        xmlStreamWriterMock = createStrictMock(XMLStreamWriter.class);
-        nonXmlCharFiltererMock = createStrictMock(NonXmlCharFilterer.class);
         filteringXmlStreamWriter = new 
FilteringXmlStreamWriter(xmlStreamWriterMock);
         filteringXmlStreamWriter.nonXmlCharFilterer = nonXmlCharFiltererMock;
+
+        
when(nonXmlCharFiltererMock.filter("value")).thenReturn("filteredValue");
     }
 
     @Test
     public void testWriteAttribute2Args() throws XMLStreamException {
-        
expect(nonXmlCharFiltererMock.filter("value")).andReturn("filteredValue");
-        xmlStreamWriterMock.writeAttribute("localName", "filteredValue");
-        replayAll();
-
         filteringXmlStreamWriter.writeAttribute("localName", "value");
-        verifyAll();
+        verify(xmlStreamWriterMock).writeAttribute("localName", 
"filteredValue");
     }
 
     @Test
     public void testWriteAttribute3Args() throws XMLStreamException {
-        
expect(nonXmlCharFiltererMock.filter("value")).andReturn("filteredValue");
-        xmlStreamWriterMock.writeAttribute("namespaceURI", "localName", 
"filteredValue");
-        replayAll();
-
         filteringXmlStreamWriter.writeAttribute("namespaceURI", "localName", 
"value");
-        verifyAll();
+        verify(xmlStreamWriterMock).writeAttribute("namespaceURI", 
"localName", "filteredValue");
     }
 
     @Test
     public void testWriteAttribute4Args() throws XMLStreamException {
-        
expect(nonXmlCharFiltererMock.filter("value")).andReturn("filteredValue");
-        xmlStreamWriterMock.writeAttribute("prefix", "namespaceURI", 
"localName", "filteredValue");
-        replayAll();
-
         filteringXmlStreamWriter.writeAttribute("prefix", "namespaceURI", 
"localName", "value");
-        verifyAll();
+        verify(xmlStreamWriterMock).writeAttribute("prefix", "namespaceURI", 
"localName", "filteredValue");
     }
 
     @Test
     public void testWriteCData() throws XMLStreamException {
-        
expect(nonXmlCharFiltererMock.filter("value")).andReturn("filteredValue");
-        xmlStreamWriterMock.writeCData("filteredValue");
-        replayAll();
-
         filteringXmlStreamWriter.writeCData("value");
-        verifyAll();
+        verify(xmlStreamWriterMock).writeCData("filteredValue");
     }
 
     @Test
     public void testWriteCharacters1Arg() throws XMLStreamException {
-        
expect(nonXmlCharFiltererMock.filter("value")).andReturn("filteredValue");
-        xmlStreamWriterMock.writeCharacters("filteredValue");
-        replayAll();
-
         filteringXmlStreamWriter.writeCharacters("value");
-        verifyAll();
+        verify(xmlStreamWriterMock).writeCharacters("filteredValue");
     }
 
     @Test
     public void testWriteComment() throws XMLStreamException {
-        
expect(nonXmlCharFiltererMock.filter("value")).andReturn("filteredValue");
-        xmlStreamWriterMock.writeComment("filteredValue");
-        replayAll();
-
         filteringXmlStreamWriter.writeComment("value");
-        verifyAll();
+        verify(xmlStreamWriterMock).writeComment("filteredValue");
     }
 
     @Test
     public void testWriteCharacters3Args() throws XMLStreamException {
         char[] buffer = new char[] {'a', 'b', 'c'};
-        expect(nonXmlCharFiltererMock.filter(same(buffer), eq(2), 
eq(3))).andReturn(true);
-        xmlStreamWriterMock.writeCharacters(same(buffer), eq(2), eq(3));
-        replayAll();
-
         filteringXmlStreamWriter.writeCharacters(buffer, 2, 3);
-        verifyAll();
+        verify(nonXmlCharFiltererMock).filter(same(buffer), eq(2), eq(3));
+        verify(xmlStreamWriterMock).writeCharacters(same(buffer), eq(2), 
eq(3));
     }
 
 }

Modified: 
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/JaxbDataFormatTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/JaxbDataFormatTest.java?rev=900649&r1=900648&r2=900649&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/JaxbDataFormatTest.java
 (original)
+++ 
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/JaxbDataFormatTest.java
 Tue Jan 19 02:22:32 2010
@@ -16,105 +16,157 @@
  */
 package org.apache.camel.converter.jaxb;
 
+import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
 
+import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
 import javax.xml.stream.XMLStreamException;
 
 import org.apache.camel.Exchange;
-import org.easymock.classextension.EasyMockSupport;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
 
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.isA;
-import static org.easymock.EasyMock.same;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Matchers.isA;
+import static org.mockito.Matchers.same;
+import static org.mockito.Mockito.doCallRealMethod;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
-public class JaxbDataFormatTest extends EasyMockSupport {
+...@runwith(MockitoJUnitRunner.class)
+public class JaxbDataFormatTest {
     private JaxbDataFormat jaxbDataFormat;
+    @Mock
     private Exchange exchangeMock;
+    @Mock
     private Marshaller marshallerMock;
+    @Mock
+    private JaxbDataFormat jaxbDataFormatMock;
+    @Mock
+    private JAXBContext jaxbContextMock;
+    @Mock
+    private Unmarshaller unmarshallerMock;
+
 
     @Before
     public void setUp() {
         jaxbDataFormat = new JaxbDataFormat();
-        marshallerMock = createStrictMock(Marshaller.class);
-        exchangeMock = createStrictMock(Exchange.class);
     }
 
+    @SuppressWarnings("unchecked")
     @Test
-    public void testNeedFiltering() {
+    public void testNeedFilteringDisabledFiltering() {
         // tests combinations of data format option and exchange property
-        expect(
-                exchangeMock.getProperty(Exchange.FILTER_NON_XML_CHARS, false,
-                        Boolean.class)).andReturn(false);
-        replayAll();
-
-        assertFalse("Not expected filtering here", 
jaxbDataFormat.needFiltering(exchangeMock));
-        verifyAll();
-        resetAll();
-
-        expect(
-                exchangeMock.getProperty(Exchange.FILTER_NON_XML_CHARS, false,
-                        Boolean.class)).andReturn(true);
-        replayAll();
-
-        assertTrue("Expected filtering here", 
jaxbDataFormat.needFiltering(exchangeMock));
-        verifyAll();
-        resetAll();
+        when(exchangeMock.getProperty(anyString(), anyObject(), 
any(Class.class)))
+                .thenReturn(false);
+
+        jaxbDataFormat.needFiltering(exchangeMock);
+        verify(exchangeMock).getProperty(Exchange.FILTER_NON_XML_CHARS, false, 
Boolean.class);
+    }
 
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testNeedFilteringEnabledFiltering() {
+        when(exchangeMock.getProperty(anyString(), anyObject(), 
any(Class.class))).thenReturn(true);
         jaxbDataFormat.setFilterNonXmlChars(true);
-        expect(
-                exchangeMock.getProperty(Exchange.FILTER_NON_XML_CHARS, true,
-                        Boolean.class)).andReturn(false);
-        replayAll();
+        jaxbDataFormat.needFiltering(exchangeMock);
+        verify(exchangeMock).getProperty(Exchange.FILTER_NON_XML_CHARS, true, 
Boolean.class);
+    }
+
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testNeedFilteringTruePropagates() {
+        // tests combinations of data format option and exchange property
+        when(exchangeMock.getProperty(anyString(), anyObject(), 
any(Class.class)))
+                .thenReturn(true);
 
-        assertFalse("Not expected filtering here", 
jaxbDataFormat.needFiltering(exchangeMock));
-        verifyAll();
-        resetAll();
+        assertTrue("Expecting filtering here", 
jaxbDataFormat.needFiltering(exchangeMock));
+    }
 
-        expect(
-                exchangeMock.getProperty(Exchange.FILTER_NON_XML_CHARS, true,
-                        Boolean.class)).andReturn(true);
-        replayAll();
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testNeedFilteringFalsePropagates() {
+        // tests combinations of data format option and exchange property
+        when(exchangeMock.getProperty(anyString(), anyObject(), 
any(Class.class)))
+                .thenReturn(false);
 
-        assertTrue("Expected filtering here", 
jaxbDataFormat.needFiltering(exchangeMock));
-        verifyAll();
-        resetAll();
+        assertFalse("Not expecting filtering here", 
jaxbDataFormat.needFiltering(exchangeMock));
     }
 
     @Test
-    public void testMarshalFilteringDisabled() throws XMLStreamException, 
JAXBException {
-        JaxbDataFormat jaxbDataFormatMock = 
createMockBuilder(JaxbDataFormat.class)
-                .addMockedMethod("needFiltering").createStrictMock();
+    public void testMarshalFilteringDisabled() throws IOException, 
XMLStreamException, JAXBException {
+        
doCallRealMethod().when(jaxbDataFormatMock).marshal(any(Exchange.class), 
anyObject(),
+                any(OutputStream.class), any(Marshaller.class));
+        when(jaxbDataFormatMock.needFiltering(exchangeMock)).thenReturn(false);
+
         Object graph = new Object();
         OutputStream stream = new ByteArrayOutputStream();
 
-        
expect(jaxbDataFormatMock.needFiltering(exchangeMock)).andReturn(false);
-        marshallerMock.marshal(same(graph), same(stream));
-        replayAll();
-
         jaxbDataFormatMock.marshal(exchangeMock, graph, stream, 
marshallerMock);
-        verifyAll();
+        verify(marshallerMock).marshal(same(graph), same(stream));
     }
 
     @Test
     public void testMarshalFilteringEnabled() throws XMLStreamException, 
JAXBException {
-        JaxbDataFormat jaxbDataFormatMock = 
createMockBuilder(JaxbDataFormat.class)
-            .addMockedMethod("needFiltering").createStrictMock();
+        
doCallRealMethod().when(jaxbDataFormatMock).marshal(any(Exchange.class), 
anyObject(),
+                any(OutputStream.class), any(Marshaller.class));
+        when(jaxbDataFormatMock.needFiltering(exchangeMock)).thenReturn(true);
 
         Object graph = new Object();
         OutputStream stream = new ByteArrayOutputStream();
 
-        expect(jaxbDataFormatMock.needFiltering(exchangeMock)).andReturn(true);
-        marshallerMock.marshal(same(graph), 
isA(FilteringXmlStreamWriter.class));
-        replayAll();
-
         jaxbDataFormatMock.marshal(exchangeMock, graph, stream, 
marshallerMock);
-        verifyAll();
+        verify(marshallerMock).marshal(same(graph), 
isA(FilteringXmlStreamWriter.class));
+
     }
+
+    @Test
+    public void testUnmarshalFilteringDisabled() throws IOException, 
JAXBException {
+        
doCallRealMethod().when(jaxbDataFormatMock).unmarshal(any(Exchange.class), 
+                any(InputStream.class));
+
+        when(jaxbDataFormatMock.getContext()).thenReturn(jaxbContextMock);
+        
when(jaxbContextMock.createUnmarshaller()).thenReturn(unmarshallerMock);
+
+        when(jaxbDataFormatMock.needFiltering(exchangeMock)).thenReturn(false);
+
+        InputStream stream = new ByteArrayInputStream(new byte[] {});
+
+        jaxbDataFormatMock.unmarshal(exchangeMock, stream);
+        verify(unmarshallerMock).unmarshal((InputStream) 
argThat(not(instanceOf(NonXmlFilterReader.class))));
+    }
+
+    @Test
+    public void testUnmarshalFilteringEnabled() throws IOException, 
JAXBException {
+        
doCallRealMethod().when(jaxbDataFormatMock).unmarshal(any(Exchange.class), 
+                any(InputStream.class));
+
+        when(jaxbDataFormatMock.getContext()).thenReturn(jaxbContextMock);
+        
when(jaxbContextMock.createUnmarshaller()).thenReturn(unmarshallerMock);
+
+        when(jaxbDataFormatMock.needFiltering(exchangeMock)).thenReturn(true);
+
+        InputStream stream = new ByteArrayInputStream(new byte[] {});
+
+        jaxbDataFormatMock.unmarshal(exchangeMock, stream);
+        verify(unmarshallerMock).unmarshal(any(NonXmlFilterReader.class));
+    }
+
 }

Modified: 
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/NonXmlCharFiltererTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/NonXmlCharFiltererTest.java?rev=900649&r1=900648&r2=900649&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/NonXmlCharFiltererTest.java
 (original)
+++ 
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/NonXmlCharFiltererTest.java
 Tue Jan 19 02:22:32 2010
@@ -17,24 +17,32 @@
 
 package org.apache.camel.converter.jaxb;
 
-import org.easymock.Capture;
-import org.easymock.IAnswer;
-import org.easymock.classextension.EasyMockSupport;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.mockito.stubbing.Answer;
 
-import static org.easymock.EasyMock.and;
-import static org.easymock.EasyMock.aryEq;
-import static org.easymock.EasyMock.capture;
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.fail;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyChar;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
-public class NonXmlCharFiltererTest extends EasyMockSupport {
+...@runwith(MockitoJUnitRunner.class)
+public class NonXmlCharFiltererTest {
     private NonXmlCharFilterer nonXmlCharFilterer;
+    @Mock
+    private NonXmlCharFilterer nonXmlCharFiltererMock;
 
     @Before
     public void setUp() {
@@ -71,65 +79,53 @@
 
     @Test
     public void testFilter1ArgNonFiltered() {
-        NonXmlCharFilterer nonXmlCharFiltererMock = 
createMockBuilder(NonXmlCharFilterer.class)
-                .addMockedMethod("filter", char[].class, int.class, 
int.class).createStrictMock();
-        String string = "abc";
-
-        expect(nonXmlCharFiltererMock.filter(aryEq(new char[] {'a', 'b', 
'c'}), eq(0), eq(3)))
-                .andReturn(false);
-        replayAll();
+        when(nonXmlCharFiltererMock.filter(anyString())).thenCallRealMethod();
+        when(nonXmlCharFiltererMock.filter(any(char[].class), anyInt(), 
anyInt())).thenReturn(false);
 
+        String string = "abc";
         String result = nonXmlCharFiltererMock.filter(string);
-        verifyAll();
+
+        verify(nonXmlCharFiltererMock).filter(new char[] {'a', 'b', 'c'}, 0, 
3);
 
         assertSame("Should have returned the same string if nothing was 
filtered", string, result);
     }
 
-    //@Test
-    //"This test can't be build with JDK 1.5"
-    /*
+    @Test
     public void testFilter1ArgFiltered() {
-        NonXmlCharFilterer nonXmlCharFiltererMock = 
createMockBuilder(NonXmlCharFilterer.class)
-            .addMockedMethod("filter", char[].class, int.class, 
int.class).createStrictMock();
-        final Capture<char[]> bufferCapture = new Capture<char[]>();
-
-        expect(
-               nonXmlCharFiltererMock.filter(and(capture(bufferCapture), 
aryEq(new char[] {'a', 'b', 'c'})),
-                                             eq(0), eq(3))).andAnswer(new 
IAnswer<Boolean>() {
-            public Boolean answer() throws Throwable {
-                char[] buffer = bufferCapture.getValue();
+        when(nonXmlCharFiltererMock.filter(anyString())).thenCallRealMethod();
+        when(nonXmlCharFiltererMock.filter(eq(new char[] {'a', 'b', 'c'}), 
anyInt(), anyInt())).thenAnswer(new Answer<Boolean>() {
+
+            public Boolean answer(InvocationOnMock invocation) throws 
Throwable {
+                char[] buffer = (char[]) invocation.getArguments()[0];
                 buffer[0] = 'i';
                 buffer[1] = 'o';
                 return true;
             }
         });
-        replayAll();
 
         String result = nonXmlCharFiltererMock.filter("abc");
-        verifyAll();
-
+        verify(nonXmlCharFiltererMock).filter(any(char[].class), eq(0), eq(3));
         assertEquals("Should have returned filtered string", "ioc", result);
-    }*/
+    }
 
     @Test
     public void testFilter1ArgNullArg() {
-        NonXmlCharFilterer nonXmlCharFiltererMock = 
createStrictMock(NonXmlCharFilterer.class);
+        when(nonXmlCharFiltererMock.filter(anyString())).thenCallRealMethod();
         nonXmlCharFiltererMock.filter(null);
+        verify(nonXmlCharFiltererMock, never()).filter(any(char[].class), 
anyInt(), anyInt());
     }
 
     @Test
     public void testFilter3Args() {
-        NonXmlCharFilterer nonXmlCharFiltererMock = 
createMockBuilder(NonXmlCharFilterer.class)
-                .addMockedMethod("isFiltered").createStrictMock();
-        char[] buffer = new char[] {'1', '2', '3', '4', '5', '6'};
-
-        expect(nonXmlCharFiltererMock.isFiltered('3')).andReturn(true);
-        expect(nonXmlCharFiltererMock.isFiltered('4')).andReturn(false);
-        expect(nonXmlCharFiltererMock.isFiltered('5')).andReturn(true);
-        replayAll();
+        when(nonXmlCharFiltererMock.filter(any(char[].class), anyInt(), 
anyInt())).thenCallRealMethod();
+        when(nonXmlCharFiltererMock.isFiltered(anyChar())).thenReturn(true, 
false, true);
 
+        char[] buffer = new char[] {'1', '2', '3', '4', '5', '6'};
         nonXmlCharFiltererMock.filter(buffer, 2, 3);
-        verifyAll();
+
+        verify(nonXmlCharFiltererMock).isFiltered('3');
+        verify(nonXmlCharFiltererMock).isFiltered('4');
+        verify(nonXmlCharFiltererMock).isFiltered('5');
 
         assertArrayEquals("Unexpected buffer contents",
                 new char[] {'1', '2', ' ', '4', ' ', '6'}, buffer);
@@ -137,8 +133,7 @@
 
     @Test
     public void testFilter3ArgsNullArg() {
-        NonXmlCharFilterer nonXmlCharFiltererMock = 
createStrictMock(NonXmlCharFilterer.class);
-        nonXmlCharFiltererMock.filter(null, 2, 3);
+        nonXmlCharFilterer.filter(null, 2, 3);
     }
 
     private void checkSingleValid(int charCode) {

Modified: 
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/NonXmlFilterReaderTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/NonXmlFilterReaderTest.java?rev=900649&r1=900648&r2=900649&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/NonXmlFilterReaderTest.java
 (original)
+++ 
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/NonXmlFilterReaderTest.java
 Tue Jan 19 02:22:32 2010
@@ -19,27 +19,33 @@
 import java.io.IOException;
 import java.io.Reader;
 
-import org.easymock.classextension.EasyMockSupport;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.mockito.stubbing.Answer;
 
-import static org.easymock.EasyMock.anyInt;
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.notNull;
-import static org.easymock.EasyMock.same;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.same;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
-public class NonXmlFilterReaderTest extends EasyMockSupport {
+...@runwith(MockitoJUnitRunner.class)
+public class NonXmlFilterReaderTest {
     private NonXmlFilterReader nonXmlFilterReader;
+    @Mock
     private NonXmlCharFilterer nonXmlCharFiltererMock;
+    @Mock
     private Reader readerMock;
 
     @Before
     public void setUp() {
-        readerMock = createStrictMock(Reader.class);
-        nonXmlCharFiltererMock = createStrictMock(NonXmlCharFilterer.class);
         nonXmlFilterReader = new NonXmlFilterReader(readerMock);
         nonXmlFilterReader.nonXmlCharFilterer = nonXmlCharFiltererMock;
     }
@@ -48,13 +54,19 @@
     public void testRead() throws IOException {
         char[] buffer = new char[10];
 
-        expect(readerMock.read(same(buffer), eq(3), eq(5))).andDelegateTo(
-                new ConstantReader(new char[] {'a', 'b', 'c'}));
-        expect(nonXmlCharFiltererMock.filter(same(buffer), eq(3), 
eq(3))).andReturn(false);
+        when(readerMock.read(same(buffer), eq(3), eq(5))).thenAnswer(new 
Answer<Integer>() {
+
+            public Integer answer(InvocationOnMock invocation) throws 
Throwable {
+                ConstantReader reader = new ConstantReader(new char[] {'a', 
'b', 'c'});
+                Object[] args = invocation.getArguments();
+                return reader.read((char[]) args[0], (Integer) args[1], 
(Integer)args[2]);
+            }
+        });
 
-        replayAll();
         int result = nonXmlFilterReader.read(buffer, 3, 5);
-        verifyAll();
+
+        verify(readerMock).read(same(buffer), eq(3), eq(5));
+        verify(nonXmlCharFiltererMock).filter(same(buffer), eq(3), eq(3));
 
         assertEquals("Unexpected number of chars read", 3, result);
         assertArrayEquals("Wrong buffer contents", new char[] {0, 0, 0, 'a', 
'b', 'c', 0, 0, 0, 0},
@@ -65,16 +77,13 @@
     public void testReadEOS() throws IOException {
         char[] buffer = new char[10];
 
-        expect(readerMock.read((char[]) notNull(), anyInt(), 
anyInt())).andReturn(-1);
+        when(readerMock.read(any(char[].class), anyInt(), 
anyInt())).thenReturn(-1);
 
-        replayAll();
         int result = nonXmlFilterReader.read(buffer, 3, 5);
-        verifyAll();
 
         assertEquals("Unexpected number of chars read", -1, result);
         assertArrayEquals("Buffer should not have been affected",
                           new char[] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, buffer);
-
     }
 
     static class ConstantReader extends Reader {

Modified: camel/trunk/parent/pom.xml
URL: 
http://svn.apache.org/viewvc/camel/trunk/parent/pom.xml?rev=900649&r1=900648&r2=900649&view=diff
==============================================================================
--- camel/trunk/parent/pom.xml (original)
+++ camel/trunk/parent/pom.xml Tue Jan 19 02:22:32 2010
@@ -74,6 +74,7 @@
     <commons-dbcp-version>1.2.2</commons-dbcp-version>
     <derby-version>10.4.2.0</derby-version>
     <easymock-version>2.5.2</easymock-version>
+    <mockito-version>1.8.2</mockito-version>
     <flatpack-version>3.1.1</flatpack-version>
     <freemarker-version>2.3.15</freemarker-version>
     <hamcrest-version>1.2-dev1</hamcrest-version>
@@ -970,6 +971,11 @@
         <artifactId>easymockclassextension</artifactId>
         <version>${easymock-version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-core</artifactId>
+        <version>${mockito-version}</version>
+      </dependency>
      <dependency>
         <groupId>httpunit</groupId>
         <artifactId>httpunit</artifactId>


Reply via email to