001 package nl.cwi.sen1.visbase.factbrowser; 002 003 import nl.cwi.sen1.tunit.TUnitTestCase; 004 import nl.cwi.sen1.tunit.ToolComValidator; 005 import aterm.ATerm; 006 import aterm.pure.PureFactory; 007 008 /** 009 * The FBMP Toolbus test case for toolbus testing. 010 * 011 * @author Bas Basten 012 * @author Anton Lycklama a Nijeholt 013 * 014 */ 015 public class FBMPTBTest extends TUnitTestCase { 016 017 /** 018 * Test the all the toolbus scenarios. 019 */ 020 public void testFBMP() { 021 FBMPTool fbmpTool = new FBMPTool(this, "fbmp-test-tool", true); 022 023 Thread fbmpToolExecutor = new Thread(fbmpTool); 024 fbmpToolExecutor.setDaemon(true); 025 fbmpToolExecutor.start(); 026 027 toolbus.waitTillShutdown(); 028 029 if(hasFailed()) fail(); 030 031 System.out.println("Test Passed"); 032 } 033 034 protected void setUp() { 035 try{ 036 startToolbus("./tbscript/", "./tbscript/fbmp_test_init.tb"); 037 }catch (Exception ex){ 038 ex.printStackTrace(); 039 stopToolbus(); 040 fail(ex.toString()); 041 } 042 } 043 044 protected void tearDown() { 045 stopToolbus(); 046 } 047 048 public static class FBMPTool extends ToolComValidator{ 049 private final TUnitTestCase testCase; 050 051 public FBMPTool(TUnitTestCase testCase, String name, boolean verbose){ 052 super(testCase, name, verbose); 053 054 this.testCase = testCase; 055 } 056 057 public void run(){ 058 try{ 059 testCase.connectToolComValidator(this); 060 061 PureFactory factory = getFactory(); 062 063 for(int i = 1; i <= 6; i++){ 064 ATerm scenarioStart = factory.make("start-scenario(<int>)", i); 065 sendEvent(scenarioStart); 066 067 ATerm scenarioResult = factory.make("scenario-successful(<int>)", i); 068 registerForDo(scenarioResult); 069 expectAction(); 070 071 waitForCompletion(); 072 } 073 }catch(Exception ex){ 074 ex.printStackTrace(); 075 }finally{ 076 disconnect(); 077 } 078 } 079 } 080 }