jdave.wicket
Class ComponentSpecification<T extends org.apache.wicket.Component>

java.lang.Object
  extended by jdave.ContainmentSupport
      extended by jdave.mock.MockSupport
          extended by jdave.Specification<T>
              extended by jdave.wicket.ComponentSpecification<T>

public abstract class ComponentSpecification<T extends org.apache.wicket.Component>
extends jdave.Specification<T>

A base class for Wicket's Component specifications.

Author:
Joni Freeman, Timo Rantalaiho

Field Summary
protected  org.apache.wicket.util.tester.BaseWicketTester wicket
           
 
Fields inherited from class jdave.Specification
be, context, does, must, should
 
Constructor Summary
ComponentSpecification()
           
 
Method Summary
 void create()
           
 org.apache.wicket.markup.html.list.ListItem itemAt(org.apache.wicket.markup.html.list.ListView view, int index)
          Select an item from a ListView.
 org.apache.wicket.markup.repeater.Item itemAt(org.apache.wicket.markup.repeater.RepeatingView view, int index)
          Select an item from a RepeatingView.
 java.util.List<?> modelObjects(java.util.Iterator<?> components)
          Collect model objects from given components.
protected  org.apache.wicket.protocol.http.WebApplication newApplication()
          Create the application for the specification.
protected abstract  T newComponent(java.lang.String id, org.apache.wicket.model.IModel model)
          Create a new instance of a Wicket component to be specified.
protected  org.apache.wicket.util.tester.BaseWicketTester newWicketTester()
          Create a WicketTester for the specification.
protected  void onCreate()
          Called after create().
<S extends org.apache.wicket.Component>
MultiSelection<S>
selectAll(java.lang.Class<S> type)
          Select all components whose model objects match given Hamcrest matcher:
<S extends org.apache.wicket.Component>
MultiSelection<S>
selectAll(java.lang.Class<S> type, java.lang.String wicketId)
          Select all components whose ids are given Wicket id:
<S extends org.apache.wicket.Component>
Selection<S>
selectFirst(java.lang.Class<S> type)
          Select first component whose model object matches given Hamcrest matcher:
<S extends org.apache.wicket.Component>
Selection<S>
selectFirst(java.lang.Class<S> type, java.lang.String wicketId)
          Select first component whose Wicket id is given String:
 void specify(org.apache.wicket.MarkupContainer actual, jdave.IContainment containment)
          Specify that given container contains given model objects.
 T startComponent()
          Start component for context.
 T startComponent(org.apache.wicket.model.IModel model)
          Start component for context.
 T startComponent(org.apache.wicket.model.IModel model, java.lang.CharSequence pageMarkup, java.lang.String rootComponentId)
          Start component for context, using page with given markup.
 T startComponent(org.apache.wicket.model.IModel model, org.apache.wicket.util.resource.IResourceStream pageMarkup, java.lang.String rootComponentId)
          Start component for context, using page with given markup.
 T startComponentWithoutMarkup(org.apache.wicket.model.IModel model)
          Start component for context.
 
Methods inherited from class jdave.Specification
addListener, destroy, equal, equal, equal, equal, fireAfterContextCreation, fireAfterContextDestroy, fireAfterContextInstantiation, getContextObjectFactory, isNotNull, maps, needsThreadLocalIsolation, not, raise, raise, raiseExactly, raiseExactly, satisfies, setContextObjectFactory, setStringComparisonFailure, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, specify, where
 
Methods inherited from class jdave.mock.MockSupport
checking, dummy, dummy, mock, mock, mockery, sequence, setDefaultResultForType, states, verifyMocks
 
Methods inherited from class jdave.ContainmentSupport
contain, containAll, containAll, containAll, containAll, containAll, containAll, containAll, containAll, containAll, containAll, containAny, containAny, containAny, containAny, containAny, containAny, containAny, containAny, containAny, containAny, containExactly, containExactly, containExactly, containExactly, containExactly, containExactly, containExactly, containExactly, containExactly, containExactly, containInOrder, containInOrder, containInOrder, containInOrder, containInOrder, containInOrder, containInOrder, containInOrder, containInOrder, containInOrder, containInPartialOrder, containInPartialOrder, containInPartialOrder, containInPartialOrder, containInPartialOrder, containInPartialOrder, containInPartialOrder, containInPartialOrder, containInPartialOrder, containInPartialOrder, contains, containsAll, containsAll, containsAll, containsAll, containsAll, containsAll, containsAll, containsAll, containsAll, containsAll, containsAny, containsAny, containsAny, containsAny, containsAny, containsAny, containsAny, containsAny, containsAny, containsAny, containsExactly, containsExactly, containsExactly, containsExactly, containsExactly, containsExactly, containsExactly, containsExactly, containsExactly, containsExactly, containsInOrder, containsInOrder, containsInOrder, containsInOrder, containsInOrder, containsInOrder, containsInOrder, containsInOrder, containsInOrder, containsInOrder, containsInPartialOrder, containsInPartialOrder, containsInPartialOrder, containsInPartialOrder, containsInPartialOrder, containsInPartialOrder, containsInPartialOrder, containsInPartialOrder, containsInPartialOrder, containsInPartialOrder, newAllContainment, newAllContainment, newAllContainment, newAnyContainment, newAnyContainment, newAnyContainment, newExactContainment, newExactContainment, newExactContainment, newInOrderContainment, newInOrderContainment, newInOrderContainment, newInPartialOrderContainment, newInPartialOrderContainment, newInPartialOrderContainment, newObjectContainment
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

wicket

protected org.apache.wicket.util.tester.BaseWicketTester wicket
Constructor Detail

ComponentSpecification

public ComponentSpecification()
Method Detail

create

public final void create()
Overrides:
create in class jdave.Specification<T extends org.apache.wicket.Component>

onCreate

protected void onCreate()
Called after create(). No need to call super.onCreate().


startComponent

public T startComponent()
Start component for context.


startComponent

public T startComponent(org.apache.wicket.model.IModel model)
Start component for context.

Parameters:
model - The model passed to component that is used for context.

startComponent

public T startComponent(org.apache.wicket.model.IModel model,
                        java.lang.CharSequence pageMarkup,
                        java.lang.String rootComponentId)
Start component for context, using page with given markup.

Parameters:
model - The model passed to component that is used for context.
pageMarkup - Markup (as java.lang.CharSequence) of the page created to host the specified component.
rootComponentId - Wicket id of the root component in the component markup hierarchy given by the pageMarkup parameter. This is the id of the component returned from newComponent method and used as context, often a MarkupContainer or Form.

startComponent

public T startComponent(org.apache.wicket.model.IModel model,
                        org.apache.wicket.util.resource.IResourceStream pageMarkup,
                        java.lang.String rootComponentId)
Start component for context, using page with given markup.

Parameters:
model - The model passed to component that is used for context.
pageMarkup - Markup (as org.apache.wicket.util.resource.IResourceStream) of the page created to host the specified component.
rootComponentId - Wicket id of the root component in the component markup hierarchy given by the pageMarkup parameter. This is the id of the component returned from newComponent method and used as context, often a MarkupContainer or Form.

startComponentWithoutMarkup

public T startComponentWithoutMarkup(org.apache.wicket.model.IModel model)
Start component for context.

The markup file of a component is not needed.

Parameters:
model - The model passed to component that is used for context.

specify

public void specify(org.apache.wicket.MarkupContainer actual,
                    jdave.IContainment containment)
Specify that given container contains given model objects.

This is most often used with RefreshingViews and ListViews.

ListView list = new ListView("stooges", Arrays.asList("Larry", "Moe", "Curly")) { ... }; specify(list, containsInOrder("Larry", "Moe", "Curly");

Parameters:
actual - the container of Wicket components
containment - any containment, see: http://www.jdave.org/documentation.html#containments

itemAt

public org.apache.wicket.markup.repeater.Item itemAt(org.apache.wicket.markup.repeater.RepeatingView view,
                                                     int index)
Select an item from a RepeatingView.


itemAt

public org.apache.wicket.markup.html.list.ListItem itemAt(org.apache.wicket.markup.html.list.ListView view,
                                                          int index)
Select an item from a ListView.


modelObjects

public java.util.List<?> modelObjects(java.util.Iterator<?> components)
Collect model objects from given components.


newWicketTester

protected org.apache.wicket.util.tester.BaseWicketTester newWicketTester()
Create a WicketTester for the specification.

By default, WicketTester is created as:

return new BaseWicketTester(newApplication());
So, it is possible to overwrite newApplication if you just need a different Application for a specification.

See Also:
newApplication()

newApplication

protected org.apache.wicket.protocol.http.WebApplication newApplication()
Create the application for the specification.


selectFirst

public <S extends org.apache.wicket.Component> Selection<S> selectFirst(java.lang.Class<S> type)
Select first component whose model object matches given Hamcrest matcher:
Item item = selectFirst(Item.class).which(is(0)).from(context);


selectAll

public <S extends org.apache.wicket.Component> MultiSelection<S> selectAll(java.lang.Class<S> type)
Select all components whose model objects match given Hamcrest matcher:
List


selectFirst

public <S extends org.apache.wicket.Component> Selection<S> selectFirst(java.lang.Class<S> type,
                                                                        java.lang.String wicketId)
Select first component whose Wicket id is given String:
Label itemName = selectFirst(Label.class, "name").from(context);


selectAll

public <S extends org.apache.wicket.Component> MultiSelection<S> selectAll(java.lang.Class<S> type,
                                                                           java.lang.String wicketId)
Select all components whose ids are given Wicket id:
List


newComponent

protected abstract T newComponent(java.lang.String id,
                                  org.apache.wicket.model.IModel model)
Create a new instance of a Wicket component to be specified.

Page, the id is null.

Parameters:
id - The id of a component, null if the component is a Page,
model - A model for the component which was passed in startComponent method.
See Also:
startComponent(IModel)


Copyright ? 2008. All Rights Reserved.