GRAILS-1019: Allowing expressions to be used with the 'disabled' attribute for g...
[grails.git] / test / groovy / org / codehaus / groovy / grails / webflow / engine / builder / ControllerFlowRegistryTests.groovy
blob05976486d74041554fb4a7eaf45d2b0eb17d1fed
1 package org.codehaus.groovy.grails.webflow.engine.builder
3 import org.codehaus.groovy.grails.commons.DefaultGrailsApplication
4 import org.springframework.webflow.definition.registry.FlowDefinitionRegistry
5 import org.codehaus.groovy.grails.support.MockApplicationContext
7 /**
8 * Tests for the ControllerFlowRegistry class
10 * @author Graeme Rocher
11 * @since 0.6
13 * Created: Jul 3, 2007
14 * Time: 9:22:23 AM
18 class ControllerFlowRegistryTests extends GroovyTestCase {
20 def gcl = new GroovyClassLoader()
22 void setUp() {
23 gcl.parseClass('''
24 class FooController {
25 def searchService = [executeSearch: { ['book'] }]
26 def shoppingCartFlow = {
27 enterPersonalDetails {
28 on("submit").to "enterShipping"
30 enterShipping {
31 on("back").to "enterPersonDetails"
32 on("submit").to "enterPayment"
34 enterPayment {
35 on("back").to "enterShipping"
36 on("submit").to "confirmPurchase"
38 confirmPurchase {
39 on("confirm").to "processPurchaseOrder"
41 processPurchaseOrder {
42 action {
43 println "processing purchase order"
44 [order:"done"]
46 on("error").to "confirmPurchase"
47 on(Exception).to "confirmPurchase"
48 on("success").to "displayInvoice"
50 displayInvoice()
53 def anotherAction = {
57 ''')
60 void testFlowRegsitry() {
61 def ga = new DefaultGrailsApplication(gcl.loadedClasses, gcl)
62 ga.initialise()
64 assertEquals 1, ga.controllerClasses.size()
66 ControllerFlowRegistry factoryBean = new ControllerFlowRegistry()
67 factoryBean.grailsApplication = ga
68 factoryBean.beanFactory = new MockApplicationContext()
69 factoryBean.afterPropertiesSet()
71 FlowDefinitionRegistry registry = factoryBean.getObject()
73 assert registry
74 assertEquals 1,registry.getFlowDefinitionCount()
75 def cartFlow = registry.getFlowDefinition("shoppingCart")
76 assert cartFlow
77 assertEquals 6,cartFlow.stateCount