Its often useful to use an enum as the model for a dropdown (or radio group) in Wicket, but not immediately obvious how to handle the display of the values. Lets say I have an enum with three colors: [sourcecode language=”java”] enum Color { RED, GREEN, BLUE }; [/sourcecode] I can hook this up to a dropdown with the following code: [sourcecode language=”html”] [/sourcecode] [sourcecode language=”java”] enum Color { RED, GREEN, BLUE }; private Color color = Color.GREEN; add(new DropDownChoice(“color”, new Model(color), Arrays.asList(Color.values()))); [/sourcecode] However, that would display “RED”, “GREEN”, “BLUE”. I probably don’t want the dropdown to use the default toString() form of my enum declarations, but rather I want it to load translatable texts from property files. To[…]

We just started using Mockito for unit testing of our Wicket applications. Its a great tool, allowing us to easily mock out our service layers on a test-by-test basis. In the example below, we’re testing a page called ItemPage. It takes an id of an item to load – internally the page uses itemService.find(id) to load the item from the database. Using Mockito, we mock out the itemService.find call to return a test item. [sourcecode language=”java”] public class TestItemPage extends WicketTestcase { private static final long serialVersionUID = 1L; @Test public void TestItemPage() { when(itemService.find(Mockito.anyInt())).thenAnswer(new Answer() { @Override public Item answer(InvocationOnMock invocation) throws Throwable { final int id = (Item) invocation.getArguments()[0]; Item item = new Item(id); item.setTitle(“test”); item.setDeadline(new Date()); return[…]