package org.objectweb.jtests.jms.conform.selector;
import org.objectweb.jtests.jms.framework.*;
import junit.framework.*;
import javax.jms.*;
public class SelectorTest extends PTPTestCase {
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();
assertEquals("testSelectorExampleFromSpecs:2", msg.getText());
} catch (JMSException e) {
e.printStackTrace();
fail(e);
}
}
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();
assertEquals("testGreaterThan:2", msg.getText());
} catch (JMSException e) {
fail(e);
}
}
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();
assertEquals("testEquals:2", msg.getText());
} catch (JMSException e) {
fail(e);
}
}
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();
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);
}
}
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();
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);
}
}
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();
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);
}
}
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();
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);
}
}
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();
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);
}
}
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();
assertTrue(msg != null);
assertEquals("testNull:2", msg.getText());
} catch (JMSException e) {
fail(e);
}
}
public static Test suite() {
return new TestSuite(SelectorTest.class);
}
public SelectorTest(String name) {
super(name);
}
}