[jboss-cvs] joramtests/src/main/java/org/objectweb/jtests/jms/conform/selector ...

Scott Stark scott.stark at jboss.com
Thu Mar 29 00:28:35 EDT 2007


  User: starksm 
  Date: 07/03/29 00:28:35

  Added:       src/main/java/org/objectweb/jtests/jms/conform/selector   
                        package.html SelectorTest.java
                        SelectorSyntaxTest.java
  Log:
  + covert to mvn
  + Drop the poor properties file setup logic and require that the properties be passed in
  
  Revision  Changes    Path
  1.1      date: 2007/03/29 04:28:35;  author: starksm;  state: Exp;joramtests/src/main/java/org/objectweb/jtests/jms/conform/selector/package.html
  
  Index: package.html
  ===================================================================
    <body>
      Tests JMS <em>Selector</em> features.
    </body>
  
  
  1.1      date: 2007/03/29 04:28:35;  author: starksm;  state: Exp;joramtests/src/main/java/org/objectweb/jtests/jms/conform/selector/SelectorTest.java
  
  Index: SelectorTest.java
  ===================================================================
  /*
   * JORAM: Java(TM) Open Reliable Asynchronous Messaging
   * Copyright (C) 2002 INRIA
   * Contact: joram-team at objectweb.org
   * 
   * This library is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or any later version.
   * 
   * This library is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   * 
   * You should have received a copy of the GNU Lesser General Public
   * License along with this library; if not, write to the Free Software
   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
   * USA
   * 
   * Initial developer(s): Jeff Mesnil (jmesnil at inrialpes.fr)
   * Contributor(s): ______________________________________.
   */
  
  package org.objectweb.jtests.jms.conform.selector;
  
  import javax.jms.DeliveryMode;
  import javax.jms.JMSException;
  import javax.jms.TextMessage;
  
  import junit.framework.Test;
  import junit.framework.TestSuite;
  
  import org.objectweb.jtests.jms.framework.PTPTestCase;
  import org.objectweb.jtests.jms.framework.TestConfig;
  
  /**
   * Test the message selector features of JMS
   *
   * @author Jeff Mesnil (jmesnil at inrialpes.fr)
   * @version $Id: SelectorTest.java,v 1.1 2007/03/29 04:28:35 starksm Exp $
   */
  public class SelectorTest extends PTPTestCase
  {
  
     /**
      * Test that an empty string as a message selector indicates that there
      * is no message selector for the message consumer.
      */
     public void testEmptyStringAsSelector()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue, "");
           receiverConnection.start();
  
           TextMessage message = senderSession.createTextMessage();
           message.setText("testEmptyStringAsSelector");
           sender.send(message);
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertTrue("No message was received", msg != null);
           assertEquals("testEmptyStringAsSelector", msg.getText());
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Tats that String literals are well handled by the message selector.
      * <br />
      * <ul>
      *   <li><code>"string = 'literal''s;"</code> is <code>true</code> for "literal's" and <code>false</code> for "literal"</li>
      * </ul>
      */
  
     public void testStringLiterals()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue, "string = 'literal''s'");
           receiverConnection.start();
  
           TextMessage dummyMessage = senderSession.createTextMessage();
           dummyMessage.setStringProperty("string", "literal");
           dummyMessage.setText("testStringLiterals:1");
           sender.send(dummyMessage);
  
           TextMessage message = senderSession.createTextMessage();
           message.setStringProperty("string", "literal's");
           message.setText("testStringLiterals:2");
           sender.send(message);
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertTrue("No message was received", msg != null);
           assertEquals("testStringLiterals:2", msg.getText());
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test that the JMS property <code>JMSDeliveryMode</code> is treated as having the values <code>'PERSISTENT'</code>
      * or <code>'NON_PERSISTENT'</code> when used in a message selector (chapter 3.8.1.3).
      */
     public void testJMSDeliveryModeInSelector()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue, "JMSDeliveryMode = 'PERSISTENT'");
           receiverConnection.start();
  
           TextMessage dummyMessage = senderSession.createTextMessage();
           dummyMessage.setText("testJMSDeliveryModeInSelector:1");
           // send a dummy message in *non persistent* mode
           sender.send(dummyMessage, DeliveryMode.NON_PERSISTENT, sender.getPriority(), sender.getTimeToLive());
  
           TextMessage message = senderSession.createTextMessage();
           message.setText("testJMSDeliveryModeInSelector:2");
           // send a message in *persistent*
           sender.send(message, DeliveryMode.PERSISTENT, sender.getPriority(), sender.getTimeToLive());
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertTrue("No message was received", msg != null);
           // only the message sent in persistent mode should be received.
           assertEquals(DeliveryMode.PERSISTENT, msg.getJMSDeliveryMode());
           assertEquals("testJMSDeliveryModeInSelector:2", msg.getText());
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test that conversions that apply to the <code>get</code> methods for properties do not
      * apply when a property is used in a message selector expression.
      * Based on the example of chapter 3.8.1.1 about identifiers.
      */
     public void testIdentifierConversion()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue, "NumberOfOrders > 1");
           receiverConnection.start();
  
           TextMessage dummyMessage = senderSession.createTextMessage();
           dummyMessage.setStringProperty("NumberOfOrders", "2");
           dummyMessage.setText("testIdentifierConversion:1");
           sender.send(dummyMessage);
  
           TextMessage message = senderSession.createTextMessage();
           message.setIntProperty("NumberOfOrders", 2);
           message.setText("testIdentifierConversion:2");
           sender.send(message);
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertEquals("testIdentifierConversion:2", msg.getText());
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test the message selector using the filter example provided by the JMS specifications.
      * <br />
      * <ul>
      *   <li><code>"JMSType = 'car' AND color = 'blue' AND weight > 2500"</code></li>
      * </ul>
      */
     public void testSelectorExampleFromSpecs()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue,
                 "JMSType = 'car' AND color = 'blue' AND weight > 2500");
           receiverConnection.start();
  
           TextMessage dummyMessage = senderSession.createTextMessage();
           dummyMessage.setJMSType("car");
           dummyMessage.setStringProperty("color", "red");
           dummyMessage.setLongProperty("weight", 3000);
           dummyMessage.setText("testSelectorExampleFromSpecs:1");
           sender.send(dummyMessage);
  
           TextMessage message = senderSession.createTextMessage();
           message.setJMSType("car");
           message.setStringProperty("color", "blue");
           message.setLongProperty("weight", 3000);
           message.setText("testSelectorExampleFromSpecs:2");
           sender.send(message);
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertEquals("testSelectorExampleFromSpecs:2", msg.getText());
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test the ">" condition in message selector.
      * <br />
      * <ul>
      *   <li><code>"weight > 2500"</code> is <code>true</code> for 3000 and <code>false</code> for 1000</li>
      * </ul>
      */
     public void testGreaterThan()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue, "weight > 2500");
           receiverConnection.start();
  
           TextMessage dummyMessage = senderSession.createTextMessage();
           dummyMessage.setLongProperty("weight", 1000);
           dummyMessage.setText("testGreaterThan:1");
           sender.send(dummyMessage);
  
           TextMessage message = senderSession.createTextMessage();
           message.setLongProperty("weight", 3000);
           message.setText("testGreaterThan:2");
           sender.send(message);
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertEquals("testGreaterThan:2", msg.getText());
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test the "=" condition in message selector.
      * <br />
      * <ul>
      *   <li><code>"weight > 2500"</code>  is <code>true</code> for 2500 and <code>false</code> for 1000</li>
      * </ul>
      */
     public void testEquals()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue, "weight = 2500");
           receiverConnection.start();
  
           TextMessage dummyMessage = senderSession.createTextMessage();
           dummyMessage.setLongProperty("weight", 1000);
           dummyMessage.setText("testEquals:1");
           sender.send(dummyMessage);
  
           TextMessage message = senderSession.createTextMessage();
           message.setLongProperty("weight", 2500);
           message.setText("testEquals:2");
           sender.send(message);
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertEquals("testEquals:2", msg.getText());
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test the "<>" (not equal) condition in message selector.
      * <br />
      * <ul>
      *   <li><code>"weight <> 2500"</code>  is <code>true</code> for 1000 and <code>false</code> for 2500</li>
      * </ul>
      */
     public void testNotEquals()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue, "weight <> 2500");
           receiverConnection.start();
  
           TextMessage dummyMessage = senderSession.createTextMessage();
           dummyMessage.setLongProperty("weight", 2500);
           dummyMessage.setText("testEquals:1");
           sender.send(dummyMessage);
  
           TextMessage message = senderSession.createTextMessage();
           message.setLongProperty("weight", 1000);
           message.setText("testEquals:2");
           sender.send(message);
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertEquals("testEquals:2", msg.getText());
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test the BETWEEN condition in message selector.
      * <br />
      * <ul>
      *   <li>"age BETWEEN 15 and 19" is <code>true</code> for 17 and <code>false</code> for 20</li>
      * </ul>
      */
     public void testBetween()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue, "age BETWEEN 15 and 19");
           receiverConnection.start();
  
           TextMessage dummyMessage = senderSession.createTextMessage();
           dummyMessage.setIntProperty("age", 20);
           dummyMessage.setText("testBetween:1");
           sender.send(dummyMessage);
  
           TextMessage message = senderSession.createTextMessage();
           message.setIntProperty("age", 17);
           message.setText("testBetween:2");
           sender.send(message);
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertTrue("Message not received", msg != null);
           assertTrue("Message of another test: " + msg.getText(), msg.getText().startsWith("testBetween"));
           assertEquals("testBetween:2", msg.getText());
  
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test the IN condition in message selector.
      * <br />
      * <ul>
      *   <li>"Country IN ('UK', 'US', 'France')" is <code>true</code> for 'UK' and <code>false</code> for 'Peru'</li>
      * </ul>
      */
     public void testIn()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue, "Country IN ('UK', 'US', 'France')");
           receiverConnection.start();
  
           TextMessage dummyMessage = senderSession.createTextMessage();
           dummyMessage.setStringProperty("Country", "Peru");
           dummyMessage.setText("testIn:1");
           sender.send(dummyMessage);
  
           TextMessage message = senderSession.createTextMessage();
           message.setStringProperty("Country", "UK");
           message.setText("testIn:2");
           sender.send(message);
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertTrue("Message not received", msg != null);
           assertTrue("Message of another test: " + msg.getText(), msg.getText().startsWith("testIn"));
           assertEquals("testIn:2", msg.getText());
  
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test the LIKE ... ESCAPE condition in message selector
      * <br />
      * <ul>
      *   <li>"underscored LIKE '\_%' ESCAPE '\'" is <code>true</code> for '_foo' and <code>false</code> for 'bar'</li>
      * </ul>
      */
     public void testLikeEscape()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue, "underscored LIKE '\\_%' ESCAPE '\\'");
           receiverConnection.start();
  
           TextMessage dummyMessage = senderSession.createTextMessage();
           dummyMessage.setStringProperty("underscored", "bar");
           dummyMessage.setText("testLikeEscape:1");
           sender.send(dummyMessage);
  
           TextMessage message = senderSession.createTextMessage();
           message.setStringProperty("underscored", "_foo");
           message.setText("testLikeEscape:2");
           sender.send(message);
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertTrue("Message not received", msg != null);
           assertTrue("Message of another test: " + msg.getText(), msg.getText().startsWith("testLikeEscape"));
           assertEquals("testLikeEscape:2", msg.getText());
  
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test the LIKE condition with '_' in the pattern.
      * <br />
      * <ul>
      *   <li>"word LIKE 'l_se'" is <code>true</code> for 'lose' and <code>false</code> for 'loose'</li>
      * </ul>
      */
     public void testLike_2()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue, "word LIKE 'l_se'");
           receiverConnection.start();
  
           TextMessage dummyMessage = senderSession.createTextMessage();
           dummyMessage.setStringProperty("word", "loose");
           dummyMessage.setText("testLike_2:1");
           sender.send(dummyMessage);
  
           TextMessage message = senderSession.createTextMessage();
           message.setStringProperty("word", "lose");
           message.setText("testLike_2:2");
           sender.send(message);
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertTrue("Message not received", msg != null);
           assertTrue("Message of another test: " + msg.getText(), msg.getText().startsWith("testLike_2"));
           assertEquals("testLike_2:2", msg.getText());
  
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test the LIKE condition with '%' in the pattern.
      * <br />
      * <ul>
      *   <li>"phone LIKE '12%3'" is <code>true</code> for '12993' and <code>false</code> for '1234'</li>
      * </ul>
      */
     public void testLike_1()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue, "phone LIKE '12%3'");
           receiverConnection.start();
  
           TextMessage dummyMessage = senderSession.createTextMessage();
           dummyMessage.setStringProperty("phone", "1234");
           dummyMessage.setText("testLike_1:1");
           sender.send(dummyMessage);
  
           TextMessage message = senderSession.createTextMessage();
           message.setStringProperty("phone", "12993");
           message.setText("testLike_1:2");
           sender.send(message);
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertTrue("Message not received", msg != null);
           assertTrue("Message of another test: " + msg.getText(), msg.getText().startsWith("testLike_1"));
           assertEquals("testLike_1:2", msg.getText());
  
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test the <code>NULL</code> value in message selector.
      * <br />
      * <ul>
      *   <li><code>"prop IS NULL"</code></li>
      * </ul>
      */
     public void testNull()
     {
        try
        {
           receiverConnection.stop();
           receiver = receiverSession.createReceiver(receiverQueue, "prop_name IS NULL");
           receiverConnection.start();
  
           TextMessage dummyMessage = senderSession.createTextMessage();
           dummyMessage.setStringProperty("prop_name", "not null");
           dummyMessage.setText("testNull:1");
           sender.send(dummyMessage);
  
           TextMessage message = senderSession.createTextMessage();
           message.setText("testNull:2");
           sender.send(message);
  
           TextMessage msg = (TextMessage) receiver.receive(TestConfig.TIMEOUT);
           assertTrue(msg != null);
           assertEquals("testNull:2", msg.getText());
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /** 
      * Method to use this class in a Test suite
      */
     public static Test suite()
     {
        return new TestSuite(SelectorTest.class);
     }
  
     public SelectorTest(String name)
     {
        super(name);
     }
  }
  
  
  
  1.1      date: 2007/03/29 04:28:35;  author: starksm;  state: Exp;joramtests/src/main/java/org/objectweb/jtests/jms/conform/selector/SelectorSyntaxTest.java
  
  Index: SelectorSyntaxTest.java
  ===================================================================
  /*
   * JORAM: Java(TM) Open Reliable Asynchronous Messaging
   * Copyright (C) 2002 INRIA
   * Contact: joram-team at objectweb.org
   * 
   * This library is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or any later version.
   * 
   * This library is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   * 
   * You should have received a copy of the GNU Lesser General Public
   * License along with this library; if not, write to the Free Software
   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
   * USA
   * 
   * Initial developer(s): Jeff Mesnil (jmesnil at inrialpes.fr)
   * Contributor(s): ______________________________________.
   */
  
  package org.objectweb.jtests.jms.conform.selector;
  
  import javax.jms.InvalidSelectorException;
  import javax.jms.JMSException;
  
  import junit.framework.Test;
  import junit.framework.TestSuite;
  
  import org.objectweb.jtests.jms.framework.PTPTestCase;
  
  /**
   * Test the syntax of of message selector of JMS
   *
   * @author Jeff Mesnil (jmesnil at inrialpes.fr)
   * @version $Id: SelectorSyntaxTest.java,v 1.1 2007/03/29 04:28:35 starksm Exp $
   */
  public class SelectorSyntaxTest extends PTPTestCase
  {
  
     /**
      * Test that identifiers that start with a valid Java identifier start character are valid.
      * A valid identifier means that the method <code>Character.isJavaIdentifierStart</code> returns 
      * <code>true</code> for this identifier first character.
      * 
      * @see <a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Character.html#isJavaIdentifierStart(char)">Character.isJavaIdentifierStart(char)</a>
      */
     public void testValidIdentifiersStart()
     {
        String identifier = null;
        try
        {
           identifier = "_correct";
           assertTrue(identifier + " starts with an invalid Java identifier start character", Character
                 .isJavaIdentifierStart(identifier.charAt(0)));
           receiver = receiverSession.createReceiver(receiverQueue, identifier + " IS NULL");
  
           identifier = "$correct";
           assertTrue(identifier + " starts with an invalid Java identifier start character", Character
                 .isJavaIdentifierStart(identifier.charAt(0)));
           receiver = receiverSession.createReceiver(receiverQueue, identifier + " IS NULL");
        }
        catch (JMSException e)
        {
           fail(identifier + " is a correct identifier. \n" + e);
        }
     }
  
     /**
      * Test that identifiers that start with an invalid Java identifier start character are invalid.       
      * 
      * @see #testValidIdentifiersStart()
      */
     public void testInvalidIdentifiersStart()
     {
        String identifier = null;
        try
        {
           identifier = "1uncorrect";
  
           assertTrue(identifier + " starts with an invalid Java identifier start character", !Character
                 .isJavaIdentifierStart(identifier.charAt(0)));
           receiver = receiverSession.createReceiver(receiverQueue, identifier + " IS NULL");
           fail(identifier + " starts with an invalid Java identifier start character");
        }
        catch (JMSException e)
        {
        }
  
        try
        {
           identifier = "%uncorrect";
  
           assertTrue(identifier + " starts with an invalid Java identifier start character", !Character
                 .isJavaIdentifierStart(identifier.charAt(0)));
           receiver = receiverSession.createReceiver(receiverQueue, identifier + " IS NULL");
           fail(identifier + " starts with an invalid Java identifier start character");
        }
        catch (JMSException e)
        {
        }
  
     }
  
     /**
      * Test that message selector can be an empty string.
      */
     public void testEmptyStringAsSelector()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "");
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test that identifiers can't be <code>NULL</code>.
      */
     public void testIdentifierNULL()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "NULL = ZERO");
           fail("NULL is not a valid identifier");
        }
        catch (InvalidSelectorException e)
        {
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test that identifiers can't be <code>TRUE</code>.
      */
     public void testIdentifierTRUE()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "TRUE > 0");
           fail("TRUE is not a valid identifier");
        }
        catch (JMSException e)
        {
        }
     }
  
     /**
      * Test that identifiers can't be <code>FALSE</code>.
      */
     public void testIdentifierFALSE()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "FALSE > 0");
           fail("FALSE is not a valid identifier");
        }
        catch (JMSException e)
        {
        }
     }
  
     /**
      * Test that identifiers can't be <code>NOT</code>.
      */
     public void testIdentifierNOT()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "NOT > 0");
           fail("NOT is not a valid identifier");
        }
        catch (JMSException e)
        {
        }
     }
  
     /**
      * Test that identifiers can't be <code>AND</code>.
      */
     public void testIdentifierAND()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "AND > 0");
           fail("AND is not a valid identifier");
        }
        catch (JMSException e)
        {
        }
     }
  
     /**
      * Test that identifiers can't be <code>OR</code>.
      */
     public void testIdentifierOR()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "OR > 0");
           fail("OR is not a valid identifier");
        }
        catch (JMSException e)
        {
        }
     }
  
     /**
      * Test that identifiers can't be <code>BETWEEN</code>.
      */
     public void testIdentifierBETWEEN()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "BETWEEN > 0");
           fail("BETWEEN is not a valid identifier");
        }
        catch (JMSException e)
        {
        }
     }
  
     /**
      * Test that identifiers can't be <code>LIKE</code>.
      */
     public void testIdentifierLIKE()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "LIKE > 0");
           fail("LIKE is not a valid identifier");
        }
        catch (JMSException e)
        {
        }
     }
  
     /**
      * Test that identifiers can't be <code>IN</code>.
      */
     public void testIdentifierIN()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "IN > 0");
           fail("IN is not a valid identifier");
        }
        catch (JMSException e)
        {
        }
     }
  
     /**
      * Test that identifiers can't be <code>IS</code>.
      */
     public void testIdentifierIS()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "IS > 0");
           fail("IS is not a valid identifier");
        }
        catch (JMSException e)
        {
        }
     }
  
     /**
      * Test that identifiers can't be <code>ESCAPE</code>.
      */
     public void testIdentifierESCAPE()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "ESCAPE > 0");
           fail("ESCAPE is not a valid identifier");
        }
        catch (JMSException e)
        {
        }
     }
  
     /**
      * Test syntax of "<em>identifier</em> IS [NOT] NULL"
      */
     public void testNull()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "prop_name IS NULL");
           receiver = receiverSession.createReceiver(receiverQueue, "prop_name IS NOT NULL");
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test syntax of "<em>identifier</em> [NOT] LIKE <em>pattern-value</em> [ESCAPE <em>escape-character</em>]"
      */
     public void testLike()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "phone LIKE '12%3'");
           receiver = receiverSession.createReceiver(receiverQueue, "word LIKE 'l_se'");
           receiver = receiverSession.createReceiver(receiverQueue, "underscored LIKE '\\_%' ESCAPE '\\'");
           receiver = receiverSession.createReceiver(receiverQueue, "phone NOT LIKE '12%3'");
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test syntax of "<em>identifier</em> [NOT] IN (<em>string-literal1</em>, <em>string-literal2</em>,...)"
      */
     public void testIn()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "Country IN ('UK', 'US', 'France')");
           receiver = receiverSession.createReceiver(receiverQueue, "Country NOT IN ('UK', 'US', 'France')");
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test syntax of "<em>arithmetic-expr1</em> [NOT] BETWEEN <em>arithmetic-expr2</em> and <em>arithmetic-expr3</em>"
      */
     public void testBetween()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "age BETWEEN 15 and 19");
           receiver = receiverSession.createReceiver(receiverQueue, "age NOT BETWEEN 15 and 19");
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test diffent syntax for approximate numeric literal (+6.2, -95.7, 7.)
      */
     public void testApproximateNumericLiteral()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "average = +6.2");
           receiver = receiverSession.createReceiver(receiverQueue, "average = -95.7");
           receiver = receiverSession.createReceiver(receiverQueue, "average = 7.");
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test diffent syntax for exact numeric literal (+62, -957, 57)
      */
     public void testExactNumericLiteral()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "average = +62");
           receiver = receiverSession.createReceiver(receiverQueue, "max = -957");
           receiver = receiverSession.createReceiver(receiverQueue, "max = 57");
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test diffent syntax for zero as an exact or an approximate numeric literal (0, 0.0, 0.)
      */
     public void testZero()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "max = 0");
           receiver = receiverSession.createReceiver(receiverQueue, "max = 0.0");
           receiver = receiverSession.createReceiver(receiverQueue, "max = 0.");
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /**
      * Test diffent syntax for string literal ('literal' and 'literal''s')
      */
     public void testString()
     {
        try
        {
           receiver = receiverSession.createReceiver(receiverQueue, "string = 'literal'");
           receiver = receiverSession.createReceiver(receiverQueue, "string = 'literal''s'");
        }
        catch (JMSException e)
        {
           fail(e);
        }
     }
  
     /** 
      * Method to use this class in a Test suite
      */
     public static Test suite()
     {
        return new TestSuite(SelectorSyntaxTest.class);
     }
  
     public SelectorSyntaxTest(String name)
     {
        super(name);
     }
  }
  
  
  



More information about the jboss-cvs-commits mailing list