You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2018/09/26 13:39:57 UTC

[27/45] wicket git commit: wicket-core: Migrate to Junit 5

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java b/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
index 8be4fe8..a8d9178 100644
--- a/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
@@ -16,13 +16,14 @@
  */
 package org.apache.wicket;
 
-import static org.hamcrest.CoreMatchers.equalToObject;
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.nullValue;
-import static org.hamcrest.CoreMatchers.sameInstance;
-import static org.hamcrest.Matchers.greaterThanOrEqualTo;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 import java.lang.reflect.Field;
 import java.util.Iterator;
@@ -43,11 +44,10 @@ import org.apache.wicket.markup.html.panel.EmptyPanel;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 @SuppressWarnings({ "javadoc", "serial" })
-public class MarkupContainerTest extends WicketTestCase
+class MarkupContainerTest extends WicketTestCase
 {
 	private static final int NUMBER_OF_CHILDREN_FOR_A_MAP = MarkupContainer.MAPIFY_THRESHOLD + 1;
 
@@ -55,7 +55,7 @@ public class MarkupContainerTest extends WicketTestCase
 	 * Make sure components are iterated in the order they were added. Required e.g. for Repeaters
 	 */
 	@Test
-	public void iteratorOrder()
+	void iteratorOrder()
 	{
 		MarkupContainer container = new WebMarkupContainer("component");
 		for (int i = 0; i < 10; i++)
@@ -70,13 +70,13 @@ public class MarkupContainerTest extends WicketTestCase
 	}
 
 	@Test
-	public void markupId() throws Exception
+	void markupId() throws Exception
 	{
 		executeTest(MarkupIdTestPage.class, "MarkupIdTestPageExpectedResult.html");
 	}
 
 	@Test
-	public void get()
+	void get()
 	{
 		WebMarkupContainer a = new WebMarkupContainer("a");
 		WebMarkupContainer b = new WebMarkupContainer("b");
@@ -124,18 +124,20 @@ public class MarkupContainerTest extends WicketTestCase
 	/**
 	 * https://issues.apache.org/jira/browse/WICKET-4006
 	 */
-	@Test(expected = IllegalArgumentException.class)
-	public void addMyself()
+	@Test
+	void addMyself()
 	{
 		WebMarkupContainer me = new WebMarkupContainer("a");
-		me.add(me);
+		assertThrows(IllegalArgumentException.class, () -> {
+			me.add(me);
+		});
 	}
 
 	/**
 	 * https://issues.apache.org/jira/browse/WICKET-5911
 	 */
 	@Test
-	public void rerenderAfterRenderFailure()
+	void rerenderAfterRenderFailure()
 	{
 		FirstRenderFailsPage page = new FirstRenderFailsPage();
 		try
@@ -153,7 +155,7 @@ public class MarkupContainerTest extends WicketTestCase
 	}
 
 	@Test
-	public void hierarchyChangeDuringRender()
+	void hierarchyChangeDuringRender()
 	{
 		HierarchyChangePage page = new HierarchyChangePage();
 		try
@@ -169,31 +171,11 @@ public class MarkupContainerTest extends WicketTestCase
 		}
 	}
 
-	private static class HierarchyChangePage extends WebPage
-		implements
-			IMarkupResourceStreamProvider
-	{
-
-		@Override
-		protected void onRender()
-		{
-			// change hierarchy during render
-			add(new Label("child"));
-		}
-
-		@Override
-		public IResourceStream getMarkupResourceStream(MarkupContainer container,
-			Class<?> containerClass)
-		{
-			return new StringResourceStream("<html><body></body></html>");
-		}
-	}
-
 	/**
 	 * https://issues.apache.org/jira/browse/WICKET-4012
 	 */
 	@Test
-	public void afterRenderJustOnce()
+	void afterRenderJustOnce()
 	{
 		AfterRenderJustOncePage page = new AfterRenderJustOncePage();
 		tester.startPage(page);
@@ -205,114 +187,22 @@ public class MarkupContainerTest extends WicketTestCase
 	 * https://issues.apache.org/jira/browse/WICKET-4016
 	 */
 	@Test
-	public void callToStringFromConstructor()
+	void callToStringFromConstructor()
 	{
 		ToStringComponent page = new ToStringComponent();
 	}
 
-	private static class ToStringComponent extends WebMarkupContainer
-	{
-		private ToStringComponent()
-		{
-			super("id");
-			toString(true);
-		}
-	}
-
-	private static class AfterRenderJustOncePage extends WebPage
-		implements
-			IMarkupResourceStreamProvider
-	{
-		private int afterRenderCalls = 0;
-
-		private AfterRenderJustOncePage()
-		{
-
-			WebMarkupContainer a1 = new WebMarkupContainer("a1");
-			add(a1);
-
-			WebMarkupContainer a2 = new WebMarkupContainer("a2");
-			a1.add(a2);
-
-			WebMarkupContainer a3 = new WebMarkupContainer("a3")
-			{
-
-				@Override
-				protected void onAfterRender()
-				{
-					super.onAfterRender();
-					afterRenderCalls++;
-				}
-
-			};
-			a2.add(a3);
-		}
-
-		@Override
-		public IResourceStream getMarkupResourceStream(MarkupContainer container,
-			Class<?> containerClass)
-		{
-			return new StringResourceStream(
-				"<html><body><div wicket:id='a1'><div wicket:id='a2'><div wicket:id='a3'></div></div></div></body></html>");
-		}
-	}
-
-	private static class FirstRenderFailsPage extends WebPage
-		implements
-			IMarkupResourceStreamProvider
-	{
-		private boolean firstRender = true;
-
-		private int beforeRenderCalls = 0;
-
-		private FirstRenderFailsPage()
-		{
-			WebMarkupContainer a1 = new WebMarkupContainer("a1")
-			{
-				@Override
-				protected void onBeforeRender()
-				{
-					super.onBeforeRender();
-
-					beforeRenderCalls++;
-
-					if (firstRender)
-					{
-						firstRender = false;
-						throw new WicketRuntimeException();
-					}
-				}
-			};
-			add(a1);
-		}
-
-		@Override
-		public IResourceStream getMarkupResourceStream(MarkupContainer container,
-			Class<?> containerClass)
-		{
-			return new StringResourceStream("<html><body><div wicket:id='a1'></div></body></html>");
-		}
-	}
-
-
-	/*
-	 * Iterator tests
-	 * 
-	 * The tests below are specific for testing addition and removal of children while maintaining
-	 * the correct order of iterators without throwing ConcurrentModificationException.
-	 */
-
 	@Test
-	public void noChildShouldNotIterate()
+	void noChildShouldNotIterate()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
 		Iterator<Component> iterator = wmc.iterator();
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void noChildAddingChildAfterIteratorAcquiredShouldIterateAndReturnNewChild()
+	void noChildAddingChildAfterIteratorAcquiredShouldIterateAndReturnNewChild()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
@@ -321,15 +211,15 @@ public class MarkupContainerTest extends WicketTestCase
 		Label label1 = new Label("label1", "Label1");
 		wmc.add(label1);
 
-		assertThat(wmc.size(), is(1));
+		assertEquals(1, wmc.size());
 
-		Assert.assertThat(iterator.hasNext(), is(true));
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(true, iterator.hasNext());
+		assertEquals(label1, iterator.next());
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void noChildAddingNChildrenAfterIteratorAcquiredShouldIterateAndReturnNewChildren()
+	void noChildAddingNChildrenAfterIteratorAcquiredShouldIterateAndReturnNewChildren()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
@@ -337,27 +227,27 @@ public class MarkupContainerTest extends WicketTestCase
 
 		addNChildren(wmc, NUMBER_OF_CHILDREN_FOR_A_MAP);
 
-		assertThat(wmc.size(), is(NUMBER_OF_CHILDREN_FOR_A_MAP));
+		assertEquals(NUMBER_OF_CHILDREN_FOR_A_MAP, wmc.size());
 
 		Label label1 = new Label("label1", "Label1");
 		wmc.add(label1);
 
-		Assert.assertThat(iterator.hasNext(), is(true));
+		assertEquals(true, iterator.hasNext());
 
 		takeNChildren(iterator, NUMBER_OF_CHILDREN_FOR_A_MAP);
 
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(label1, iterator.next());
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void noChildAddingNChildrenAfterIteratorAcquiredShouldIterateAndReturnNewChildren2()
+	void noChildAddingNChildrenAfterIteratorAcquiredShouldIterateAndReturnNewChildren2()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
 		addNChildren(wmc, NUMBER_OF_CHILDREN_FOR_A_MAP);
 
-		assertThat(wmc.size(), is(NUMBER_OF_CHILDREN_FOR_A_MAP));
+		assertEquals(NUMBER_OF_CHILDREN_FOR_A_MAP, wmc.size());
 
 		Iterator<Component> iterator = wmc.iterator();
 
@@ -366,13 +256,21 @@ public class MarkupContainerTest extends WicketTestCase
 		Label label1 = new Label("label1", "Label1");
 		wmc.add(label1);
 
-		Assert.assertThat(iterator.hasNext(), is(true));
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(true, iterator.hasNext());
+		assertEquals(label1, iterator.next());
+		assertEquals(false, iterator.hasNext());
 	}
 
+
+	/*
+	 * Iterator tests
+	 *
+	 * The tests below are specific for testing addition and removal of children while maintaining
+	 * the correct order of iterators without throwing ConcurrentModificationException.
+	 */
+
 	@Test
-	public void noChildAddingAndRemoveChildAfterIteratorAcquiredShouldNotIterate()
+	void noChildAddingAndRemoveChildAfterIteratorAcquiredShouldNotIterate()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1 = new Label("label1", "Label1");
@@ -382,13 +280,13 @@ public class MarkupContainerTest extends WicketTestCase
 		wmc.add(label1);
 		wmc.remove(label1);
 
-		assertThat(wmc.size(), is(0));
+		assertEquals(0, wmc.size());
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void addingNewChildAfterIterationHasStartedShouldIterateNewChild()
+	void addingNewChildAfterIterationHasStartedShouldIterateNewChild()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
@@ -401,21 +299,21 @@ public class MarkupContainerTest extends WicketTestCase
 		takeNChildren(iterator, 1);
 
 		// there are no more children to iterate
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 
 		// add the new child
 		Label newChild = new Label("label1", "Label1");
 		wmc.add(newChild);
 
-		assertThat(wmc.size(), is(2));
+		assertEquals(2, wmc.size());
 
 		// ensure that the newChild is up next (as it was added)
-		Assert.assertThat(iterator.next(), is(equalToObject(newChild)));
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(newChild, iterator.next());
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void replacingTheFirstChildAfterIteratingDoesntIterateTheNewChild()
+	void replacingTheFirstChildAfterIteratingDoesntIterateTheNewChild()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1 = new Label("label1", "Label1");
@@ -436,15 +334,15 @@ public class MarkupContainerTest extends WicketTestCase
 		wmc.replace(newChild);
 
 		// the next child is still label 2
-		assertThat(iterator.next(), is(sameInstance(label2)));
+		assertSame(label2, iterator.next());
 
 		// and the new child is not iterated (was replaced before the current position of the
 		// iterator).
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void removingComponentsDuringIterationDoesntFail()
+	void removingComponentsDuringIterationDoesntFail()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
@@ -463,9 +361,9 @@ public class MarkupContainerTest extends WicketTestCase
 		// start iterating the 5 children
 		Iterator<Component> iterator = wmc.iterator();
 
-		assertThat(iterator.next(), is(sameInstance(label1)));
-		assertThat(iterator.next(), is(sameInstance(label2)));
-		assertThat(iterator.next(), is(sameInstance(label3)));
+		assertSame(label1, iterator.next());
+		assertSame(label2, iterator.next());
+		assertSame(label3, iterator.next());
 
 		// remove the current, previous and next children
 		wmc.remove(label3);
@@ -473,14 +371,14 @@ public class MarkupContainerTest extends WicketTestCase
 		wmc.remove(label4);
 
 		// ensure that the next iterated child is the 5th label
-		assertThat(iterator.next(), is(sameInstance(label5)));
+		assertSame(label5, iterator.next());
 
 		// and that there are no more children to iterate
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void childrenBecomesListWhenMoreThanOneChild() throws Exception
+	void childrenBecomesListWhenMoreThanOneChild() throws Exception
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
@@ -489,11 +387,11 @@ public class MarkupContainerTest extends WicketTestCase
 		Field childrenField = MarkupContainer.class.getDeclaredField("children");
 		childrenField.setAccessible(true);
 		Object field = childrenField.get(wmc);
-		assertThat(field, is(instanceOf(List.class)));
+		assertThat(field).isInstanceOf(List.class);
 	}
 
 	@Test
-	public void childrenListBecomesMapWhenThresholdPassed() throws Exception
+	void childrenListBecomesMapWhenThresholdPassed() throws Exception
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
@@ -505,7 +403,7 @@ public class MarkupContainerTest extends WicketTestCase
 	}
 
 	@Test
-	public void childrenBecomesLinkedMapWhenThresholdPassed() throws Exception
+	void childrenBecomesLinkedMapWhenThresholdPassed() throws Exception
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
@@ -515,7 +413,7 @@ public class MarkupContainerTest extends WicketTestCase
 	}
 
 	@Test
-	public void linkedMapChildrenBecomesChild()
+	void linkedMapChildrenBecomesChild()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
@@ -531,7 +429,7 @@ public class MarkupContainerTest extends WicketTestCase
 	}
 
 	@Test
-	public void listChildrenBecomesChild()
+	void listChildrenBecomesChild()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
@@ -547,7 +445,7 @@ public class MarkupContainerTest extends WicketTestCase
 	}
 
 	@Test
-	public void geenIdee3() throws Exception
+	void geenIdee3() throws Exception
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
@@ -557,16 +455,16 @@ public class MarkupContainerTest extends WicketTestCase
 
 		removeNChildren(iterator, NUMBER_OF_CHILDREN_FOR_A_MAP);
 
-		assertThat(iterator.hasNext(), is(true));
-		assertThat(wmc.size(), is(1));
+		assertEquals(true, iterator.hasNext());
+		assertEquals(1, wmc.size());
 
 		iterator.next();
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void noChildAddIterateAndRemoveChildShouldIterateChild()
+	void noChildAddIterateAndRemoveChildShouldIterateChild()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1 = new Label("label1", "Label1");
@@ -574,14 +472,14 @@ public class MarkupContainerTest extends WicketTestCase
 		Iterator<Component> iterator = wmc.iterator();
 
 		wmc.add(label1);
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
+		assertEquals(label1, iterator.next());
 
 		wmc.remove(label1);
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void noChildAddIterateAndRemoveAndAddSameChildShouldIterateChildTwice()
+	void noChildAddIterateAndRemoveAndAddSameChildShouldIterateChildTwice()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1 = new Label("label1", "Label1");
@@ -589,20 +487,20 @@ public class MarkupContainerTest extends WicketTestCase
 		Iterator<Component> iterator = wmc.iterator();
 
 		wmc.add(label1);
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
+		assertEquals(label1, iterator.next());
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 
 		wmc.remove(label1);
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 
 		wmc.add(label1);
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
+		assertEquals(label1, iterator.next());
 	}
 
 	@Test
-	public void noChildAddIterateAndRemoveAndAddDifferentChildShouldIterateNewChild()
+	void noChildAddIterateAndRemoveAndAddDifferentChildShouldIterateNewChild()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1 = new Label("label1", "Label1");
@@ -611,20 +509,20 @@ public class MarkupContainerTest extends WicketTestCase
 		Iterator<Component> iterator = wmc.iterator();
 
 		wmc.add(label1);
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
+		assertEquals(label1, iterator.next());
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 
 		wmc.remove(label1);
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 
 		wmc.add(label2);
-		Assert.assertThat(iterator.next(), is(equalToObject(label2)));
+		assertEquals(label2, iterator.next());
 	}
 
 	@Test
-	public void noChildAddingAndReplaceChildAfterIteratorAcquiredShouldIterateAndReturnNewReplacementChild()
+	void noChildAddingAndReplaceChildAfterIteratorAcquiredShouldIterateAndReturnNewReplacementChild()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1 = new Label("label1", "Label1");
@@ -635,13 +533,13 @@ public class MarkupContainerTest extends WicketTestCase
 		wmc.add(label1);
 		wmc.replace(label2);
 
-		Assert.assertThat(iterator.hasNext(), is(true));
-		Assert.assertThat(iterator.next(), is(equalToObject(label2)));
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(true, iterator.hasNext());
+		assertEquals(label2, iterator.next());
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void singleChildIterateOneChild()
+	void singleChildIterateOneChild()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1;
@@ -649,13 +547,13 @@ public class MarkupContainerTest extends WicketTestCase
 
 		Iterator<Component> iterator = wmc.iterator();
 
-		Assert.assertThat(iterator.hasNext(), is(true));
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(true, iterator.hasNext());
+		assertEquals(label1, iterator.next());
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void singleChildShouldAllowReplacingChildAfterIterationHasStarted()
+	void singleChildShouldAllowReplacingChildAfterIterationHasStarted()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Component label1 = new Label("label1", "Label1");
@@ -667,13 +565,13 @@ public class MarkupContainerTest extends WicketTestCase
 
 		wmc.replace(label2);
 
-		Assert.assertThat(iterator.hasNext(), is(true));
-		Assert.assertThat(iterator.next(), is(sameInstance(label2)));
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(true, iterator.hasNext());
+		assertSame(label2, iterator.next());
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void singleChildShouldAllowReplacingVisitedChildButNotRevisitReplacementChild()
+	void singleChildShouldAllowReplacingVisitedChildButNotRevisitReplacementChild()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1 = new Label("label1", "Label1");
@@ -682,16 +580,16 @@ public class MarkupContainerTest extends WicketTestCase
 
 		Iterator<Component> iterator = wmc.iterator();
 
-		Assert.assertThat(iterator.hasNext(), is(true));
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
+		assertEquals(true, iterator.hasNext());
+		assertEquals(label1, iterator.next());
 
 		wmc.replace(label2);
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void multipleChildIteratorRetainsOrderOfAddition()
+	void multipleChildIteratorRetainsOrderOfAddition()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1;
@@ -703,15 +601,15 @@ public class MarkupContainerTest extends WicketTestCase
 
 		Iterator<Component> iterator = wmc.iterator();
 
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
-		Assert.assertThat(iterator.next(), is(equalToObject(label2)));
-		Assert.assertThat(iterator.next(), is(equalToObject(label3)));
+		assertEquals(label1, iterator.next());
+		assertEquals(label2, iterator.next());
+		assertEquals(label3, iterator.next());
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void iteratorShouldAllowAddingComponentAfterIterationStarted()
+	void iteratorShouldAllowAddingComponentAfterIterationStarted()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1;
@@ -722,17 +620,17 @@ public class MarkupContainerTest extends WicketTestCase
 
 		Iterator<Component> iterator = wmc.iterator();
 
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
-		Assert.assertThat(iterator.next(), is(equalToObject(label2)));
+		assertEquals(label1, iterator.next());
+		assertEquals(label2, iterator.next());
 
 		wmc.add(label3 = new Label("label3", "Label3"));
-		Assert.assertThat(iterator.next(), is(equalToObject(label3)));
+		assertEquals(label3, iterator.next());
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void iteratorShouldAllowRemovingComponentAfterIterationStarted0()
+	void iteratorShouldAllowRemovingComponentAfterIterationStarted0()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1;
@@ -746,14 +644,14 @@ public class MarkupContainerTest extends WicketTestCase
 
 		wmc.remove(label1);
 
-		Assert.assertThat(iterator.next(), is(equalToObject(label2)));
-		Assert.assertThat(iterator.next(), is(equalToObject(label3)));
+		assertEquals(label2, iterator.next());
+		assertEquals(label3, iterator.next());
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void iteratorShouldAllowRemovingComponentAfterIterationStarted1()
+	void iteratorShouldAllowRemovingComponentAfterIterationStarted1()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1 = new Label("label1", "Label1");
@@ -765,16 +663,16 @@ public class MarkupContainerTest extends WicketTestCase
 
 		Iterator<Component> iterator = wmc.iterator();
 
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
+		assertEquals(label1, iterator.next());
 		wmc.remove(label1);
-		Assert.assertThat(iterator.next(), is(equalToObject(label2)));
-		Assert.assertThat(iterator.next(), is(equalToObject(label3)));
+		assertEquals(label2, iterator.next());
+		assertEquals(label3, iterator.next());
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void iteratorShouldAllowRemovingComponentAfterIterationStarted2()
+	void iteratorShouldAllowRemovingComponentAfterIterationStarted2()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1;
@@ -786,16 +684,16 @@ public class MarkupContainerTest extends WicketTestCase
 
 		Iterator<Component> iterator = wmc.iterator();
 
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
-		Assert.assertThat(iterator.next(), is(equalToObject(label2)));
+		assertEquals(label1, iterator.next());
+		assertEquals(label2, iterator.next());
 		wmc.remove(label1);
-		Assert.assertThat(iterator.next(), is(equalToObject(label3)));
+		assertEquals(label3, iterator.next());
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void iteratorShouldAllowRemovingComponentAfterIterationStarted3()
+	void iteratorShouldAllowRemovingComponentAfterIterationStarted3()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1;
@@ -807,16 +705,16 @@ public class MarkupContainerTest extends WicketTestCase
 
 		Iterator<Component> iterator = wmc.iterator();
 
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
-		Assert.assertThat(iterator.next(), is(equalToObject(label2)));
-		Assert.assertThat(iterator.next(), is(equalToObject(label3)));
+		assertEquals(label1, iterator.next());
+		assertEquals(label2, iterator.next());
+		assertEquals(label3, iterator.next());
 		wmc.remove(label1);
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void iteratorShouldAllowReplacingComponentAfterIterationStarted0()
+	void iteratorShouldAllowReplacingComponentAfterIterationStarted0()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1;
@@ -829,14 +727,14 @@ public class MarkupContainerTest extends WicketTestCase
 
 		wmc.replace(label3 = new Label("label1", "Label3"));
 
-		Assert.assertThat(iterator.next(), is(equalToObject(label3)));
-		Assert.assertThat(iterator.next(), is(equalToObject(label2)));
+		assertEquals(label3, iterator.next());
+		assertEquals(label2, iterator.next());
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void iteratorShouldAllowReplacingComponentAfterIterationStarted1()
+	void iteratorShouldAllowReplacingComponentAfterIterationStarted1()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1;
@@ -849,14 +747,14 @@ public class MarkupContainerTest extends WicketTestCase
 
 		wmc.replace(label3 = new Label("label1", "Label3"));
 
-		Assert.assertThat(iterator.next(), is(equalToObject(label3)));
-		Assert.assertThat(iterator.next(), is(equalToObject(label2)));
+		assertEquals(label3, iterator.next());
+		assertEquals(label2, iterator.next());
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void iteratorShouldAllowReplacingComponentAfterIterationStarted()
+	void iteratorShouldAllowReplacingComponentAfterIterationStarted()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1;
@@ -867,16 +765,16 @@ public class MarkupContainerTest extends WicketTestCase
 
 		Iterator<Component> iterator = wmc.iterator();
 
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
-		Assert.assertThat(iterator.next(), is(equalToObject(label2)));
+		assertEquals(label1, iterator.next());
+		assertEquals(label2, iterator.next());
 
 		wmc.replace(label3 = new Label("label1", "Label3"));
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void iteratorShouldAllowReplacingComponentAfterIterationStarted24()
+	void iteratorShouldAllowReplacingComponentAfterIterationStarted24()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		Label label1;
@@ -889,19 +787,19 @@ public class MarkupContainerTest extends WicketTestCase
 
 		Iterator<Component> iterator = wmc.iterator();
 
-		Assert.assertThat(iterator.next(), is(equalToObject(label1)));
+		assertEquals(label1, iterator.next());
 
 		wmc.replace(label3 = new Label("label2", "Label3"));
 
-		Assert.assertThat(iterator.next(), is(equalToObject(label3)));
+		assertEquals(label3, iterator.next());
 
 		takeNChildren(iterator, NUMBER_OF_CHILDREN_FOR_A_MAP);
 
-		Assert.assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void noChildLeftBehindRemoveEach()
+	void noChildLeftBehindRemoveEach()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		addNChildren(wmc, NUMBER_OF_CHILDREN_FOR_A_MAP);
@@ -912,11 +810,11 @@ public class MarkupContainerTest extends WicketTestCase
 			iterator.next();
 			iterator.remove();
 		}
-		assertThat(wmc.size(), is(0));
+		assertEquals(0, wmc.size());
 	}
 
 	@Test
-	public void noChildLeftBehindRemoveAll()
+	void noChildLeftBehindRemoveAll()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		addNChildren(wmc, NUMBER_OF_CHILDREN_FOR_A_MAP);
@@ -925,12 +823,12 @@ public class MarkupContainerTest extends WicketTestCase
 
 		wmc.removeAll();
 
-		assertThat(wmc.size(), is(0));
-		assertThat(iterator.hasNext(), is(false));
+		assertEquals(0, wmc.size());
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void noChildLeftBehindRemoveAll2()
+	void noChildLeftBehindRemoveAll2()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		addNChildren(wmc, NUMBER_OF_CHILDREN_FOR_A_MAP);
@@ -941,37 +839,37 @@ public class MarkupContainerTest extends WicketTestCase
 
 		wmc.removeAll();
 
-		assertThat(wmc.size(), is(0));
-		assertThat(iterator.hasNext(), is(false));
+		assertEquals(0, wmc.size());
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void ensureSerializationDeserializationWorks()
+	void ensureSerializationDeserializationWorks()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
 		Iterator<Component> iterator = wmc.iterator();
 
 		addNChildren(wmc, NUMBER_OF_CHILDREN_FOR_A_MAP);
-		assertThat(wmc.size(), is(NUMBER_OF_CHILDREN_FOR_A_MAP));
+		assertEquals(NUMBER_OF_CHILDREN_FOR_A_MAP, wmc.size());
 
-		assertThat(WicketObjects.cloneObject(wmc), is(not(nullValue())));
+		assertNotNull(WicketObjects.cloneObject(wmc));
 
 		removeNChildren(iterator, 1);
-		assertThat(wmc.size(), is(NUMBER_OF_CHILDREN_FOR_A_MAP - 1));
-		assertThat(WicketObjects.cloneObject(wmc), is(not(nullValue())));
+		assertEquals(NUMBER_OF_CHILDREN_FOR_A_MAP - 1, wmc.size());
+		assertNotNull(WicketObjects.cloneObject(wmc));
 
 		removeNChildren(iterator, NUMBER_OF_CHILDREN_FOR_A_MAP - 2);
-		assertThat(WicketObjects.cloneObject(wmc), is(not(nullValue())));
+		assertNotNull(WicketObjects.cloneObject(wmc));
 
-		assertThat(wmc.size(), is(1));
+		assertEquals(1, wmc.size());
 		removeNChildren(iterator, 1);
-		assertThat(wmc.size(), is(0));
-		assertThat(WicketObjects.cloneObject(wmc), is(not(nullValue())));
+		assertEquals(0, wmc.size());
+		assertNotNull(WicketObjects.cloneObject(wmc));
 	}
 
 	@Test
-	public void detachDuringIterationWorks()
+	void detachDuringIterationWorks()
 	{
 		int halfOfChildren = NUMBER_OF_CHILDREN_FOR_A_MAP / 2;
 		int numberOfRemainingChildren = halfOfChildren + NUMBER_OF_CHILDREN_FOR_A_MAP % 2;
@@ -987,11 +885,11 @@ public class MarkupContainerTest extends WicketTestCase
 
 		takeNChildren(iterator, numberOfRemainingChildren);
 
-		assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	@Test
-	public void detachDuringIterationWithRemovalsSucceeds()
+	void detachDuringIterationWithRemovalsSucceeds()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 
@@ -1002,15 +900,15 @@ public class MarkupContainerTest extends WicketTestCase
 		wmc.detach();
 		takeNChildren(iterator, 1);
 
-		assertThat(iterator.hasNext(), is(false));
-		assertThat(wmc.size(), is(1));
+		assertEquals(false, iterator.hasNext());
+		assertEquals(1, wmc.size());
 	}
 
 	/**
 	 * Tests whether two iterators being used simultaneously keep correct score of where they are.
 	 */
 	@Test
-	public void twoIteratorsWorkInTandem()
+	void twoIteratorsWorkInTandem()
 	{
 		int n = NUMBER_OF_CHILDREN_FOR_A_MAP * 2;
 
@@ -1037,8 +935,8 @@ public class MarkupContainerTest extends WicketTestCase
 		}
 
 		// after 2*N removals there should not be any child left
-		assertThat(iterator1.hasNext(), is(false));
-		assertThat(iterator2.hasNext(), is(false));
+		assertEquals(false, iterator1.hasNext());
+		assertEquals(false, iterator2.hasNext());
 	}
 
 	/**
@@ -1046,7 +944,7 @@ public class MarkupContainerTest extends WicketTestCase
 	 * state for the iterator.
 	 */
 	@Test
-	public void detachWithOneIteratorOneChild()
+	void detachWithOneIteratorOneChild()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		addNChildren(wmc, 1);
@@ -1058,7 +956,7 @@ public class MarkupContainerTest extends WicketTestCase
 
 		wmc.detach();
 
-		assertThat(iterator1.hasNext(), is(false));
+		assertEquals(false, iterator1.hasNext());
 	}
 
 	/**
@@ -1066,7 +964,7 @@ public class MarkupContainerTest extends WicketTestCase
 	 * has the correct state for the iterator.
 	 */
 	@Test
-	public void detachWithOneIteratorOneChildRemovedAndAdded()
+	void detachWithOneIteratorOneChildRemovedAndAdded()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		addNChildren(wmc, 1);
@@ -1078,19 +976,19 @@ public class MarkupContainerTest extends WicketTestCase
 
 		addNChildren(wmc, 1);
 
-		assertThat(iterator1.hasNext(), is(true));
+		assertEquals(true, iterator1.hasNext());
 
 		wmc.detach();
 
-		assertThat(iterator1.hasNext(), is(true));
-		assertThat(iterator1.next(), is(not(nullValue())));
+		assertEquals(true, iterator1.hasNext());
+		assertNotNull(iterator1.next());
 	}
 
 	/**
 	 * Tests the case when one child is removed from a list the iterator still works after a detach.
 	 */
 	@Test
-	public void detachWithOneIteratorTwoChildren()
+	void detachWithOneIteratorTwoChildren()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		addNChildren(wmc, 2);
@@ -1100,19 +998,19 @@ public class MarkupContainerTest extends WicketTestCase
 		iterator1.next();
 		iterator1.remove();
 
-		assertThat(iterator1.hasNext(), is(true));
+		assertEquals(true, iterator1.hasNext());
 
 		wmc.detach();
 
-		assertThat(iterator1.hasNext(), is(true));
-		assertThat(iterator1.next(), is(not(nullValue())));
+		assertEquals(true, iterator1.hasNext());
+		assertNotNull(iterator1.next());
 	}
 
 	/**
 	 * Tests whether when the children is a list, removal and iteration still work after a detach.
 	 */
 	@Test
-	public void detachWithOneIteratorWithListForChildren()
+	void detachWithOneIteratorWithListForChildren()
 	{
 		WebMarkupContainer wmc = new WebMarkupContainer("id");
 		addNChildren(wmc, NUMBER_OF_CHILDREN_FOR_A_MAP - 2);
@@ -1128,14 +1026,14 @@ public class MarkupContainerTest extends WicketTestCase
 		wmc.detach();
 
 		takeNChildren(iterator, NUMBER_OF_CHILDREN_FOR_A_MAP - 4);
-		assertThat(iterator.hasNext(), is(false));
+		assertEquals(false, iterator.hasNext());
 	}
 
 	/**
 	 * Tests whether when the children is a map, removal and iteration still work after a detach.
 	 */
 	@Test
-	public void detachWithOneIteratorsWithMapForChildren()
+	void detachWithOneIteratorsWithMapForChildren()
 	{
 		int n = NUMBER_OF_CHILDREN_FOR_A_MAP * 2;
 
@@ -1157,11 +1055,11 @@ public class MarkupContainerTest extends WicketTestCase
 			iterator1.next();
 			iterator1.remove();
 		}
-		assertThat(iterator1.hasNext(), is(false));
+		assertEquals(false, iterator1.hasNext());
 	}
 
 	@Test
-	public void detachWithTwoIteratorsAndRemovals()
+	void detachWithTwoIteratorsAndRemovals()
 	{
 		int n = NUMBER_OF_CHILDREN_FOR_A_MAP * 2;
 
@@ -1194,7 +1092,7 @@ public class MarkupContainerTest extends WicketTestCase
 	}
 
 	@Test
-	public void detachWithTwoIteratorsAndRemovals2()
+	void detachWithTwoIteratorsAndRemovals2()
 	{
 		int n = NUMBER_OF_CHILDREN_FOR_A_MAP * 2;
 
@@ -1228,13 +1126,13 @@ public class MarkupContainerTest extends WicketTestCase
 				iterator.remove();
 			}
 		}
-		assertThat(iterator1.hasNext(), is(false));
-		assertThat(iterator2.hasNext(), is(false));
+		assertEquals(false, iterator1.hasNext());
+		assertEquals(false, iterator2.hasNext());
 	}
 
 	/**
 	 * Asserts that the children property of the {@code wmc} is of a particular {@code type}.
-	 * 
+	 *
 	 * @param wmc
 	 *            the web markup container whose children property is to be checked
 	 * @param type
@@ -1247,7 +1145,7 @@ public class MarkupContainerTest extends WicketTestCase
 			Field childrenField = MarkupContainer.class.getDeclaredField("children");
 			childrenField.setAccessible(true);
 			Object field = childrenField.get(wmc);
-			assertThat(field, is(instanceOf(type)));
+			assertThat(field).isInstanceOf(type);
 		}
 		catch (Exception e)
 		{
@@ -1257,7 +1155,7 @@ public class MarkupContainerTest extends WicketTestCase
 
 	/**
 	 * Adds {@code numberOfChildrenToAdd} anonymous children to the {@code parent}.
-	 * 
+	 *
 	 * @param parent
 	 *            the parent to add the children to
 	 * @param numberOfChildrenToAdd
@@ -1265,7 +1163,7 @@ public class MarkupContainerTest extends WicketTestCase
 	 */
 	private void addNChildren(WebMarkupContainer parent, int numberOfChildrenToAdd)
 	{
-		assertThat(numberOfChildrenToAdd, is(greaterThanOrEqualTo(0)));
+		assertThat(numberOfChildrenToAdd).isGreaterThanOrEqualTo(0);
 		int start = parent.size();
 		for (int i = 0; i < numberOfChildrenToAdd; i++)
 		{
@@ -1277,10 +1175,10 @@ public class MarkupContainerTest extends WicketTestCase
 	/**
 	 * Removes {@code numberOfChildrenToRemove} anonymous children from the parent using the
 	 * {@code iterator}.
-	 * 
+	 *
 	 * @param iterator
 	 *            the iterator to remove the children with
-	 * @param numberOfChildrenToAdd
+	 * @param numberOfChildrenToRemove
 	 *            the number of children
 	 */
 	private void removeNChildren(Iterator<Component> iterator, int numberOfChildrenToRemove)
@@ -1294,7 +1192,7 @@ public class MarkupContainerTest extends WicketTestCase
 
 	/**
 	 * Progresses the {@code iterator} with {@code numberOfChildrenToTake} anonymous children.
-	 * 
+	 *
 	 * @param iterator
 	 *            the iterator to progress
 	 * @param numberOfChildrenToTake
@@ -1307,50 +1205,167 @@ public class MarkupContainerTest extends WicketTestCase
 	}
 
 	@Test
-	public void stream()
+	void stream()
 	{
 		LoginPage loginPage = new LoginPage();
-		Optional<Component> first = loginPage.stream().filter(c -> c.getId().equals("form"))
+		Optional<Component> first = loginPage.stream()
+			.filter(c -> c.getId().equals("form"))
 			.findFirst();
-		assertThat(first.isPresent(), is(false));
+		assertEquals(false, first.isPresent());
 
 		loginPage.add(new Form<>("form"));
-		Optional<Component> second = loginPage.stream().filter(c -> c.getId().equals("form"))
+		Optional<Component> second = loginPage.stream()
+			.filter(c -> c.getId().equals("form"))
 			.findFirst();
-		assertThat(second.isPresent(), is(true));
+		assertEquals(true, second.isPresent());
 
 		loginPage.add(new WebMarkupContainer("wmc"));
 
-		Optional<Form> form = loginPage.stream().filter(Form.class::isInstance)
-			.map(Form.class::cast).findFirst();
-		assertThat(form.isPresent(), is(true));
+		Optional<Form> form = loginPage.stream()
+			.filter(Form.class::isInstance)
+			.map(Form.class::cast)
+			.findFirst();
+		assertEquals(true, form.isPresent());
 
 		Optional<WebMarkupContainer> wmc = loginPage.stream()
-			.filter(WebMarkupContainer.class::isInstance).map(WebMarkupContainer.class::cast)
+			.filter(WebMarkupContainer.class::isInstance)
+			.map(WebMarkupContainer.class::cast)
 			.findFirst();
-		assertThat(wmc.isPresent(), is(true));
+		assertEquals(true, wmc.isPresent());
 	}
 
 	@Test
-	public void streamChildren()
+	void streamChildren()
 	{
 		LoginPage loginPage = new LoginPage();
-		Optional<Component> first = loginPage.stream().filter(c -> c.getId().equals("form"))
+		Optional<Component> first = loginPage.stream()
+			.filter(c -> c.getId().equals("form"))
 			.findFirst();
-		assertThat(first.isPresent(), is(false));
+		assertEquals(false, first.isPresent());
 
 		Form<Object> form = new Form<>("form");
 		loginPage.add(form);
 
 		form.add(new TextField<>("field"));
 
-		assertThat(loginPage.streamChildren().filter(c -> c.getId().equals("form")).findFirst()
-			.isPresent(), is(true));
+		assertTrue(loginPage.streamChildren()
+			.filter(c -> c.getId().equals("form"))
+			.findFirst()
+			.isPresent());
+
+		assertTrue(loginPage.streamChildren()
+			.filter(c -> c.getId().equals("field"))
+			.findFirst()
+			.isPresent());
+
+		assertTrue(loginPage.streamChildren()
+			.filter(TextField.class::isInstance)
+			.filter(c -> c.getId().equals("field"))
+			.findFirst()
+			.isPresent());
+	}
+
+	private static class HierarchyChangePage extends WebPage
+		implements
+			IMarkupResourceStreamProvider
+	{
+
+		@Override
+		protected void onRender()
+		{
+			// change hierarchy during render
+			add(new Label("child"));
+		}
+
+		@Override
+		public IResourceStream getMarkupResourceStream(MarkupContainer container,
+			Class<?> containerClass)
+		{
+			return new StringResourceStream("<html><body></body></html>");
+		}
+	}
+
+	private static class ToStringComponent extends WebMarkupContainer
+	{
+		private ToStringComponent()
+		{
+			super("id");
+			toString(true);
+		}
+	}
+
+	private static class AfterRenderJustOncePage extends WebPage
+		implements
+			IMarkupResourceStreamProvider
+	{
+		private int afterRenderCalls = 0;
+
+		private AfterRenderJustOncePage()
+		{
+
+			WebMarkupContainer a1 = new WebMarkupContainer("a1");
+			add(a1);
 
-		assertThat(loginPage.streamChildren().filter(c -> c.getId().equals("field")).findFirst()
-			.isPresent(), is(true));
+			WebMarkupContainer a2 = new WebMarkupContainer("a2");
+			a1.add(a2);
+
+			WebMarkupContainer a3 = new WebMarkupContainer("a3")
+			{
 
-		assertThat(loginPage.streamChildren().filter(TextField.class::isInstance)
-			.filter(c -> c.getId().equals("field")).findFirst().isPresent(), is(true));
+				@Override
+				protected void onAfterRender()
+				{
+					super.onAfterRender();
+					afterRenderCalls++;
+				}
+
+			};
+			a2.add(a3);
+		}
+
+		@Override
+		public IResourceStream getMarkupResourceStream(MarkupContainer container,
+			Class<?> containerClass)
+		{
+			return new StringResourceStream(
+				"<html><body><div wicket:id='a1'><div wicket:id='a2'><div wicket:id='a3'></div></div></div></body></html>");
+		}
+	}
+
+	private static class FirstRenderFailsPage extends WebPage
+		implements
+			IMarkupResourceStreamProvider
+	{
+		private boolean firstRender = true;
+
+		private int beforeRenderCalls = 0;
+
+		private FirstRenderFailsPage()
+		{
+			WebMarkupContainer a1 = new WebMarkupContainer("a1")
+			{
+				@Override
+				protected void onBeforeRender()
+				{
+					super.onBeforeRender();
+
+					beforeRenderCalls++;
+
+					if (firstRender)
+					{
+						firstRender = false;
+						throw new WicketRuntimeException();
+					}
+				}
+			};
+			add(a1);
+		}
+
+		@Override
+		public IResourceStream getMarkupResourceStream(MarkupContainer container,
+			Class<?> containerClass)
+		{
+			return new StringResourceStream("<html><body><div wicket:id='a1'></div></body></html>");
+		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/MarkupIdGeneratorTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/MarkupIdGeneratorTest.java b/wicket-core/src/test/java/org/apache/wicket/MarkupIdGeneratorTest.java
index 69964cf..6613988 100644
--- a/wicket-core/src/test/java/org/apache/wicket/MarkupIdGeneratorTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/MarkupIdGeneratorTest.java
@@ -16,9 +16,11 @@
  */
 package org.apache.wicket;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 /**
  * Tests for IMarkupIdGenerator
@@ -26,10 +28,10 @@ import org.junit.Test;
  * @since 6.16.0
  * @see <a href="https://issues.apache.org/jira/browse/WICKET-5577">Generation of wicket ids with prefix / suffix</a>
  */
-public class MarkupIdGeneratorTest extends WicketTestCase
+class MarkupIdGeneratorTest extends WicketTestCase
 {
 	@Test
-	public void defaultMarkupIdGenerator()
+	void defaultMarkupIdGenerator()
 	{
 		MockPageWithLink page = new MockPageWithLink();
 		Link link = new Link<Void>(MockPageWithLink.LINK_ID)
@@ -46,7 +48,7 @@ public class MarkupIdGeneratorTest extends WicketTestCase
 	}
 
 	@Test
-	public void customMarkupIdGenerator()
+	void customMarkupIdGenerator()
 	{
 		final String customMarkupId = "custom";
 		IMarkupIdGenerator generator = new IMarkupIdGenerator()

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/MetaDataTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/MetaDataTest.java b/wicket-core/src/test/java/org/apache/wicket/MetaDataTest.java
index 03fd0de..babee8f 100644
--- a/wicket-core/src/test/java/org/apache/wicket/MetaDataTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/MetaDataTest.java
@@ -16,13 +16,16 @@
  */
 package org.apache.wicket;
 
-import org.junit.Assert;
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.junit.jupiter.api.Test;
 
 /**
  * Some tests for meta data.
  */
-public class MetaDataTest extends Assert
+class MetaDataTest
 {
 	private static final MetaDataKey<String> KEY1 = new MetaDataKey<String>()
 	{
@@ -48,7 +51,7 @@ public class MetaDataTest extends Assert
 	 * Test bounds and basic operations.
 	 */
 	@Test
-	public void metaDataKey()
+	void metaDataKey()
 	{
 		MetaDataEntry<?>[] md = KEY1.set(null, "1");
 		assertNotNull(md);

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/MockComponent.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/MockComponent.java b/wicket-core/src/test/java/org/apache/wicket/MockComponent.java
index d6c292f..8af8c40 100644
--- a/wicket-core/src/test/java/org/apache/wicket/MockComponent.java
+++ b/wicket-core/src/test/java/org/apache/wicket/MockComponent.java
@@ -36,7 +36,7 @@ public class MockComponent implements IRequestableComponent, IRequestListener
 	/**
 	 * Construct.
 	 */
-	public MockComponent()
+    MockComponent()
 	{
 	}
 
@@ -69,7 +69,7 @@ public class MockComponent implements IRequestableComponent, IRequestListener
 	 * @param id
 	 * @return <code>this</code>
 	 */
-	public MockComponent setId(String id)
+    private MockComponent setId(String id)
 	{
 		this.id = id;
 		return this;
@@ -108,7 +108,7 @@ public class MockComponent implements IRequestableComponent, IRequestListener
 	 * @param page
 	 * @return <code>this</code>
 	 */
-	public MockComponent setPage(IRequestablePage page)
+    private MockComponent setPage(IRequestablePage page)
 	{
 		this.page = page;
 		return this;
@@ -126,7 +126,7 @@ public class MockComponent implements IRequestableComponent, IRequestListener
 	 * @param path
 	 * @return <code>this</code>
 	 */
-	public MockComponent setPath(String path)
+    MockComponent setPath(String path)
 	{
 		this.path = path;
 		return this;

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/MockPageParametersAware.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/MockPageParametersAware.java b/wicket-core/src/test/java/org/apache/wicket/MockPageParametersAware.java
index e3e20ee..7837530 100644
--- a/wicket-core/src/test/java/org/apache/wicket/MockPageParametersAware.java
+++ b/wicket-core/src/test/java/org/apache/wicket/MockPageParametersAware.java
@@ -99,7 +99,7 @@ public class MockPageParametersAware extends WebPage
 	/**
 	 * @return textField
 	 */
-	public TextField<String> getTextField()
+    TextField<String> getTextField()
 	{
 		return textField;
 	}

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/OnReAddTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/OnReAddTest.java b/wicket-core/src/test/java/org/apache/wicket/OnReAddTest.java
index be664cc..7052592 100644
--- a/wicket-core/src/test/java/org/apache/wicket/OnReAddTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/OnReAddTest.java
@@ -16,27 +16,27 @@
  */
 package org.apache.wicket;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.util.tester.WicketTesterScope;
-import org.junit.Rule;
-import org.junit.Test;
+import org.apache.wicket.util.tester.WicketTesterExtension;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
-public class OnReAddTest
+class OnReAddTest
 {
-	@Rule
-	public WicketTesterScope scope = new WicketTesterScope();
+	@RegisterExtension
+	WicketTesterExtension scope = new WicketTesterExtension();
 
 	private boolean onReAddCalled = false;
 	private boolean onInitializeCalled = false;
 
 	@Test
-	public void onFirstAddInitializeIsCalled()
+	void onFirstAddInitializeIsCalled()
 	{
 		Page page = createPage();
 		page.internalInitialize();
@@ -46,7 +46,7 @@ public class OnReAddTest
 	}
 
 	@Test
-	public void nothingIsCalledWithoutConnectionToPage()
+	void nothingIsCalledWithoutConnectionToPage()
 	{
 		MarkupContainer container = createContainer();
 		container.internalInitialize();
@@ -56,7 +56,7 @@ public class OnReAddTest
 	}
 
 	@Test
-	public void uninitializedComponentIsInitializedOnConnectionToPage()
+	void uninitializedComponentIsInitializedOnConnectionToPage()
 	{
 		// "old", initialized container + "new" uninitialized component:
 		// oninitialize should be called on the component when the container
@@ -74,7 +74,7 @@ public class OnReAddTest
 	}
 
 	@Test
-	public void onReAddIsOnlyCalledAfterRemove()
+	void onReAddIsOnlyCalledAfterRemove()
 	{
 		Page page = createPage();
 		page.internalInitialize();
@@ -93,9 +93,9 @@ public class OnReAddTest
 		assertTrue(onReAddCalled);
 		assertFalse(onInitializeCalled);
 	}
-	
+
 	@Test
-	public void initializeIsCalledOnFirstAdd_OnReAddIsCalledAfterEachRemoveAndAdd()
+	void initializeIsCalledOnFirstAdd_OnReAddIsCalledAfterEachRemoveAndAdd()
 	{
 		Page page = createPage();
 		page.internalInitialize();
@@ -115,7 +115,8 @@ public class OnReAddTest
 		assertFalse(onInitializeCalled);
 		onReAddCalled = false;
 		page.internalInitialize();
-		// just another initialize run shouldn't call onReAdd nor onInitialize. onReAdd should only be called
+		// just another initialize run shouldn't call onReAdd nor onInitialize. onReAdd should only
+		// be called
 		// after remove and add
 		assertFalse(onReAddCalled);
 		assertFalse(onInitializeCalled);
@@ -126,7 +127,7 @@ public class OnReAddTest
 	}
 
 	@Test
-	public void onReAddRecursesToChildrenLikeOnInitialize()
+	void onReAddRecursesToChildrenLikeOnInitialize()
 	{
 		Page page = createPage();
 		page.internalInitialize();
@@ -144,7 +145,7 @@ public class OnReAddTest
 	}
 
 	@Test
-	public void onReAddEnforcesSuperCall()
+	void onReAddEnforcesSuperCall()
 	{
 		Page page = createPage();
 		page.internalInitialize();
@@ -163,7 +164,8 @@ public class OnReAddTest
 		{
 			page.add(brokenProbe);
 			fail("should have thrown exception");
-		} catch (IllegalStateException e)
+		}
+		catch (IllegalStateException e)
 		{
 			assertTrue(e.getMessage().contains("super.onReAdd"));
 		}
@@ -189,7 +191,7 @@ public class OnReAddTest
 		};
 	}
 
-	private Component createInitializedProbe()
+	Component createInitializedProbe()
 	{
 		Component probe = createUninitializedProbe();
 		probe.internalInitialize();

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/PageFactoryTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/PageFactoryTest.java b/wicket-core/src/test/java/org/apache/wicket/PageFactoryTest.java
index c90ae0a..e2c8ac6 100644
--- a/wicket-core/src/test/java/org/apache/wicket/PageFactoryTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/PageFactoryTest.java
@@ -16,25 +16,27 @@
  */
 package org.apache.wicket;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.session.DefaultPageFactory;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Before;
-import org.junit.Test;
-
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 /**
  * Test the Pagefactory
  */
-public class PageFactoryTest extends WicketTestCase
+class PageFactoryTest extends WicketTestCase
 {
 	private DefaultPageFactory factory;
 
 	/**
 	 * 
 	 */
-	@Before
-	public void before()
+	@BeforeEach
+	void before()
 	{
 		factory = new DefaultPageFactory();
 	}
@@ -43,7 +45,7 @@ public class PageFactoryTest extends WicketTestCase
 	 * Test creating a new page using a class.
 	 */
 	@Test
-	public void newPageClass()
+	void newPageClass()
 	{
 		// MyPage0: no constructor at all
 		assertEquals(MyPage0.class, factory.newPage(MyPage0.class).getClass());
@@ -65,9 +67,7 @@ public class PageFactoryTest extends WicketTestCase
 		{
 			e = ex;
 		}
-		assertNotNull(
-			"MyPage3 should have thrown an exception as it does not have a default or no constructor",
-			e);
+		assertNotNull(e, "MyPage3 should have thrown an exception as it does not have a default or no constructor");
 
 		// MyPage4: Illegal String parameter constructor only
 		e = null;
@@ -79,9 +79,7 @@ public class PageFactoryTest extends WicketTestCase
 		{
 			e = ex;
 		}
-		assertNotNull(
-			"MyPage4 should have thrown an exception as it does not have a default or no constructor",
-			e);
+		assertNotNull(e, "MyPage4 should have thrown an exception as it does not have a default or no constructor");
 
 		// MyPage5: PageParameter and default constructor
 		assertEquals(MyPage5.class, factory.newPage(MyPage5.class).getClass());
@@ -93,7 +91,7 @@ public class PageFactoryTest extends WicketTestCase
 	 * Test a new page using a class and page parameters.
 	 */
 	@Test
-	public void newPageClassPageParameters()
+	void newPageClassPageParameters()
 	{
 		assertEquals(MyPage0.class, factory.newPage(MyPage0.class, null).getClass());
 
@@ -116,9 +114,7 @@ public class PageFactoryTest extends WicketTestCase
 		{
 			e = ex;
 		}
-		assertNotNull(
-			"MyPage4 should have thrown an exception as it does not have a default or no constructor",
-			e);
+		assertNotNull(e, "MyPage4 should have thrown an exception as it does not have a default or no constructor");
 
 		// MyPage4: Illegal String parameter constructor only
 		e = null;
@@ -130,9 +126,7 @@ public class PageFactoryTest extends WicketTestCase
 		{
 			e = ex;
 		}
-		assertNotNull(
-			"MyPage4 should have thrown an exception as it does not have a default or no constructor",
-			e);
+		assertNotNull(e, "MyPage4 should have thrown an exception as it does not have a default or no constructor");
 
 		// MyPage5: PageParameter and default constructor
 		assertEquals(MyPage5.class, factory.newPage(MyPage5.class, new PageParameters()).getClass());

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/PageMarkupLoadingTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/PageMarkupLoadingTest.java b/wicket-core/src/test/java/org/apache/wicket/PageMarkupLoadingTest.java
index f86c02f..ccdd8d9 100644
--- a/wicket-core/src/test/java/org/apache/wicket/PageMarkupLoadingTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/PageMarkupLoadingTest.java
@@ -20,12 +20,12 @@ import java.util.Locale;
 
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 /**
  * Tests markup loading.
  */
-public class PageMarkupLoadingTest extends WicketTestCase
+class PageMarkupLoadingTest extends WicketTestCase
 {
 	/**
 	 * Test default locale loaded page.
@@ -33,7 +33,7 @@ public class PageMarkupLoadingTest extends WicketTestCase
 	 * @throws Exception
 	 */
 	@Test
-	public void english() throws Exception
+    void english() throws Exception
 	{
 		tester.getSession().setLocale(Locale.ENGLISH);
 		tester.startPage(Page1.class);
@@ -47,7 +47,7 @@ public class PageMarkupLoadingTest extends WicketTestCase
 	 * @throws Exception
 	 */
 	@Test
-	public void dutch() throws Exception
+    void dutch() throws Exception
 	{
 		tester.getSession().setLocale(new Locale("nl"));
 		tester.startPage(Page1.class);
@@ -61,7 +61,7 @@ public class PageMarkupLoadingTest extends WicketTestCase
 	 * @throws Exception
 	 */
 	@Test
-	public void testDutchMyStyle() throws Exception
+    void testDutchMyStyle() throws Exception
 	{
 		tester.getSession().setLocale(new Locale("nl"));
 		tester.getSession().setStyle("mystyle");
@@ -76,7 +76,7 @@ public class PageMarkupLoadingTest extends WicketTestCase
 	 * @throws Exception
 	 */
 	@Test
-	public void dutchMyStyleMyVar() throws Exception
+    void dutchMyStyleMyVar() throws Exception
 	{
 		tester.getSession().setLocale(new Locale("nl"));
 		tester.getSession().setStyle("mystyle");
@@ -92,7 +92,7 @@ public class PageMarkupLoadingTest extends WicketTestCase
 		private static final long serialVersionUID = 1L;
 
 		/** Construct. */
-		public Page1()
+        public Page1()
 		{
 		}
 	}
@@ -103,7 +103,7 @@ public class PageMarkupLoadingTest extends WicketTestCase
 		private static final long serialVersionUID = 1L;
 
 		/** Construct. */
-		public Page2()
+        public Page2()
 		{
 		}
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/ParentResourceEscapePathTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/ParentResourceEscapePathTest.java b/wicket-core/src/test/java/org/apache/wicket/ParentResourceEscapePathTest.java
index ba447cd..4cb7d34 100644
--- a/wicket-core/src/test/java/org/apache/wicket/ParentResourceEscapePathTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/ParentResourceEscapePathTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.wicket;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.io.InputStream;
 
 import org.apache.wicket.markup.html.PackageResourceGuard;
@@ -23,13 +26,13 @@ import org.apache.wicket.request.Url;
 import org.apache.wicket.request.resource.PackageResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  */
-public class ParentResourceEscapePathTest extends WicketTestCase
+class ParentResourceEscapePathTest extends WicketTestCase
 {
 	private static final Logger log = LoggerFactory.getLogger(ParentResourceEscapePathTest.class);
 
@@ -37,7 +40,7 @@ public class ParentResourceEscapePathTest extends WicketTestCase
 	 * @throws Exception
 	 */
 	@Test
-	public void parentEscapeSequenceInRenderedHtmlTest() throws Exception
+	void parentEscapeSequenceInRenderedHtmlTest() throws Exception
 	{
 		tester.getApplication().getResourceSettings().setParentFolderPlaceholder("-updir-");
 		parentEscapeSequenceInRenderedHtml();
@@ -63,15 +66,14 @@ public class ParentResourceEscapePathTest extends WicketTestCase
 
 	private void assertContains(String html, String expected)
 	{
-		assertTrue("Expected to find \"" + expected + "\" in \"" + html + "\"",
-			html.contains(expected));
+		assertTrue(html.contains(expected), "Expected to find \"" + expected + "\" in \"" + html + "\"");
 	}
 
 	/**
 	 * testResourceUrlGeneratedByResourceReference()
 	 */
 	@Test
-	public void resourceUrlGeneratedByResourceReferenceTest()
+	void resourceUrlGeneratedByResourceReferenceTest()
 	{
 		tester.getApplication().getResourceSettings().setParentFolderPlaceholder("-updir-");
 		resourceUrlGeneratedByResourceReference();
@@ -93,7 +95,7 @@ public class ParentResourceEscapePathTest extends WicketTestCase
 	 * testRequestHandlingOfResourceUrlWithEscapeStringInside()
 	 */
 	@Test
-	public void requestHandlingOfResourceUrlWithEscapeStringInsideTest()
+	void requestHandlingOfResourceUrlWithEscapeStringInsideTest()
 	{
 		((PackageResourceGuard)tester.getApplication()
 			.getResourceSettings()

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/PlaceholderTagIdTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/PlaceholderTagIdTest.java b/wicket-core/src/test/java/org/apache/wicket/PlaceholderTagIdTest.java
index 5eb072c..3988176 100644
--- a/wicket-core/src/test/java/org/apache/wicket/PlaceholderTagIdTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/PlaceholderTagIdTest.java
@@ -24,12 +24,12 @@ import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 /**
  * Test for <a href="https://issues.apache.org/jira/browse/WICKET-3563">WICKET-3563</a>
  */
-public class PlaceholderTagIdTest extends WicketTestCase
+class PlaceholderTagIdTest extends WicketTestCase
 {
 
 	/**
@@ -38,7 +38,7 @@ public class PlaceholderTagIdTest extends WicketTestCase
 	 * {@link IAjaxRegionMarkupIdProvider}
 	 */
 	@Test
-	public void wicket3563()
+    void wicket3563()
 	{
 		tester.startPage(TestPage.class);
 
@@ -55,7 +55,7 @@ public class PlaceholderTagIdTest extends WicketTestCase
 		/**
 		 * Construct.
 		 */
-		public TestPage()
+        public TestPage()
 		{
 			Form<?> form = new Form<Void>("form");
 			form.setVisible(false);

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/RedirectApplication.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/RedirectApplication.java b/wicket-core/src/test/java/org/apache/wicket/RedirectApplication.java
index 5b447e7..6d2035a 100644
--- a/wicket-core/src/test/java/org/apache/wicket/RedirectApplication.java
+++ b/wicket-core/src/test/java/org/apache/wicket/RedirectApplication.java
@@ -24,7 +24,7 @@ import org.apache.wicket.mock.MockApplication;
  * 
  * @see wicket.myproject.Start#main(String[])
  */
-public class RedirectApplication extends MockApplication
+class RedirectApplication extends MockApplication
 {
 	private boolean showIntercept = false;
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/RemoveTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/RemoveTest.java b/wicket-core/src/test/java/org/apache/wicket/RemoveTest.java
index 6ab6364..0157c29 100644
--- a/wicket-core/src/test/java/org/apache/wicket/RemoveTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/RemoveTest.java
@@ -16,45 +16,47 @@
  */
 package org.apache.wicket;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
 
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 /**
  * Test the {@link Component#onRemove()}. Test if it gets called and propagated to the Components
  * children.
  */
-public class RemoveTest extends WicketTestCase
+class RemoveTest extends WicketTestCase
 {
 
-	static final String PATH = RemoveTestPage.COMPONENT + Component.PATH_SEPARATOR +
+	private static final String PATH = RemoveTestPage.COMPONENT + Component.PATH_SEPARATOR +
 		RemoveTestPage.LINK;
 
 	/**
 	 * The test
 	 */
 	@Test
-	public void onRemovalFromHierarchy()
+	void onRemovalFromHierarchy()
 	{
 		final RemoveTestPage page = new RemoveTestPage();
 		tester.startPage(page);
 		// on initial load of the page no calls should have occurred.
-		assertEquals("componentOnRemovalFromHierarchy was called.", 0,
-			page.getComponentOnRemovalFromHierarchyCalls());
-		assertEquals("linkOnRemovalFromHierarchy was called.", 0,
-			page.getLinkOnRemovalFromHierarchyCalls());
-		assertEquals("behaviorOnRemovalFromHierarchy was called.", 0,
-			page.getBehaviorOnRemovalCalls());
+		assertEquals(0, page.getComponentOnRemovalFromHierarchyCalls(),
+			"componentOnRemovalFromHierarchy was called.");
+		assertEquals(0, page.getLinkOnRemovalFromHierarchyCalls(),
+			"linkOnRemovalFromHierarchy was called.");
+		assertEquals(0, page.getBehaviorOnRemovalCalls(),
+			"behaviorOnRemovalFromHierarchy was called.");
 
 		tester.clickLink(PATH);
 		// first click provoked a remove, so one call.
-		assertEquals("componentOnRemovalFromHierarchy wasn't called.", 1,
-			page.getComponentOnRemovalFromHierarchyCalls());
+		assertEquals(1, page.getComponentOnRemovalFromHierarchyCalls(),
+			"componentOnRemovalFromHierarchy wasn't called.");
 		// test if it got propagated to the children.
-		assertEquals("linkOnRemovalFromHierarchy wasn't called.", 1,
-			page.getLinkOnRemovalFromHierarchyCalls());
-		assertEquals("behaviorOnRemovalFromHierarchy wasn't called.", 1,
-			page.getBehaviorOnRemovalCalls());
+		assertEquals(1, page.getLinkOnRemovalFromHierarchyCalls(),
+			"linkOnRemovalFromHierarchy wasn't called.");
+		assertEquals(1, page.getBehaviorOnRemovalCalls(),
+			"behaviorOnRemovalFromHierarchy wasn't called.");
 
 		try
 		{

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/RemoveTestPage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/RemoveTestPage.java b/wicket-core/src/test/java/org/apache/wicket/RemoveTestPage.java
index de11d62..6dabfd6 100644
--- a/wicket-core/src/test/java/org/apache/wicket/RemoveTestPage.java
+++ b/wicket-core/src/test/java/org/apache/wicket/RemoveTestPage.java
@@ -30,8 +30,8 @@ public class RemoveTestPage extends WebPage
 	static final String COMPONENT = "component";
 	static final String LINK = "link";
 
-	MarkupContainer _1;
-	MarkupContainer _2;
+	private MarkupContainer _1;
+	private MarkupContainer _2;
 
 	private int componentOnRemovalFromHierarchyCalls = 0;
 	private int linkOnRemovalFromHierarchyCalls = 0;

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/RequestEncodingTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/RequestEncodingTest.java b/wicket-core/src/test/java/org/apache/wicket/RequestEncodingTest.java
index 8b66dce..f9d5dae 100644
--- a/wicket-core/src/test/java/org/apache/wicket/RequestEncodingTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/RequestEncodingTest.java
@@ -16,22 +16,23 @@
  */
 package org.apache.wicket;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.util.tester.WicketTestCase;
 import org.apache.wicket.util.tester.WicketTester;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-public class RequestEncodingTest extends Assert
+class RequestEncodingTest
 {
 
 	private RedirectApplication application;
 	private WicketTester tester;
 
-	@Before
-	public void setUp()
+	@BeforeEach
+	void setUp()
 	{
 		application = new RedirectApplication();
 		tester = new WicketTester(application);
@@ -39,14 +40,14 @@ public class RequestEncodingTest extends Assert
 		tester.assertRenderedPage(RedirectHomePage.class);
 	}
 
-	@After
-	public void tearDown()
+	@AfterEach
+	void tearDown()
 	{
 		tester.destroy();
 	}
 
 	@Test
-	public void defaultTest()
+	void defaultTest()
 	{
 		tester.startPage(RedirectA.class,
 			new PageParameters().set("file", "umlaut-\u00E4-\u00F6-\u00FC"));
@@ -66,7 +67,7 @@ public class RequestEncodingTest extends Assert
 	}
 
 	@Test
-	public void umlautsInRequestUri()
+	void umlautsInRequestUri()
 	{
 		application.mountPage("Aparameter", RedirectA.class);
 		defaultTest();

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/ResourceTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/ResourceTest.java b/wicket-core/src/test/java/org/apache/wicket/ResourceTest.java
index 2c2c3b4..3b0c9a4 100644
--- a/wicket-core/src/test/java/org/apache/wicket/ResourceTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/ResourceTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -28,13 +30,12 @@ import org.apache.wicket.util.resource.FileResourceStream;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Test;
-
+import org.junit.jupiter.api.Test;
 
 /**
  * Tests resources.
  */
-public class ResourceTest extends WicketTestCase
+class ResourceTest extends WicketTestCase
 {
 	private static final String TEST_STRING = "Hello, World!";
 
@@ -42,7 +43,7 @@ public class ResourceTest extends WicketTestCase
 	 * tests a resource that is not cacheable.
 	 */
 	@Test
-	public void testFileResourceStream()
+	void testFileResourceStream()
 	{
 		final File testFile;
 		try
@@ -67,7 +68,7 @@ public class ResourceTest extends WicketTestCase
 	 * testStringResourceStream()
 	 */
 	@Test
-	public void stringResourceStream()
+	void stringResourceStream()
 	{
 		StringResourceStream resourceStream = new StringResourceStream(TEST_STRING);
 		bindToApplicationAsResourceAndRequestIt(resourceStream);

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionInAjaxTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionInAjaxTest.java b/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionInAjaxTest.java
index c7bde8a..47cf94e 100644
--- a/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionInAjaxTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionInAjaxTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket;
 
+import static org.junit.jupiter.api.Assertions.assertNull;
+
 import org.apache.wicket.markup.IMarkupResourceStreamProvider;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.mock.MockApplication;
@@ -26,14 +28,14 @@ import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
 import org.apache.wicket.util.tester.DummyHomePage;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 /**
  * https://issues.apache.org/jira/browse/WICKET-4251
  *
  * Tests that an intercepted Ajax request is continued in non-Ajax response
  */
-public class RestartResponseAtInterceptPageExceptionInAjaxTest extends WicketTestCase
+class RestartResponseAtInterceptPageExceptionInAjaxTest extends WicketTestCase
 {
 
 	@Override
@@ -50,7 +52,7 @@ public class RestartResponseAtInterceptPageExceptionInAjaxTest extends WicketTes
 
 	public static class HomePage extends WebPage implements IMarkupResourceStreamProvider
 	{
-		public HomePage() 
+		public HomePage()
 		{
 	        // set the intercept data
 			new RestartResponseAtInterceptPageException(DummyHomePage.class);
@@ -70,7 +72,7 @@ public class RestartResponseAtInterceptPageExceptionInAjaxTest extends WicketTes
 	 * in its post parameters
 	 */
 	@Test
-	public void requestAPageInAjaxButReceiveItInNonAjaxResponse()
+	void requestAPageInAjaxButReceiveItInNonAjaxResponse()
 	{
 		// issue ajax request
 		tester.executeAjaxUrl(Url.parse("?"+WebRequest.PARAM_AJAX+"=true&"+WebRequest.PARAM_AJAX_BASE_URL+"=/"));

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionTest.java b/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionTest.java
index a35b63e..c1a55a0 100644
--- a/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionTest.java
@@ -21,12 +21,12 @@ import org.apache.wicket.markup.html.pages.RedirectPage;
 import org.apache.wicket.mock.MockApplication;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 /**
  * Tests for {@link RestartResponseAtInterceptPageException}
  */
-public class RestartResponseAtInterceptPageExceptionTest extends WicketTestCase
+class RestartResponseAtInterceptPageExceptionTest extends WicketTestCase
 {
 	@Override
 	protected WebApplication newApplication()
@@ -61,7 +61,7 @@ public class RestartResponseAtInterceptPageExceptionTest extends WicketTestCase
 	 * https://issues.apache.org/jira/browse/WICKET-3836
 	 */
 	@Test
-	public void redirectToBufferForNonVersionedPage()
+    void redirectToBufferForNonVersionedPage()
 	{
 		tester.startPage(tester.getApplication().getHomePage());
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/RestartResponseExceptionTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/RestartResponseExceptionTest.java b/wicket-core/src/test/java/org/apache/wicket/RestartResponseExceptionTest.java
index 1a19385..1e566ef 100644
--- a/wicket-core/src/test/java/org/apache/wicket/RestartResponseExceptionTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/RestartResponseExceptionTest.java
@@ -21,12 +21,12 @@ import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.util.resource.AbstractStringResourceStream;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 /**
  * Tests for the usages of {@link RestartResponseException}
  */
-public class RestartResponseExceptionTest extends WicketTestCase
+class RestartResponseExceptionTest extends WicketTestCase
 {
 	/**
 	 * Tests that following several {@link RestartResponseException}s will actually leave you at the
@@ -35,7 +35,7 @@ public class RestartResponseExceptionTest extends WicketTestCase
 	 * https://issues.apache.org/jira/browse/WICKET-2634
 	 */
 	@Test
-	public void doubleRedirect()
+    void doubleRedirect()
 	{
 		tester.startPage(RestartPage1.class);
 		tester.assertRenderedPage(MyDummyPage.class);

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/RestartWithMountedPageTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/RestartWithMountedPageTest.java b/wicket-core/src/test/java/org/apache/wicket/RestartWithMountedPageTest.java
index f44048d..a99a79b 100644
--- a/wicket-core/src/test/java/org/apache/wicket/RestartWithMountedPageTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/RestartWithMountedPageTest.java
@@ -17,20 +17,20 @@
 package org.apache.wicket;
 
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 
 /**
  * @author jcompagner
  */
-public class RestartWithMountedPageTest extends WicketTestCase
+class RestartWithMountedPageTest extends WicketTestCase
 {
 
 	/**
 	 * Tests that a protected page can redirect to a login page from mounted pages.
 	 */
 	@Test
-	public void withMountedLoginPage()
+    void withMountedLoginPage()
 	{
 		tester.getApplication().mountPage("/login", LoginPage.class);
 		tester.startPage(ProtectedPage.class);

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/SetResponsePageTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/SetResponsePageTest.java b/wicket-core/src/test/java/org/apache/wicket/SetResponsePageTest.java
index 0f99a88..0d0965f 100644
--- a/wicket-core/src/test/java/org/apache/wicket/SetResponsePageTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/SetResponsePageTest.java
@@ -18,16 +18,16 @@ package org.apache.wicket;
 
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 /**
  * Test for calling {@link Component#setResponsePage(Class)} in constructor.
  */
-public class SetResponsePageTest extends WicketTestCase
+class SetResponsePageTest extends WicketTestCase
 {
 	/** Fix setting response page in constructor. */
 	@Test
-	public void setResponsePage()
+    void setResponsePage()
 	{
 		tester.startPage(Page1.class);
 		tester.assertRenderedPage(Page3.class);
@@ -39,7 +39,7 @@ public class SetResponsePageTest extends WicketTestCase
 		private static final long serialVersionUID = 1L;
 
 		/** Construct. */
-		public Page1()
+        public Page1()
 		{
 			setResponsePage(Page2.class);
 		}
@@ -63,7 +63,7 @@ public class SetResponsePageTest extends WicketTestCase
 		private static final long serialVersionUID = 1L;
 
 		/** Construct. */
-		public Page3()
+        public Page3()
 		{
 		}
 	}

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/SharedResourceUrlTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/SharedResourceUrlTest.java b/wicket-core/src/test/java/org/apache/wicket/SharedResourceUrlTest.java
index 14d5083..dee6fd8 100644
--- a/wicket-core/src/test/java/org/apache/wicket/SharedResourceUrlTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/SharedResourceUrlTest.java
@@ -16,23 +16,25 @@
  */
 package org.apache.wicket;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.PackageResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.request.resource.SharedResourceReference;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 /**
  * @author jcompagner
  */
-public class SharedResourceUrlTest extends WicketTestCase
+class SharedResourceUrlTest extends WicketTestCase
 {
 	/**
 	 * @throws Exception
 	 */
 	@Test
-	public void resourceReferenceUrl() throws Exception
+	void resourceReferenceUrl() throws Exception
 	{
 		ResourceReference rr = new SharedResourceReference("test");
 		CharSequence url = tester.getRequestCycle().mapUrlFor(rr, null).toString();
@@ -47,7 +49,7 @@ public class SharedResourceUrlTest extends WicketTestCase
 	 * @throws Exception
 	 */
 	@Test
-	public void resourceReferenceWithParamsUrl() throws Exception
+	void resourceReferenceWithParamsUrl() throws Exception
 	{
 		ResourceReference rr = new SharedResourceReference("test");
 		CharSequence url = tester.getRequestCycle()

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/StyleAttributeModifierTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/StyleAttributeModifierTest.java b/wicket-core/src/test/java/org/apache/wicket/StyleAttributeModifierTest.java
index b471166..cb4ebbb 100644
--- a/wicket-core/src/test/java/org/apache/wicket/StyleAttributeModifierTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/StyleAttributeModifierTest.java
@@ -16,23 +16,25 @@
  */
 package org.apache.wicket;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
 import java.util.Map;
 
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.parser.XmlTag;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 /**
  * Tests for StyleAttributeModifier
  */
-public class StyleAttributeModifierTest extends Assert
+class StyleAttributeModifierTest
 {
 	/**
 	 * Adds two style properties
 	 */
 	@Test
-	public void addCssStyles()
+	void addCssStyles()
 	{
 		StyleAttributeModifier cam = new StyleAttributeModifier()
 		{
@@ -58,7 +60,7 @@ public class StyleAttributeModifierTest extends Assert
 	 * Modifies one style, removes another and adds a new style
 	 */
 	@Test
-	public void addRemoveCssStyles()
+	void addRemoveCssStyles()
 	{
 		StyleAttributeModifier cam = new StyleAttributeModifier()
 		{
@@ -86,7 +88,7 @@ public class StyleAttributeModifierTest extends Assert
 	 * Removes all CSS style values and the attribute itself
 	 */
 	@Test
-	public void removeAllCssStyles()
+	void removeAllCssStyles()
 	{
 		StyleAttributeModifier cam = new StyleAttributeModifier()
 		{

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/TesterTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/TesterTest.java b/wicket-core/src/test/java/org/apache/wicket/TesterTest.java
index 3762018..3258c33 100644
--- a/wicket-core/src/test/java/org/apache/wicket/TesterTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/TesterTest.java
@@ -16,23 +16,24 @@
  */
 package org.apache.wicket;
 
-import junit.framework.AssertionFailedError;
+import static org.junit.jupiter.api.Assertions.fail;
 
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+import org.opentest4j.AssertionFailedError;
 
 /**
  * @author jcompagner
  */
-public class TesterTest extends WicketTestCase
+class TesterTest extends WicketTestCase
 {
 	/**
 	 * 
 	 */
 	@Test
-	public void assertTest()
+	void assertTest()
 	{
 		tester.startPage(new MyPage());
 		tester.debugComponentTrees();
@@ -57,7 +58,7 @@ public class TesterTest extends WicketTestCase
 		/**
 		 * Construct.
 		 */
-		public MyPage()
+		MyPage()
 		{
 			add(new Label("label")
 			{

http://git-wip-us.apache.org/repos/asf/wicket/blob/645f239c/wicket-core/src/test/java/org/apache/wicket/VisitorTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/VisitorTest.java b/wicket-core/src/test/java/org/apache/wicket/VisitorTest.java
index 4260eca..115e495 100644
--- a/wicket-core/src/test/java/org/apache/wicket/VisitorTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/VisitorTest.java
@@ -16,7 +16,8 @@
  */
 package org.apache.wicket;
 
-import org.junit.Assert;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.form.FormComponent;
 import org.apache.wicket.util.tester.WicketTestCase;
@@ -24,7 +25,7 @@ import org.apache.wicket.util.visit.ClassVisitFilter;
 import org.apache.wicket.util.visit.IVisit;
 import org.apache.wicket.util.visit.IVisitor;
 import org.apache.wicket.util.visit.Visits;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 /**
  * <code>
@@ -40,13 +41,13 @@ import org.junit.Test;
  * 
  * @author igor.vaynberg
  */
-public class VisitorTest extends WicketTestCase
+class VisitorTest extends WicketTestCase
 {
 	/**
 	 * testVisit()
 	 */
 	@Test
-	public void visit()
+	void visit()
 	{
 		final StringBuilder path = new StringBuilder();
 
@@ -61,7 +62,7 @@ public class VisitorTest extends WicketTestCase
 			}
 		});
 
-		Assert.assertEquals("ABCDEFGH", path.toString());
+		assertEquals("ABCDEFGH", path.toString());
 	}
 
 
@@ -69,7 +70,7 @@ public class VisitorTest extends WicketTestCase
 	 * testContinueTraversal()
 	 */
 	@Test
-	public void continueTraversal()
+	void continueTraversal()
 	{
 		final StringBuilder path = new StringBuilder();
 
@@ -84,14 +85,14 @@ public class VisitorTest extends WicketTestCase
 			}
 		});
 
-		Assert.assertEquals("BCDEFGH", path.toString());
+		assertEquals("BCDEFGH", path.toString());
 	}
 
 	/**
 	 * testContinuePostOrder()
 	 */
 	@Test
-	public void continuePostOrder()
+	void continuePostOrder()
 	{
 		final StringBuilder path = new StringBuilder();
 
@@ -105,14 +106,14 @@ public class VisitorTest extends WicketTestCase
 			}
 		});
 
-		Assert.assertEquals("BDFECHGA", path.toString());
+		assertEquals("BDFECHGA", path.toString());
 	}
 
 	/**
 	 * testStop()
 	 */
 	@Test
-	public void stop()
+	void stop()
 	{
 		final StringBuilder path = new StringBuilder();
 
@@ -129,15 +130,15 @@ public class VisitorTest extends WicketTestCase
 				}
 			}
 		});
-		Assert.assertEquals("BCD", path.toString());
-		Assert.assertEquals("RESULT", result);
+		assertEquals("BCD", path.toString());
+		assertEquals("RESULT", result);
 	}
 
 	/**
 	 * testDoNotGoDeeper1()
 	 */
 	@Test
-	public void doNotGoDeeper1()
+	void doNotGoDeeper1()
 	{
 		final StringBuilder path = new StringBuilder();
 
@@ -154,14 +155,14 @@ public class VisitorTest extends WicketTestCase
 				}
 			}
 		});
-		Assert.assertEquals("BCGH", path.toString());
+		assertEquals("BCGH", path.toString());
 	}
 
 	/**
 	 * testDoNotGoDeeper2()
 	 */
 	@Test
-	public void doNotGoDeeper2()
+	void doNotGoDeeper2()
 	{
 		final StringBuilder path = new StringBuilder();
 
@@ -178,7 +179,7 @@ public class VisitorTest extends WicketTestCase
 				}
 			}
 		});
-		Assert.assertEquals("BCDEGH", path.toString());
+		assertEquals("BCDEGH", path.toString());
 	}
 
 	/**
@@ -187,7 +188,7 @@ public class VisitorTest extends WicketTestCase
 	 * Visit parents with arbitrary type
 	 */
 	@Test
-	public void testVisitParents()
+	void testVisitParents()
 	{
 		TestContainer testContainer = new TestContainer();
 		IVisitor<MarkupContainer, MarkerInterface> visitor = new IVisitor<MarkupContainer, MarkerInterface>()
@@ -214,7 +215,7 @@ public class VisitorTest extends WicketTestCase
 	{
 		private static final long serialVersionUID = 1L;
 
-		public MarkedWebMarkupContainer(String id)
+		MarkedWebMarkupContainer(String id)
 		{
 			super(id);
 		}
@@ -224,7 +225,7 @@ public class VisitorTest extends WicketTestCase
 	{
 		private static final long serialVersionUID = 1L;
 
-		public TestContainer()
+		TestContainer()
 		{
 			super("A");
 			WebMarkupContainer b = new WebMarkupContainer("B");