com.mockobjects.io

Class MockWriter

Implemented Interfaces:
Verifiable

public class MockWriter
extends Writer
implements Verifiable

A mock Writer.

Example usage

You may use the MockWriter like this:

 public void testSomething() throws IOException {
     MockWriter out = new MockWriter();
     out.setExpectedSegment("some string");
     out.setExpectedFlushCalls(1);
     out.setExpectedCloseCalls(1);

     ObjectUnderTest testee = new ObjectUnderTest(out);
     out.verify();

     // If we get here, the mock's flush() and close() methods were
     // called exactly once each (order cannot be determined) and
     // the write() method was called with the string "some string" in it.
 }
Author:
Francois Beausoleil, fbos@users.sourceforge.net

Constructor Summary

MockWriter()
Instantiates a new mock writer which will act as a data sink.

Method Summary

void
close()
Increments the close counter and asserts that this method was not called too many times.
void
flush()
This method will also throw an IOException if asked to do so by calling setFlushShouldThrowException().
void
setCloseShouldThrowException()
Sets the mock's behavior when closing.
void
setExpectedCloseCalls(int calls)
Sets the expected number of times that the close() method will be called.
void
setExpectedFlushCalls(int calls)
Sets the expected number of times that the flush() method will be called.
void
setExpectedSegment(String aString)
Sets the value of the expected string segment.
void
setFlushShouldThrowException()
Sets the mock's behavior when flushing.
void
setWriteShouldThrowException()
Sets the mock's behavior when writing.
void
verify()
Throw an AssertionFailedException if any expectations have not been met.
void
write(cbuf[] , int off, int len)
Either throws an exception or asserts a string segment for equality.

Constructor Details

MockWriter

public MockWriter()
Instantiates a new mock writer which will act as a data sink. Once instantiated, mocks of this class do not expect anything special. Once the object is instantiated, you should set your expectations using the provided methods.

Method Details

close

public void close()
            throws IOException

flush

public void flush()
            throws IOException
This method will also throw an IOException if asked to do so by calling setFlushShouldThrowException(). Please note that the call count will be incremented before the check for the exception is done.

setCloseShouldThrowException

public void setCloseShouldThrowException()

setExpectedCloseCalls

public void setExpectedCloseCalls(int calls)
See Also:
close()

setExpectedFlushCalls

public void setExpectedFlushCalls(int calls)
See Also:
flush()

setExpectedSegment

public void setExpectedSegment(String aString)
Sets the value of the expected string segment. When the write(char[], int, int) method is called, a string is instantiated with the passed array and compared to the aString parameter of this method. If the two strings differ, an junit.framework.AssertionFailedError will be thrown.
See Also:
ExpectationSegment, write(char[], int, int)

setFlushShouldThrowException

public void setFlushShouldThrowException()

setWriteShouldThrowException

public void setWriteShouldThrowException()
Sets the mock's behavior when writing. If this method has been called, then write(char[], int, int) will throw an IOException.

verify

public void verify()
Throw an AssertionFailedException if any expectations have not been met.
Specified by:
verify in interface Verifiable

write

public void write(cbuf[] ,
                  int off,
                  int len)
            throws IOException
Either throws an exception or asserts a string segment for equality.
See Also:
ExpectationSegment, setWriteShouldThrowException(boolean)

Copyright © 2002 Mock Objects. All Rights Reserved.