added a wicket tester junit rule to help manage the instance

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ed2b021f
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ed2b021f
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ed2b021f

Branch: refs/heads/master
Commit: ed2b021fdba5161c587719c9118327ecf49c6a4c
Parents: 0706fa3
Author: Igor Vaynberg <[email protected]>
Authored: Mon Sep 10 22:43:06 2012 -0700
Committer: Igor Vaynberg <[email protected]>
Committed: Mon Sep 10 22:43:06 2012 -0700

----------------------------------------------------------------------
 .../wicket/util/tester/WicketTesterScope.java      |   74 +++++++++++++++
 1 files changed, 74 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/ed2b021f/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterScope.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterScope.java
 
b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterScope.java
new file mode 100644
index 0000000..cb6fdbb
--- /dev/null
+++ 
b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterScope.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.util.tester;
+
+import org.junit.rules.TestRule;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
+
+/**
+ * Manages {@link WicketTester} instance
+ * 
+ * @author igor
+ */
+public class WicketTesterScope implements TestRule
+{
+       private WicketTester tester;
+
+       @Override
+       public Statement apply(final Statement base, Description description)
+       {
+               return new Statement()
+               {
+                       @Override
+                       public void evaluate() throws Throwable
+                       {
+                               tester = new WicketTester();
+                               setup(tester);
+                               try
+                               {
+                                       base.evaluate();
+                               }
+                               finally
+                               {
+                                       tester.destroy();
+                                       tester = null;
+                               }
+                       }
+               };
+       }
+
+       /**
+        * Allows setup of the tester instance
+        * 
+        * @param tester
+        */
+       protected void setup(WicketTester tester)
+       {
+
+       }
+
+       /**
+        * Gets the tester instance.
+        * 
+        * @return tester instance or {@code null} if called outside the rule's 
scope
+        */
+       public WicketTester getTester()
+       {
+               return tester;
+       }
+}

Reply via email to