WICKET-5452 Make Wicket-Atmosphere testable - AtmosphereTester

Rename WicketAtmosphereTester to AtmosphereTester

Start the page after configuring AtmosphereTester/TesterEventBus so the method 
collector is called for all components in the page
Expose TesterBroadcasterFactory as BroadcasterFactory#getDefault()

(cherry picked from commit e841383c045f62d5feb87413f1aa6f694df8dcb7)


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

Branch: refs/heads/master
Commit: 1037c696287b99974a6d6d2fdbd479f5e21ef7f3
Parents: 7c97a1d
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Wed Aug 13 10:32:46 2014 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Fri Aug 15 10:11:23 2014 +0200

----------------------------------------------------------------------
 .../atmosphere/tester/AtmosphereTester.java     | 77 ++++++++++++++++++++
 .../atmosphere/tester/TesterEventBus.java       | 13 +---
 .../tester/WicketAtmosphereTester.java          | 76 -------------------
 .../wicket/atmosphere/AtmosphereTest.java       |  8 +-
 4 files changed, 84 insertions(+), 90 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/1037c696/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/tester/AtmosphereTester.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/tester/AtmosphereTester.java
 
b/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/tester/AtmosphereTester.java
new file mode 100644
index 0000000..87b3d69
--- /dev/null
+++ 
b/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/tester/AtmosphereTester.java
@@ -0,0 +1,77 @@
+/*
+ * 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.atmosphere.tester;
+
+import org.apache.wicket.Page;
+import org.apache.wicket.atmosphere.AtmosphereBehavior;
+import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.util.tester.WicketTester;
+import org.atmosphere.cpr.AtmosphereRequest;
+import org.atmosphere.cpr.AtmosphereResource;
+import org.atmosphere.cpr.AtmosphereResourceImpl;
+import org.atmosphere.cpr.AtmosphereResponse;
+import org.atmosphere.handler.AtmosphereHandlerAdapter;
+import org.atmosphere.util.SimpleBroadcaster;
+
+/**
+ *
+ */
+public class AtmosphereTester
+{
+       private final TesterEventBus eventBus;
+
+       public AtmosphereTester(final WicketTester wicketTester, Page page)
+       {
+               WebApplication application = wicketTester.getApplication();
+               this.eventBus = new TesterEventBus(application);
+
+               AtmosphereBehavior atmosphereBehavior = new AtmosphereBehavior()
+               {
+                       @Override
+                       public void onRequest()
+                       {
+                               SimpleBroadcaster broadcaster = 
eventBus.getBroadcaster();
+
+                               AtmosphereResource atmosphereResource = new 
AtmosphereResourceImpl();
+                               AtmosphereRequest atmosphereRequest = 
AtmosphereRequest.wrap(wicketTester.getRequest());
+                               AtmosphereResponse atmosphereResponse = 
AtmosphereResponse.wrap(wicketTester.getResponse());
+                               TesterAsyncSupport asyncSupport = new 
TesterAsyncSupport();
+                               atmosphereResource.initialize(eventBus.config, 
broadcaster, atmosphereRequest, atmosphereResponse,
+                                               asyncSupport, new 
AtmosphereHandlerAdapter());
+
+                               atmosphereResource.setBroadcaster(broadcaster);
+                               
broadcaster.addAtmosphereResource(atmosphereResource);
+
+                               String uuid = atmosphereResource.uuid();
+                               Page page = getComponent().getPage();
+
+                               page.setMetaData(ATMOSPHERE_UUID, uuid);
+                               eventBus.registerPage(uuid, page);
+                       }
+               };
+               page.add(atmosphereBehavior);
+
+               wicketTester.startPage(page);
+               wicketTester.executeBehavior(atmosphereBehavior);
+       }
+
+       public AtmosphereTester post(Object payload)
+       {
+               eventBus.post(payload);
+               return this;
+       }
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/1037c696/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/tester/TesterEventBus.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/tester/TesterEventBus.java
 
b/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/tester/TesterEventBus.java
index 8f30a37..8a94f04 100644
--- 
a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/tester/TesterEventBus.java
+++ 
b/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/tester/TesterEventBus.java
@@ -32,7 +32,6 @@ public class TesterEventBus extends EventBus
 {
        AtmosphereFramework framework = new AtmosphereFramework();
        AtmosphereConfig config = new AtmosphereConfig(framework);
-       IComponentOnBeforeRenderListener eventSubscriptionCollector;
 
        public TesterEventBus(WebApplication application)
        {
@@ -40,14 +39,7 @@ public class TesterEventBus extends EventBus
 
                framework.setBroadcasterFactory(new 
TesterBroadcasterFactory(config));
 
-               getBroadcaster().initialize("wicket-atmopshere-tester", config);
-       }
-
-       @Override
-       protected IComponentOnBeforeRenderListener 
createEventSubscriptionCollector()
-       {
-               eventSubscriptionCollector = 
super.createEventSubscriptionCollector();
-               return eventSubscriptionCollector;
+               getBroadcaster().initialize("wicket-atmosphere-tester", config);
        }
 
        @Override
@@ -61,6 +53,9 @@ public class TesterEventBus extends EventBus
                protected TesterBroadcasterFactory(AtmosphereConfig c)
                {
                        super(SimpleBroadcaster.class, 
BroadcasterLifeCyclePolicy.ATMOSPHERE_RESOURCE_POLICY.NEVER.name(), c);
+
+                       // expose myself as BroadcasterFactory.getDefault();
+                       factory = this;
                }
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/1037c696/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/tester/WicketAtmosphereTester.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/tester/WicketAtmosphereTester.java
 
b/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/tester/WicketAtmosphereTester.java
deleted file mode 100644
index 9ae8ad6..0000000
--- 
a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/tester/WicketAtmosphereTester.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.atmosphere.tester;
-
-import org.apache.wicket.Page;
-import org.apache.wicket.atmosphere.AtmosphereBehavior;
-import org.apache.wicket.protocol.http.WebApplication;
-import org.apache.wicket.util.tester.WicketTester;
-import org.atmosphere.cpr.AtmosphereRequest;
-import org.atmosphere.cpr.AtmosphereResource;
-import org.atmosphere.cpr.AtmosphereResourceImpl;
-import org.atmosphere.cpr.AtmosphereResponse;
-import org.atmosphere.handler.AtmosphereHandlerAdapter;
-import org.atmosphere.util.SimpleBroadcaster;
-
-/**
- *
- */
-public class WicketAtmosphereTester
-{
-       private final TesterEventBus eventBus;
-
-       public WicketAtmosphereTester(final WicketTester wicketTester, Page 
page)
-       {
-               WebApplication application = wicketTester.getApplication();
-               this.eventBus = new TesterEventBus(application);
-
-               AtmosphereBehavior atmosphereBehavior = new AtmosphereBehavior()
-               {
-                       @Override
-                       public void onRequest()
-                       {
-                               SimpleBroadcaster broadcaster = 
eventBus.getBroadcaster();
-
-                               AtmosphereResource atmosphereResource = new 
AtmosphereResourceImpl();
-                               AtmosphereRequest atmosphereRequest = 
AtmosphereRequest.wrap(wicketTester.getRequest());
-                               AtmosphereResponse atmosphereResponse = 
AtmosphereResponse.wrap(wicketTester.getResponse());
-                               TesterAsyncSupport asyncSupport = new 
TesterAsyncSupport();
-                               atmosphereResource.initialize(eventBus.config, 
broadcaster, atmosphereRequest, atmosphereResponse,
-                                               asyncSupport, new 
AtmosphereHandlerAdapter());
-
-                               atmosphereResource.setBroadcaster(broadcaster);
-                               
broadcaster.addAtmosphereResource(atmosphereResource);
-
-                               String uuid = atmosphereResource.uuid();
-                               Page page = getComponent().getPage();
-                               
eventBus.eventSubscriptionCollector.onBeforeRender(page);
-                               page.setMetaData(ATMOSPHERE_UUID, uuid);
-                               eventBus.registerPage(uuid, page);
-                       }
-               };
-               page.add(atmosphereBehavior);
-
-               wicketTester.executeBehavior(atmosphereBehavior);
-       }
-
-       public WicketAtmosphereTester post(Object payload)
-       {
-               eventBus.post(payload);
-               return this;
-       }
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/1037c696/wicket-experimental/wicket-atmosphere/src/test/java/org/apache/wicket/atmosphere/AtmosphereTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-atmosphere/src/test/java/org/apache/wicket/atmosphere/AtmosphereTest.java
 
b/wicket-experimental/wicket-atmosphere/src/test/java/org/apache/wicket/atmosphere/AtmosphereTest.java
index e8a5b30..1161fd6 100644
--- 
a/wicket-experimental/wicket-atmosphere/src/test/java/org/apache/wicket/atmosphere/AtmosphereTest.java
+++ 
b/wicket-experimental/wicket-atmosphere/src/test/java/org/apache/wicket/atmosphere/AtmosphereTest.java
@@ -19,7 +19,7 @@ package org.apache.wicket.atmosphere;
 import java.util.Date;
 
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.atmosphere.tester.WicketAtmosphereTester;
+import org.apache.wicket.atmosphere.tester.AtmosphereTester;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.tester.WicketTester;
 import org.junit.Assert;
@@ -31,7 +31,7 @@ import org.junit.Test;
 public class AtmosphereTest extends Assert
 {
        @Test
-       public void aa()
+       public void atmospherePush()
        {
                WicketTester tester = new WicketTester();
                HomePage page = new HomePage(new PageParameters())
@@ -54,9 +54,7 @@ public class AtmosphereTest extends Assert
                        }
                };
 
-               tester.startPage(page);
-
-               WicketAtmosphereTester waTester = new 
WicketAtmosphereTester(tester, page);
+               AtmosphereTester waTester = new AtmosphereTester(tester, page);
 
                Date payload = new Date();
                waTester.post(payload);

Reply via email to