[jboss-jira] [JBoss JIRA] Created: (JBRULES-1029) Can't use JMock to mimic facts
John Doe (JIRA)
jira-events at lists.jboss.org
Wed Jul 25 10:56:47 EDT 2007
Can't use JMock to mimic facts
------------------------------
Key: JBRULES-1029
URL: http://jira.jboss.com/jira/browse/JBRULES-1029
Project: JBoss Rules
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 4.0.0.GA
Environment: java version "1.5.0_11-p5"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-p5-root_04_jul_2007_17_12)
Java HotSpot(TM) Client VM (build 1.5.0_11-p5-root_04_jul_2007_13_39, mixed mode)
Reporter: John Doe
Assigned To: Mark Proctor
It is not possible to use objects, created by JMock, to assert into working memory, below is the test case:
===============================================
/**
* Defines methods used to access underlying storage
*/
public interface ContentStorageInterface {
public ResultsInterface search(QueryInterface query);
}
===============================================
/**
* Implementation of searching for Lucene
*/
public class LuceneQuery implements QueryInterface {
public LuceneQuery(String query, String field) {
}
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (obj == this)
return true;
if (!(obj instanceof LuceneQuery))
return false;
return true;
}
}
===============================================
/**
* Defines methods to use for searching
*/
public interface QueryInterface {
}
===============================================
import java.util.Iterator;
/**
* Defines methods to use for managing search results
*/
public interface ResultsInterface {
public int getResultsCount();
public Iterator<Object> getResults();
}
===============================================
/**
* Defines helper methods for using in rules
*/
public class RuleHelper {
public static final ResultsInterface search(
ContentStorageInterface content, String pattern, String column) {
return content.search(new LuceneQuery(pattern, column));
}
}
===============================================
package sample;
rule "Verify_1"
when
content : ContentStorageInterface()
results : ResultsInterface( resultsCount > 0)
from RuleHelper.search(content,"pattern","column")
then
System.out.println( results );
end
===============================================
import java.io.FileReader;
import java.io.Reader;
import junit.framework.TestCase;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.compiler.DrlParser;
import org.drools.compiler.PackageBuilder;
import org.drools.lang.descr.PackageDescr;
import org.drools.rule.Package;
import org.jmock.Expectations;
import org.jmock.Mockery;
/**
* This is a sample file to launch a rule package from a rule source file.
*/
public class BasicRuleFlowTest extends TestCase {
Mockery context = new Mockery();
public void testGenericFlow() throws Exception {
DrlParser parser = new DrlParser();
final Reader source = new FileReader(("SampleSearchRule.drl"));
PackageDescr descr = parser.parse(source);
source.close();
PackageBuilder builder = new PackageBuilder();
builder.addPackage(descr);
Package pkg = builder.getPackage();
pkg.checkValidity();
RuleBase base = RuleBaseFactory.newRuleBase();
base.addPackage(pkg);
WorkingMemory memory = base.newStatefulSession();
final ContentStorageInterface storage = context
.mock(ContentStorageInterface.class);
context.checking(new Expectations() {
{
one(storage).search(new LuceneQuery("", ""));
}
});
memory.insert(storage);
}
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list