You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2018/07/12 20:53:03 UTC

[3/3] wicket git commit: WICKET-6563 improved tests

WICKET-6563 improved tests


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

Branch: refs/heads/WICKET-6563
Commit: af606ac59fc2cd7d17c755579d61ee54928df1b9
Parents: 968f261
Author: Sven Meier <sv...@apache.org>
Authored: Thu Jul 12 22:52:46 2018 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Thu Jul 12 22:52:46 2018 +0200

----------------------------------------------------------------------
 .../org/apache/wicket/mock/MockPageStore.java   | 29 ++++++---
 .../wicket/pageStore/AbstractPageStoreTest.java | 14 +++++
 .../wicket/pageStore/RequestPageStoreTest.java  | 64 ++++++++++++++++++++
 3 files changed, 97 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/af606ac5/wicket-core/src/main/java/org/apache/wicket/mock/MockPageStore.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/mock/MockPageStore.java b/wicket-core/src/main/java/org/apache/wicket/mock/MockPageStore.java
index 4329140..eb1dd58 100644
--- a/wicket-core/src/main/java/org/apache/wicket/mock/MockPageStore.java
+++ b/wicket-core/src/main/java/org/apache/wicket/mock/MockPageStore.java
@@ -16,8 +16,8 @@
  */
 package org.apache.wicket.mock;
 
-import java.util.HashMap;
-import java.util.Map;
+import java.util.LinkedList;
+import java.util.List;
 
 import org.apache.wicket.page.IManageablePage;
 import org.apache.wicket.pageStore.IPageContext;
@@ -25,7 +25,7 @@ import org.apache.wicket.pageStore.IPageStore;
 
 public class MockPageStore implements IPageStore
 {
-	private final Map<Integer, IManageablePage> pages = new HashMap<>();
+	private final LinkedList<IManageablePage> pages = new LinkedList<>();
 
 	@Override
 	public void destroy()
@@ -33,17 +33,26 @@ public class MockPageStore implements IPageStore
 		pages.clear();
 	}
 
+	public List<IManageablePage> getPages()
+	{
+		return pages;
+	}
+
 	@Override
 	public IManageablePage getPage(IPageContext context, int id)
 	{
-		return pages.get(id);
+		for (IManageablePage page : pages) {
+			if (page .getPageId() == id) {
+				return page;
+			}
+		}
+		return null;
 	}
 
 	@Override
-	public void removePage(IPageContext context, final IManageablePage page) {
-		if (page != null) {
-			pages.remove(page.getPageId());
-		}
+	public void removePage(IPageContext context, final IManageablePage page)
+	{
+		pages.remove(page);
 	}
 
 	@Override
@@ -57,10 +66,10 @@ public class MockPageStore implements IPageStore
 	{
 		return true;
 	}
-	
+
 	@Override
 	public void addPage(IPageContext context, IManageablePage page)
 	{
-		pages.put(page.getPageId(), page);
+		pages.addLast(page);
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/af606ac5/wicket-core/src/test/java/org/apache/wicket/pageStore/AbstractPageStoreTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/pageStore/AbstractPageStoreTest.java b/wicket-core/src/test/java/org/apache/wicket/pageStore/AbstractPageStoreTest.java
index d662b5a..82c5344 100644
--- a/wicket-core/src/test/java/org/apache/wicket/pageStore/AbstractPageStoreTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/pageStore/AbstractPageStoreTest.java
@@ -98,6 +98,20 @@ public abstract class AbstractPageStoreTest extends Assert
 		assertNull(pageStore.getPage(context, pageId));
 	}
 
+	@Test
+	public void removeAllPages()
+	{
+		IPageContext context = new DummyPageContext(sessionId);
+		
+		pageStore.addPage(context, new MockPage(pageId));
+
+		assertNotNull(pageStore.getPage(context, pageId));
+
+		pageStore.removeAllPages(context);
+
+		assertNull(pageStore.getPage(context, pageId));
+	}
+
 	/**
 	 * Verify that at most {@code maxEntries} per session can be put in the store
 	 */

http://git-wip-us.apache.org/repos/asf/wicket/blob/af606ac5/wicket-core/src/test/java/org/apache/wicket/pageStore/RequestPageStoreTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/pageStore/RequestPageStoreTest.java b/wicket-core/src/test/java/org/apache/wicket/pageStore/RequestPageStoreTest.java
new file mode 100644
index 0000000..c2b340d
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/pageStore/RequestPageStoreTest.java
@@ -0,0 +1,64 @@
+/*
+ * 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.pageStore;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.wicket.MockPage;
+import org.apache.wicket.mock.MockPageStore;
+import org.junit.Test;
+
+/**
+ * Test for {@link RequestPageStore}
+ * 
+ * @author svenmeier
+ */
+public class RequestPageStoreTest
+{
+
+	@Test
+	public void test()
+	{
+		MockPageStore mockStore = new MockPageStore();
+		
+		DummyPageContext context = new DummyPageContext();
+
+		RequestPageStore store = new RequestPageStore(mockStore);
+		
+		MockPage page1 = new MockPage(2);
+		MockPage page2 = new MockPage(3);
+		MockPage page3 = new MockPage(4);
+		
+		store.addPage(context, page1);
+		store.addPage(context, page2);
+		store.addPage(context, page3);
+		
+		assertTrue("no pages delegated before detach", mockStore.getPages().isEmpty());
+		
+		store.detach(context);
+		
+		assertEquals("pages delegated on detach", 3, mockStore.getPages().size());
+		
+		mockStore.getPages().clear();
+		
+		assertNull("no page in request store", store.getPage(context, 2));
+		assertNull("no page in request store", store.getPage(context, 3));
+		assertNull("no page in request store", store.getPage(context, 4));
+	}
+}