1 package org
.codehaus
.groovy
.grails
.webflow
.engine
.builder
;
3 import org
.springframework
.webflow
.engine
.*
4 import org
.springframework
.webflow
.test
.execution
.*
5 import org
.springframework
.webflow
.definition
.*
7 class FlowBuilderExecutionTests
extends AbstractFlowExecutionTests
{
10 ExpandoMetaClass
.enableGlobally()
14 ExpandoMetaClass
.disableGlobally()
17 def searchService
= [executeSearch
:{["foo", "bar"]}]
18 def params
= [q
:"foo"]
20 void testFlowExecution() {
21 grails
.util
.GrailsWebUtil
.bindMockWebRequest()
22 def viewSelection
= startFlow()
24 assertEquals
"displaySearchForm", viewSelection
.viewName
25 viewSelection
= signalEvent( "submit" )
27 assertEquals
"displayResults", viewSelection
.viewName
28 assertEquals( ["foo", "bar"],viewSelection
.model
.results
)
29 viewSelection
= signalEvent("return")
30 assertEquals
"displaySearchForm", viewSelection
.viewName
33 void testFlowExecutionException() {
34 grails
.util
.GrailsWebUtil
.bindMockWebRequest()
35 searchService
.executeSearch
= { throw new FooException() }
37 def viewSelection
= startFlow()
39 assertEquals
"displaySearchForm", viewSelection
.viewName
40 viewSelection
= signalEvent( "submit" )
42 assertEquals
"errorView", viewSelection
.viewName
46 FlowDefinition
getFlowDefinition() {
48 new FlowBuilder("myFlow").flow
{
50 on("submit").to
"executeSearch"
54 [results
:searchService
.executeSearch(params
.q
)]
56 on("success").to
"displayResults"
57 on("error").to
"displaySearchForm"
58 on(FooException
).to
"errorView"
61 on("return").to
"displaySearchForm"
67 class FooException
extends Exception
{}