You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2010/11/16 11:10:43 UTC
svn commit: r1035570 - in /incubator/isis/trunk: ./
support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/common/
support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/stories/
viewer/bdd/concordi...
Author: danhaywood
Date: Tue Nov 16 10:10:42 2010
New Revision: 1035570
URL: http://svn.apache.org/viewvc?rev=1035570&view=rev
Log:
some changes for BDD viewer; utility scripts in trunk
Added:
incubator/isis/trunk/mvn-build-all.sh (with props)
incubator/isis/trunk/mvn-build-standard.sh (with props)
incubator/isis/trunk/mvn-site-standard-local-full.sh (with props)
incubator/isis/trunk/mvn-site-standard-local.sh (with props)
incubator/isis/trunk/svn-st.sh (with props)
incubator/isis/trunk/svn-up.cmd
- copied unchanged from r1035481, incubator/isis/trunk/svnup.cmd
incubator/isis/trunk/svn-up.sh (props changed)
- copied unchanged from r1035481, incubator/isis/trunk/svnup.sh
Removed:
incubator/isis/trunk/svnup.cmd
incubator/isis/trunk/svnup.sh
Modified:
incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/common/BootstrapInExplorationMode.html
incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/stories/NewClaimDefaultsOkStory.html
incubator/isis/trunk/viewer/bdd/concordion/src/main/java/org/apache/isis/viewer/bdd/concordion/AbstractIsisConcordionTest.java
incubator/isis/trunk/viewer/bdd/src/docbkx/guide/isis-bdd-viewer.xml
Added: incubator/isis/trunk/mvn-build-all.sh
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/mvn-build-all.sh?rev=1035570&view=auto
==============================================================================
--- incubator/isis/trunk/mvn-build-all.sh (added)
+++ incubator/isis/trunk/mvn-build-all.sh Tue Nov 16 10:10:42 2010
@@ -0,0 +1 @@
+mvn clean install -D modules=all -o
\ No newline at end of file
Propchange: incubator/isis/trunk/mvn-build-all.sh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/isis/trunk/mvn-build-all.sh
------------------------------------------------------------------------------
svn:executable = *
Added: incubator/isis/trunk/mvn-build-standard.sh
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/mvn-build-standard.sh?rev=1035570&view=auto
==============================================================================
--- incubator/isis/trunk/mvn-build-standard.sh (added)
+++ incubator/isis/trunk/mvn-build-standard.sh Tue Nov 16 10:10:42 2010
@@ -0,0 +1 @@
+mvn clean install -D modules=standard -o
\ No newline at end of file
Propchange: incubator/isis/trunk/mvn-build-standard.sh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/isis/trunk/mvn-build-standard.sh
------------------------------------------------------------------------------
svn:executable = *
Added: incubator/isis/trunk/mvn-site-standard-local-full.sh
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/mvn-site-standard-local-full.sh?rev=1035570&view=auto
==============================================================================
--- incubator/isis/trunk/mvn-site-standard-local-full.sh (added)
+++ incubator/isis/trunk/mvn-site-standard-local-full.sh Tue Nov 16 10:10:42 2010
@@ -0,0 +1 @@
+mvn site-deploy -D modules=standard -D site=full -D deploy=local -o
\ No newline at end of file
Propchange: incubator/isis/trunk/mvn-site-standard-local-full.sh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/isis/trunk/mvn-site-standard-local-full.sh
------------------------------------------------------------------------------
svn:executable = *
Added: incubator/isis/trunk/mvn-site-standard-local.sh
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/mvn-site-standard-local.sh?rev=1035570&view=auto
==============================================================================
--- incubator/isis/trunk/mvn-site-standard-local.sh (added)
+++ incubator/isis/trunk/mvn-site-standard-local.sh Tue Nov 16 10:10:42 2010
@@ -0,0 +1 @@
+mvn site-deploy -D modules=standard -D deploy=local -o
\ No newline at end of file
Propchange: incubator/isis/trunk/mvn-site-standard-local.sh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/isis/trunk/mvn-site-standard-local.sh
------------------------------------------------------------------------------
svn:executable = *
Modified: incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/common/BootstrapInExplorationMode.html
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/common/BootstrapInExplorationMode.html?rev=1035570&r1=1035569&r2=1035570&view=diff
==============================================================================
--- incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/common/BootstrapInExplorationMode.html (original)
+++ incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/common/BootstrapInExplorationMode.html Tue Nov 16 10:10:42 2010
@@ -17,7 +17,7 @@ mode,
</li>
<li>
<p>with services: </p>
-<table isis:execute="#result=aliasServices(#aliasAs, #className)">
+<table concordion:execute="#result=aliasService(#aliasAs, #className)">
<tr>
<th concordion:set="#className">Class Name</th>
<th concordion:set="#aliasAs">aliasAs</th>
Modified: incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/stories/NewClaimDefaultsOkStory.html
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/stories/NewClaimDefaultsOkStory.html?rev=1035570&r1=1035569&r2=1035570&view=diff
==============================================================================
--- incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/stories/NewClaimDefaultsOkStory.html (original)
+++ incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/stories/NewClaimDefaultsOkStory.html Tue Nov 16 10:10:42 2010
@@ -14,7 +14,7 @@
href="../common/BootstrapInExplorationMode.html">exploration</a> mode.</p>
</li>
<li>
- <p concordion:execute="#result=timeIsNow(#dateTime)"><span
+ <p concordion:execute="#result=timeIs(#dateTime)"><span
concordion:assertTrue="#result">date/time</span> being <span
concordion:set="#dateTime">2 mar 2007 09:20</span>, and</p>
</li>
Added: incubator/isis/trunk/svn-st.sh
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/svn-st.sh?rev=1035570&view=auto
==============================================================================
--- incubator/isis/trunk/svn-st.sh (added)
+++ incubator/isis/trunk/svn-st.sh Tue Nov 16 10:10:42 2010
@@ -0,0 +1 @@
+svn st --ignore-externals | grep -v "^X"
Propchange: incubator/isis/trunk/svn-st.sh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/isis/trunk/svn-st.sh
------------------------------------------------------------------------------
svn:executable = *
Propchange: incubator/isis/trunk/svn-up.sh
------------------------------------------------------------------------------
svn:executable = *
Modified: incubator/isis/trunk/viewer/bdd/concordion/src/main/java/org/apache/isis/viewer/bdd/concordion/AbstractIsisConcordionTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/concordion/src/main/java/org/apache/isis/viewer/bdd/concordion/AbstractIsisConcordionTest.java?rev=1035570&r1=1035569&r2=1035570&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/concordion/src/main/java/org/apache/isis/viewer/bdd/concordion/AbstractIsisConcordionTest.java (original)
+++ incubator/isis/trunk/viewer/bdd/concordion/src/main/java/org/apache/isis/viewer/bdd/concordion/AbstractIsisConcordionTest.java Tue Nov 16 10:10:42 2010
@@ -12,8 +12,6 @@ import java.util.Date;
import java.util.List;
import org.apache.isis.core.commons.io.IoUtils;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.config.ConfigurationBuilder;
import org.apache.isis.runtime.system.DeploymentType;
import org.apache.isis.viewer.bdd.common.Story;
import org.apache.isis.viewer.bdd.common.StoryValueException;
@@ -50,6 +48,10 @@ public class AbstractIsisConcordionTest
return storyThreadLocal.get();
}
+ // ////////////////////////////////////////////////////////////////////////
+ // @Test
+ // ////////////////////////////////////////////////////////////////////////
+
@Test
public void runStory() throws Throwable {
Concordion concordion = createConcordion();
@@ -88,6 +90,10 @@ public class AbstractIsisConcordionTest
return name.replace('.', File.separatorChar);
}
+ // ////////////////////////////////////////////////////////////////////////
+ // Hooks
+ // ////////////////////////////////////////////////////////////////////////
+
/**
* Optional hook method to specify the directory to which the processed HTML should be copied.
*
@@ -146,16 +152,9 @@ public class AbstractIsisConcordionTest
return builder.build();
}
- @SuppressWarnings("unused")
- private ConfigurationBuilder configurationBuilder;
-
- public String getConfigDirectory() {
- return getStory().getConfigDirectory();
- }
-
- public DeploymentType getDeploymentType() {
- return getStory().getDeploymentType();
- }
+ // ////////////////////////////////////////////////////////////////////////
+ // bootstrapIsis / shutdownIsis
+ // ////////////////////////////////////////////////////////////////////////
/**
* For calling within a <tt>#setUp()</tt> method.
@@ -177,25 +176,13 @@ public class AbstractIsisConcordionTest
return true; // any runtime exception will propagate
}
- public void aliasAs(String alias, ObjectAdapter adapter) {
- getStory().getAliasRegistry().aliasAs(alias, adapter);
- }
-
- public String aliasPrefixedAs(String prefix, ObjectAdapter adapter) {
- return getStory().getAliasRegistry().aliasPrefixedAs(prefix, adapter);
- }
-
- public void aliasServiceAs(String alias, String serviceClassName) throws StoryValueException {
- getStory().getAliasRegistry().aliasService(alias, serviceClassName);
+ public void shutdownIsis() {
+ getStory().shutdownIsis();
}
- public String getAlias(ObjectAdapter adapter) {
- return getStory().getAliasRegistry().getAlias(adapter);
- }
-
- public ObjectAdapter getAliased(String alias) {
- return getStory().getAliasRegistry().getAliased(alias);
- }
+ // ////////////////////////////////////////////////////////////////////////
+ // logon as / switch user
+ // ////////////////////////////////////////////////////////////////////////
public boolean logonAs(String userName) {
getStory().logonAsOrSwitchUserTo(userName);
@@ -216,23 +203,19 @@ public class AbstractIsisConcordionTest
logonAsWithRoles(userName, roleListStr);
}
- public boolean dateIs(String dateAndTimeStr) throws StoryValueException {
- return dateAndTimeIsNow(dateAndTimeStr);
- }
+ // ////////////////////////////////////////////////////////////////////////
+ // date is / time is
+ // ////////////////////////////////////////////////////////////////////////
- public boolean dateIsNow(String dateAndTimeStr) throws StoryValueException {
- return dateAndTimeIsNow(dateAndTimeStr);
+ public boolean dateIs(String dateAndTimeStr) throws StoryValueException {
+ return dateAndTimeIs(dateAndTimeStr);
}
public boolean timeIs(String dateAndTimeStr) throws StoryValueException {
- return dateAndTimeIsNow(dateAndTimeStr);
- }
-
- public boolean timeIsNow(String dateAndTimeStr) throws StoryValueException {
- return dateAndTimeIsNow(dateAndTimeStr);
+ return dateAndTimeIs(dateAndTimeStr);
}
- protected boolean dateAndTimeIsNow(String dateAndTimeStr) throws StoryValueException {
+ private boolean dateAndTimeIs(String dateAndTimeStr) throws StoryValueException {
getStory().dateAndTimeIs(asDateAndTime(dateAndTimeStr));
return true;
}
@@ -246,22 +229,26 @@ public class AbstractIsisConcordionTest
}
}
- public boolean aliasService(String alias, String className) {
- return aliasServices(className, alias);
+ // ////////////////////////////////////////////////////////////////////////
+ // alias service
+ // ////////////////////////////////////////////////////////////////////////
+
+ public boolean aliasService(String aliasAs, String className) {
+ return aliasServices(aliasAs, className);
}
- public boolean aliasServices(String alias, String className) {
+ public boolean aliasServices(String aliasAs, String className) {
try {
- getStory().getAliasRegistry().aliasService(alias, className);
+ getStory().getAliasRegistry().aliasService(aliasAs, className);
return true;
} catch (StoryValueException e) {
return false;
}
}
- public void shutdownNakedObjects() {
- getStory().shutdownIsis();
- }
+ // ////////////////////////////////////////////////////////////////////////
+ // setup object
+ // ////////////////////////////////////////////////////////////////////////
public String setUpObject(String className, String alias, String arg0) {
return setUpObjectsVarargs(className, alias, arg0);
@@ -329,6 +316,10 @@ public class AbstractIsisConcordionTest
}
}
+ // ////////////////////////////////////////////////////////////////////////
+ // using isis viewer
+ // ////////////////////////////////////////////////////////////////////////
+
private UsingIsisViewerForConcordion usingIsisViewer;
public String usingIsisViewer(String onObject, String aliasResultAs, String perform, String usingMember) {
@@ -419,6 +410,10 @@ public class AbstractIsisConcordionTest
}
}
+ // ////////////////////////////////////////////////////////////////////////
+ // alias items in list
+ // ////////////////////////////////////////////////////////////////////////
+
private AliasItemsInListForConcordion aliasItemsInList;
public String aliasItemsInList(String listAlias, String title, String aliasAs) {
@@ -443,6 +438,10 @@ public class AbstractIsisConcordionTest
return !executingTable();
}
+ // ////////////////////////////////////////////////////////////////////////
+ // run viewer
+ // ////////////////////////////////////////////////////////////////////////
+
public void runViewer() {
getStory().runViewer();
}
Modified: incubator/isis/trunk/viewer/bdd/src/docbkx/guide/isis-bdd-viewer.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/src/docbkx/guide/isis-bdd-viewer.xml?rev=1035570&r1=1035569&r2=1035570&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/src/docbkx/guide/isis-bdd-viewer.xml (original)
+++ incubator/isis/trunk/viewer/bdd/src/docbkx/guide/isis-bdd-viewer.xml Tue Nov 16 10:10:42 2010
@@ -635,6 +635,9 @@
</para>
</listitem>
</itemizedlist>
+
+ <para>Whichever is used, they both delegate to the common
+ <methodname>Story#bootstrapIsis(...)</methodname> method.</para>
</sect3>
<sect3>
@@ -643,31 +646,27 @@
<para>The <classname>BootstrapIsisConfiguredFromInMode</classname>
fixture is used to bootstrap Isis. It takes the form:</para>
- <table>
- <title>Bootstrap Isis</title>
-
+ <informaltable>
<tgroup cols="4">
+ <colspec colwidth="3*" />
+
<tbody>
<row>
- <entry><classname>BootstrapIsisConfiguredFrom</classname></entry>
+ <entry><classname>Bootstrap Isis Configured
+ From</classname></entry>
- <entry><emphasis>configDirectory</emphasis></entry>
+ <entry><emphasis>config Directory</emphasis></entry>
- <entry><methodname>InMode</methodname></entry>
+ <entry><methodname>In Mode</methodname></entry>
- <entry><emphasis>deploymentType</emphasis></entry>
+ <entry><emphasis>deployment Type</emphasis></entry>
</row>
</tbody>
</tgroup>
- </table>
-
- <para></para>
-
- <para></para>
-
- <para></para>
+ </informaltable>
- <para></para>
+ <para>This delegates to the common
+ <methodname>Story#bootstrapIsis(...)</methodname> method.</para>
</sect3>
</sect2>
</sect1>
@@ -698,61 +697,6 @@
<tbody>
<row>
- <entry><classname>Story#dateAndTimeIs(java.util.Date)</classname><para>Sets
- the clock to a specific date and time.</para><para>This installs
- the <classname>FixtureClock</classname> as the implementation of
- the <classname>Clock</classname> singleton (in the applib). If
- this fixture is not called, then the default system clock is
- used, which gets the time from the host computer. The
- Story#debugClock () method (<xref linkend="sec.Debugging" />)
- can be used to verify the clock state.</para></entry>
-
- <entry><classname>#dateIs(String
- dateAndTimeStr)</classname><para><methodname>#dateIsNow(String
- dateAndTimeStr)</methodname></para><para><methodname>#timeIs(String
- dateAndTimeStr)</methodname></para><para><methodname>#timeIsNow(String
- dateAndTimeStr)</methodname></para><para>Intended to be called
- from the <acronym>XHTML</acronym>, as part of the "given".
- Parsed in format 'dd MMM yyyy hh:mm'</para></entry>
-
- <entry><para><methodname>|DateIs|dateAndTimeStr|</methodname></para><para><methodname>|DateIsNow|dateAndTimeStr|</methodname></para><para><methodname>|TimeIs|dateAndTimeStr|</methodname></para><para><methodname>|TimeIsNow|dateAndTimeStr|</methodname></para><para>Typically
- called early on in the test, as part of the "given". Parsed in
- format 'dd MMM yyyy hh:mm'</para></entry>
- </row>
-
- <row>
- <entry><methodname>Story#logonAsOrSwitchUserTo(String
- userName)</methodname><para>Logs on / switch user to as a
- specific
- user.</para><para><methodname>Story#logonAsOrSwitchUserTo(String
- userName, List<String>
- roleNames)</methodname></para><para>Logs on to a specific user,
- with specified roles. Part of the initialization for a
- particular story's setup, and typically referenced in the test
- suite or story's own setup page.</para><para>Also used for
- switching the current user within a story, eg to check a
- workflow between different users.</para></entry>
-
- <entry><methodname>#logonAs(String
- userName)</methodname><para><methodname>#logonAs(String
- userName, String roleListStr)</methodname></para><para>Intended
- to be called from the <acronym>XHTML</acronym>, as part of the
- "given". The role list, if specified, should be
- comma-separated.</para><methodname>#switchUserTo(String
- userName)</methodname><para><methodname>#switchUserTo(String
- userName, String roleListStr)</methodname></para><para>Switch
- the currently logged-on user to another user, optionally with
- specified roles.</para></entry>
-
- <entry><para><methodname>|LogonAs|userName|</methodname></para><para><methodname>|LogonAs|userName|WithRoles|roleList|</methodname></para><para>Typically
- called early on in the test, as part of the "given". The role
- list, if specified, should be
- comma-separated.</para><para><methodname>|SwitchUserTo|userName|</methodname></para><para><methodname>|SwitchUserTo|userName|WithRoles|roleList|</methodname></para><para>Switch
- the currently logged-on user to another user, optionally with
- specified roles.</para></entry>
- </row>
-
- <row>
<entry><methodname>Story#getAliasRegistry()</methodname><para>and</para><para><methodname>AliasRegistry#aliasService(String
aliasAs, String
serviceClassName)</methodname></para><para>Specifies an alias to
@@ -791,51 +735,267 @@
</tgroup>
</table>
- <sect2>
- <title>Setting Date and Time</title>
+ <sect2 id="sec.LogonAsSwitchUserTo">
+ <title>Logging On / Switching User</title>
- <para></para>
+ <para>Used to specify the currently logged-on user. Should always be
+ called near the top of the story, as part of the "given". Can also be
+ used for switching the current user later on in the story, eg to check
+ a workflow between different users.</para>
<sect3>
<title>Common</title>
- <para></para>
+ <para>The common library provides two overloaded methods, depending
+ on whether the roles for the user need to be specified or
+ not:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><methodname>Story#logonAsOrSwitchUserTo(String
+ userName)</methodname></para>
+
+ <para>Logs on / switch user to as a specific user.</para>
+ </listitem>
+
+ <listitem>
+ <para><methodname>Story#logonAsOrSwitchUserTo(String userName,
+ List<String> roleNames)</methodname></para>
+
+ <para>Logs on to a specific user, with specified roles. Part of
+ the initialization for a particular story's setup, and typically
+ referenced in the test suite or story's own setup page.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The username and roles are not validated against.</para>
</sect3>
<sect3>
<title>Concordion</title>
- <para></para>
+ <para>The Concordion integration provides two sets of overloaded
+ methods:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><methodname>#logonAs(String userName)</methodname> and
+ <methodname>#logonAs(String userName, String
+ roleListStr)</methodname></para>
+
+ <para>Intended to be called in the initial setup, as part of the
+ story's "given".</para>
+ </listitem>
+
+ <listitem>
+ <para><methodname>#switchUserTo(String userName)</methodname>
+ and <methodname>#switchUserTo(String userName, String
+ roleListStr)</methodname></para>
+
+ <para>(Optional); intended to be called later on in the story,
+ eg, to test workflow.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Each of these is intended to be called from the
+ <acronym>XHTML</acronym>. The role list, if specified, should be
+ comma-separated (any white space will be ignored).</para>
</sect3>
<sect3>
<title>FitNesse</title>
- <para></para>
+ <para>The FitNesse integration provides two sets of overloaded
+ fixtures:</para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec />
+
+ <tbody>
+ <row>
+ <entry><classname>Logon As</classname></entry>
+
+ <entry><emphasis>user name</emphasis></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <informaltable>
+ <tgroup cols="4">
+ <colspec />
+
+ <tbody>
+ <row>
+ <entry><classname>Logon As</classname></entry>
+
+ <entry><emphasis>user name</emphasis></entry>
+
+ <entry><classname>With Roles</classname></entry>
+
+ <entry><emphasis>role list</emphasis></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Intended to be called in the initial setup, as part of the
+ story's "given".</para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec />
+
+ <tbody>
+ <row>
+ <entry><classname>Switch User To</classname></entry>
+
+ <entry><emphasis>user name</emphasis></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <informaltable>
+ <tgroup cols="4">
+ <colspec />
+
+ <tbody>
+ <row>
+ <entry><classname>Switch User To</classname></entry>
+
+ <entry><emphasis>user name</emphasis></entry>
+
+ <entry><classname>With Roles</classname></entry>
+
+ <entry><emphasis>role list</emphasis></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Optional; intended to be called later on in the story, eg, to
+ test workflow.</para>
+
+ <para>The role list, if specified, should be comma-separated (any
+ white space will be ignored).</para>
</sect3>
</sect2>
- <sect2 id="sec.LogonAsSwitchUserTo">
- <title>Logging On / Switching User</title>
+ <sect2>
+ <title>Setting Date and Time</title>
- <para></para>
+ <para>Sets the story's clock to a specific date and time. Stories that
+ deal with domain objects that use the clock (eg for the defaulting of
+ a date/time property) will typically need to call this fixture.</para>
+
+ <para>Typically called within the "given", though may be called many
+ times throughout the story.</para>
<sect3>
<title>Common</title>
- <para></para>
+ <para><methodname>Story#dateAndTimeIs(java.util.Date)</methodname></para>
+
+ <para>This fixture installs the <classname>FixtureClock</classname>
+ as the implementation of the <classname>Clock</classname> singleton
+ (in the applib). Every call to the <classname>Clock</classname> will
+ return the same date/time until the method is called again.</para>
+
+ <para>If this fixture is not called, then the default system clock
+ is used, which gets the time from the host computer. The
+ <methodname>Story#debugClock()</methodname> method (<xref
+ linkend="sec.DebugClock" />) can be used to verify the clock
+ state.</para>
</sect3>
<sect3>
<title>Concordion</title>
- <para></para>
+ <para>The Concordion integration provides a number of overloaded
+ methods, all designed to be called from the XHTML:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><methodname>#dateIs(String
+ dateAndTimeStr)</methodname></para>
+ </listitem>
+
+ <listitem>
+ <para><methodname>#timeIs(String
+ dateAndTimeStr)</methodname></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The overloaded forms are just for convenience. The date/time
+ provided is parsed against the format 'dd MMM yyyy hh:mm'</para>
</sect3>
<sect3>
<title>FitNesse</title>
- <para></para>
+ <para>The FitNesse integration provides four versions (overloaded
+ only so reads well in the page):</para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec />
+
+ <tbody>
+ <row>
+ <entry><classname>yDate Is</classname></entry>
+
+ <entry><emphasis>date and time</emphasis></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec />
+
+ <tbody>
+ <row>
+ <entry><classname>Date Is Now</classname></entry>
+
+ <entry><emphasis>date and time</emphasis></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec />
+
+ <tbody>
+ <row>
+ <entry><classname>Time Is</classname></entry>
+
+ <entry><emphasis>date and time</emphasis></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec />
+
+ <tbody>
+ <row>
+ <entry><classname>Time Is Now</classname></entry>
+
+ <entry><emphasis>date and time</emphasis></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>In each case the date/time provided is parsed against the
+ format 'dd MMM yyyy hh:mm'</para>
</sect3>
</sect2>
@@ -1174,7 +1334,7 @@
</sect2>
<sect2 id="sec.DebugObjectStore">
- <title>Debugging the Clock</title>
+ <title>Debugging the Object Store</title>
<para>Dumps the contents of the object store. Useful for debugging
setup (through SetupObjects, <xref linkend="sec.SetUpObjects" />, and