1 /***
2 * Redistribution and use of this software and associated documentation
3 * ("Software"), with or without modification, are permitted provided
4 * that the following conditions are met:
5 *
6 * 1. Redistributions of source code must retain copyright
7 * statements and notices. Redistributions must also contain a
8 * copy of this document.
9 *
10 * 2. Redistributions in binary form must reproduce the
11 * above copyright notice, this list of conditions and the
12 * following disclaimer in the documentation and/or other
13 * materials provided with the distribution.
14 *
15 * 3. The name "Exolab" must not be used to endorse or promote
16 * products derived from this Software without prior written
17 * permission of Exoffice Technologies. For written permission,
18 * please contact tma@netspace.net.au.
19 *
20 * 4. Products derived from this Software may not be called "Exolab"
21 * nor may "Exolab" appear in their names without prior written
22 * permission of Exoffice Technologies. Exolab is a registered
23 * trademark of Exoffice Technologies.
24 *
25 * 5. Due credit should be given to the Exolab Project
26 * (http://www.exolab.org/).
27 *
28 * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS
29 * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
30 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
31 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
32 * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
33 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
37 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
39 * OF THE POSSIBILITY OF SUCH DAMAGE.
40 *
41 * Copyright 2001-2004 (C) Exoffice Technologies Inc. All Rights Reserved.
42 *
43 * $Id: JMSTimestampTest.java,v 1.4 2004/02/03 21:52:11 tanderson Exp $
44 */
45 package org.exolab.jmscts.test.selector;
46
47 import junit.framework.Test;
48
49 import org.exolab.jmscts.core.TestCreator;
50
51
52 /***
53 * This class tests selectors containing <code>JMSTimestamp</code>
54 *
55 * @author <a href="mailto:tma@netspace.net.au">Tim Anderson</a>
56 * @version $Revision: 1.4 $
57 * @see AbstractSelectorTestCase
58 * @jmscts.message StreamMessage
59 */
60 public class JMSTimestampTest extends AbstractSelectorTestCase {
61
62 /***
63 * Create an instance of this class for a specific test case, testing
64 * against all delivery types
65 *
66 * @param name the name of test case
67 */
68 public JMSTimestampTest(String name) {
69 super(name);
70 }
71
72 /***
73 * Sets up the test suite
74 *
75 * @return an instance of this class that may be run by
76 * {@link org.exolab.jmscts.core.JMSTestRunner}
77 */
78 public static Test suite() {
79 return TestCreator.createSendReceiveTest(JMSTimestampTest.class);
80 }
81
82 /***
83 * Verifies that the selector <code>JMSTimestamp >= 0</code> selects
84 * all messages
85 *
86 * @jmscts.requirement selector.datetime
87 * @jmscts.requirement selector.identifier.header
88 * @jmscts.requirement selector.expression
89 * @throws Exception for any error
90 */
91 public void testJMSTimestamp1() throws Exception {
92 checkSelector("JMSTimestamp >= 0", true);
93 }
94
95 /***
96 * Verifies that the selector
97 * <code>JMSTimestamp >= {time}</code> selects
98 * all messages, where {time} is a literal value derived from
99 * <code>System.currentTimeMillis()</code>
100 *
101 * @jmscts.requirement selector.datetime
102 * @jmscts.requirement selector.identifier.header
103 * @jmscts.requirement selector.expression
104 * @throws Exception for any error
105 */
106 public void testJMSTimestamp2() throws Exception {
107 long time = System.currentTimeMillis();
108 checkSelector("JMSTimestamp >= " + time, true);
109 }
110
111 /***
112 * Verifies that the selector
113 * <code>JMSTimestamp < {time}</code> selects
114 * no messages, where {time} is a literal value derived from
115 * <code>System.currentTimeMillis()</code>
116 *
117 * @jmscts.requirement selector.datetime
118 * @jmscts.requirement selector.identifier.header
119 * @jmscts.requirement selector.expression
120 * @throws Exception for any error
121 */
122 public void testJMSTimestamp3() throws Exception {
123 long time = System.currentTimeMillis();
124 checkSelector("JMSTimestamp < " + time, false);
125 }
126
127 /***
128 * Verifies that the selector <code>JMSTimestamp >= '0'</code>
129 * throws InvalidSelectorException
130 *
131 * @jmscts.requirement selector.datetime
132 * @jmscts.requirement selector.validation
133 * @throws Exception for any error
134 */
135 public void testInvalid1() throws Exception {
136 checkInvalidSelector("JMSTimestamp >= '0'");
137 }
138
139 /***
140 * Verifies that the selector <code>'0' <= JMSTimestamp</code>
141 * throws InvalidSelectorException
142 *
143 * @jmscts.requirement selector.datetime
144 * @jmscts.requirement selector.validation
145 * @throws Exception for any error
146 */
147 public void testInvalid2() throws Exception {
148 checkInvalidSelector("'0' <= JMSTimestamp");
149 }
150
151 /***
152 * Verifies that the selector <code>JMSTimestamp = '2001/1/1 0:0'</code>
153 * throws InvalidSelectorException
154 *
155 * @jmscts.requirement selector.datetime
156 * @jmscts.requirement selector.validation
157 * @throws Exception for any error
158 */
159 public void testInvalid3() throws Exception {
160 checkInvalidSelector("JMSTimestamp >= '2001/1/1 0:0'");
161 }
162
163 }
This page was automatically generated by Maven