ClockDriverTest.java

Uncle Bob's Agile Development Corner
Observer—Evolving into a pattern, Part 1
by Robert C. Martin
Listing 11. ClockDriverTest.java.


import junit.framework.*;

public class ClockDriverTest extends TestCase
{
    public ClockDriverTest(String name)
    {
        super(name);
    }

    public void testTimeChange()
    {
        MockTimeSource source = new MockTimeSource();
        MockTimeSink sink = new MockTimeSink();
        source.setObserver(sink);

        source.setTime(3,4,5);
        assertEquals(3, sink.getHours());
        assertEquals(4, sink.getMinutes());
        assertEquals(5, sink.getSeconds());

        source.setTime(7,8,9);
        assertEquals(7, sink.getHours());
        assertEquals(8, sink.getMinutes());
        assertEquals(9, sink.getSeconds());
    }
}

About the Author

Robert C. Martin is president of Object Mentor Inc., a firm that offers high-level, OO software design consulting, training, and development services. He is the author of Designing Object Oriented C++ Applications Using the Booch Method. He can be contacted at [email protected].