1 /* Copyright (c) 2000-2003, jMock.org. See bundled LICENSE.txt */
2 package org.jmock.expectation;
3
4 /***
5 * A class that represents the <code>null</code> value.
6 * The {@link org.jmock.expectation.Null Null} class is used when an
7 * {@link org.jmock.expectation.Expectation Expectation} is set to expect nothing.
8 * <p/>
9 * <b>Example usage:</b>
10 * <pre>
11 * public class MockX {
12 * private Expectation... anExpectation = new Expectation...(...);
13 * <p/>
14 * public MockX() {
15 * anExpectation.setExpectNothing();
16 * }
17 * <p/>
18 * public void setAnExpectation(Object value) {
19 * anExpectation.setExpected(value);
20 * }
21 * <p/>
22 * public void setActual(Object value) {
23 * anExpectation.setActual(value);
24 * }
25 * }
26 * </pre>
27 * The act of calling {@link org.jmock.expectation.Expectation#setExpectNothing() Expectation.setExpectNothing()}
28 * tells the expectation that it should expect no values to change. Since
29 * all {@link org.jmock.expectation.Null Null} objects are equal to themselves,
30 * most expectations set their expected value to an instance of
31 * {@link org.jmock.expectation.Null Null}, and at the same time, set their actual
32 * value to another instance of {@link org.jmock.expectation.Null Null}.
33 * This way, when {@link org.jmock.expectation.Verifiable#verify() verify()} checks
34 * expectations, they will compare two {@link org.jmock.expectation.Null Null}
35 * objects together, which is guaranteed to succeed.
36 *
37 * @author <a href="mailto:fbos@users.sourceforge.net">Francois Beausoleil (fbos@users.sourceforge.net)</a>
38 * @version $Id: Null.java,v 1.3 2002/03/28 18:16:54 custommonkey Exp $
39 */
40 public class Null {
41 /***
42 * The default description for all {@link org.jmock.expectation.Null Null}
43 * objects.
44 * This String is equal to "<code>Null</code>".
45 */
46 public static final String DEFAULT_DESCRIPTION = "Null";
47
48 /***
49 * A default {@link org.jmock.expectation.Null Null} object.
50 * Instead of always instantiating new {@link org.jmock.expectation.Null Null}
51 * objects, consider using a reference to this object instead. This way,
52 * the virtual machine will not be taking the time required to instantiate
53 * an object everytime it is required.
54 */
55 public static final Null NULL = new Null();
56
57 /*** The description of this {@link org.jmock.expectation.Null Null} object. */
58 final private String myDescription;
59
60 /***
61 * Instantiates a new {@link org.jmock.expectation.Null Null} object with
62 * the default description.
63 *
64 * @see org.jmock.expectation.Null#DEFAULT_DESCRIPTION
65 */
66 public Null() {
67 this(DEFAULT_DESCRIPTION);
68 }
69
70 /***
71 * Instantiates a new {@link org.jmock.expectation.Null Null} object and
72 * sets it's description.
73 *
74 * @param description
75 */
76 public Null(String description) {
77 super();
78 myDescription = description;
79 }
80
81 /***
82 * Determines equality between two objects.
83 * {@link org.jmock.expectation.Null Null} objects are only equal to
84 * another instance of themselves.
85 *
86 * @param other
87 */
88 public boolean equals(Object other) {
89 return other instanceof Null;
90 }
91
92 /***
93 * Returns this {@link org.jmock.expectation.Null Null} object's hashCode.
94 * All {@link org.jmock.expectation.Null Null} return the same
95 * hashCode value.
96 */
97 public int hashCode() {
98 return 0;
99 }
100
101 /***
102 * Returns a string representation of this {@link org.jmock.expectation.Null Null}
103 * object.
104 * This merely returns the string passed to the constructor initially.
105 */
106 public String toString() {
107 return myDescription;
108 }
109 }
This page was automatically generated by Maven