package org.springframework.webflow.engine; import junit.framework.TestCase; import org.springframework.webflow.execution.RequestContext; import org.springframework.webflow.test.MockRequestContext; public class FlowVariableTests extends TestCase { private boolean restoreCalled; public void testCreateVariable() { FlowVariable var = new FlowVariable("foo", new VariableValueFactory() { public Object createInitialValue(RequestContext context) { return "bar"; } public void restoreReferences(Object value, RequestContext context) { } }); MockRequestContext context = new MockRequestContext(); var.create(context); assertEquals("bar", context.getFlowScope().get("foo")); } public void testDestroyVariable() { FlowVariable var = new FlowVariable("foo", new VariableValueFactory() { public Object createInitialValue(RequestContext context) { return "bar"; } public void restoreReferences(Object value, RequestContext context) { } }); MockRequestContext context = new MockRequestContext(); var.create(context); assertEquals("bar", context.getFlowScope().get("foo")); var.destroy(context); assertFalse(context.getFlowScope().contains("foo")); } public void testRestoreVariable() { FlowVariable var = new FlowVariable("foo", new VariableValueFactory() { public Object createInitialValue(RequestContext context) { return "bar"; } public void restoreReferences(Object value, RequestContext context) { restoreCalled = true; assertEquals("bar", value); } }); MockRequestContext context = new MockRequestContext(); var.create(context); var.restore(context); assertEquals("bar", context.getFlowScope().get("foo")); assertTrue(restoreCalled); } }