-
Notifications
You must be signed in to change notification settings - Fork 1
ToolingTestPlan
vankeisb edited this page Mar 23, 2012
·
2 revisions
In the meantime we automate everything, the test plan goes like this.
$ woko init
Fill in the usual values... The output should look like :
vankeisb@irvkb:/tmp$ woko init
__ __ _ __
\ \ _ / /___ | |/ / ___
\ \/ \/ // o \| K / \
\__W__/ \___/|_|\_\\_o_/ 2.0
POJOs on the Web !
Initializing project
> Project name ?
> Project name ?
> Project name ? myapp
> Maven groupId ? com.myco.myapp
> Your project's version ? [1.0-SNAPSHOT]
| Generating your project, please wait, it can take a while to download everything...
> Would you like to use Bootstrap for UI ? [y] :
> Would you like to use Groovy ? [y] :
> Specify your default package name [com.myco.myapp] :
| - web.xml file created : src/main/webapp/WEB-INF/web.xml
| - Layout facet created : com.myco.myapp.facets.MyLayout
| - resource bundle created : src/main/resources/application.properties
|
| Your project has been generated in : myapp
| Run 'woko start' in order to launch your app in a local Jetty container
And you should be in folder myapp
. Now start the server :
$ woko start
The server should start and all features for wdevel should work :
Now list roles :
$ woko list roles
The output should look like :
vankeisb@irvkb:/tmp/myapp$ woko list roles
__ __ _ __
\ \ _ / /___ | |/ / ___
\ \/ \/ // o \| K / \
\__W__/ \___/|_|\_\\_o_/ 2.0
POJOs on the Web !
3 role(s) used in faced keys :
all
developer
guest
List facets :
$ woko list facets
vankeisb@irvkb:/tmp/myapp$ woko list facets
__ __ _ __
\ \ _ / /___ | |/ / ___
\ \/ \/ // o \| K / \
\__W__/ \___/|_|\_\\_o_/ 2.0
POJOs on the Web !
55 facets found :
create, developer, java.lang.Object, woko.facets.builtin.developer.Create
create, guest, java.lang.Object, woko.facets.builtin.auth.LoginRequiredFacet
delete, developer, java.lang.Object, woko.facets.builtin.developer.DeleteImpl
delete, guest, java.lang.Object, woko.facets.builtin.auth.LoginRequiredFacet
edit, developer, java.lang.Object, woko.facets.builtin.developer.EditImpl
edit, guest, java.lang.Object, woko.facets.builtin.auth.LoginRequiredFacet
find, developer, java.lang.Object, woko.facets.builtin.developer.Find
find, guest, java.lang.Object, woko.facets.builtin.auth.LoginRequiredFacet
groovy, developer, java.lang.Object, woko.facets.builtin.developer.Groovy
home, all, java.lang.Object, woko.facets.builtin.all.HomeImpl
home, developer, java.lang.Object, woko.facets.builtin.developer.HomeImpl
json, developer, java.lang.Object, woko.facets.builtin.developer.JsonImpl
json, guest, java.lang.Object, woko.facets.builtin.auth.LoginRequiredFacet
layout, all, java.lang.Object, com.myco.myapp.facets.MyLayout
list, developer, java.lang.Object, woko.facets.builtin.developer.ListImpl
list, guest, java.lang.Object, woko.facets.builtin.auth.LoginRequiredFacet
logout, all, java.lang.Object, woko.facets.builtin.all.LogoutImpl
navBar, all, java.lang.Object, woko.facets.builtin.all.NavBarAll
navBar, developer, java.lang.Object, woko.facets.builtin.developer.NavBarDev
push, developer, java.lang.Object, woko.facets.builtin.push.PushFacet
renderLinks, all, java.lang.Object, woko.facets.builtin.all.RenderLinksImpl
renderLinksEdit, all, java.lang.Object, woko.facets.builtin.all.RenderLinksEditImpl
renderObject, all, java.lang.Object, woko.facets.builtin.all.RenderObjectImpl
renderObjectEdit, all, java.lang.Object, woko.facets.builtin.all.RenderObjectEditImpl
renderObjectJson, all, java.lang.Object, woko.facets.builtin.all.RenderObjectJsonImpl
renderObjectJson, all, net.sourceforge.stripes.validation.ValidationErrors, woko.facets.builtin.all.RenderValidationErrorsJson
renderProperties, all, java.lang.Object, woko.facets.builtin.all.RenderPropertiesImpl
renderPropertiesEdit, all, java.lang.Object, woko.facets.builtin.all.RenderPropertiesEditImpl
renderPropertyName, all, java.lang.Object, woko.facets.builtin.all.RenderPropertyNameImpl
renderPropertyValue, all, java.lang.Object, woko.facets.builtin.all.RenderPropertyValueImpl
renderPropertyValue, all, java.util.Date, woko.facets.builtin.all.RenderPropertyValueDate
renderPropertyValue, all, java.util.Collection, woko.facets.builtin.all.RenderPropertyValueCollection
renderPropertyValueEdit, all, java.lang.Number, woko.facets.builtin.all.RenderPropertyValueEditStripesText
renderPropertyValueEdit, all, java.lang.String, woko.facets.builtin.all.RenderPropertyValueEditStripesText
renderPropertyValueEdit, all, java.util.Date, woko.facets.builtin.all.RenderPropertyValueEditDate
renderPropertyValueJson, all, java.lang.Boolean, woko.facets.builtin.all.RenderPropertyValueJsonBasicTypes
renderPropertyValueJson, all, java.lang.Class, woko.facets.builtin.all.RenderPropertyValueJsonClass
renderPropertyValueJson, all, java.lang.Number, woko.facets.builtin.all.RenderPropertyValueJsonBasicTypes
renderPropertyValueJson, all, java.lang.Object, woko.facets.builtin.all.RenderPropertyValueJsonObject
renderPropertyValueJson, all, java.lang.String, woko.facets.builtin.all.RenderPropertyValueJsonBasicTypes
renderPropertyValueJson, all, java.util.Date, woko.facets.builtin.all.RenderPropertyValueJsonDate
renderPropertyValueJson, all, java.util.Collection, woko.facets.builtin.all.RenderPropertyValueJsonCollection
renderTitle, all, java.lang.Object, woko.facets.builtin.all.RenderTitleImpl
save, developer, java.lang.Object, woko.facets.builtin.developer.SaveImpl
save, guest, java.lang.Object, woko.facets.builtin.auth.LoginRequiredFacet
search, all, java.lang.Object, woko.facets.builtin.auth.LoginRequiredFacet
search, developer, java.lang.Object, woko.facets.builtin.developer.SearchImpl
studio, developer, java.lang.Object, woko.facets.builtin.developer.WokoStudio
studio, guest, java.lang.Object, woko.facets.builtin.auth.LoginRequiredFacet
termCloud, developer, java.lang.Object, woko.facets.builtin.hbcompass.ViewTermCloud
termCloudFragment, developer, woko.hbcompass.tagcloud.CompassCloud, woko.facets.builtin.hbcompass.TermCloudFragmentFacet
toString, developer, java.lang.Object, woko.facets.builtin.developer.ToString
validate, all, java.lang.Object, woko.facets.builtin.hibernate.HibernateValidateFacet
view, developer, java.lang.Object, woko.facets.builtin.developer.ViewImpl
view, guest, java.lang.Object, woko.facets.builtin.auth.LoginRequiredFacet
And facet override :
$ woko create facet
vankeisb@irvkb:/tmp/myapp$ woko create facet
__ __ _ __
\ \ _ / /___ | |/ / ___
\ \/ \/ // o \| K / \
\__W__/ \___/|_|\_\\_o_/ 2.0
POJOs on the Web !
> Facet name : renderTitle
| Found 1 facet(s) with the same name :
| - renderTitle, all, java.lang.Object, class woko.facets.builtin.all.RenderTitleImpl
| You might be overriding a facet...
|
> Role [all] :
| Found 1 facet(s) with the same name and role :
| - renderTitle, all, java.lang.Object, class woko.facets.builtin.all.RenderTitleImpl
| You are overriding an existing facet by type...
|
> Target type [java.lang.Object] :MyEntity
| Resolved target type : com.myco.myapp.model.MyEntity
| You are overriding facet(s) by type...
|
| Found interface and possible base class for your facet :
| - interface : woko.facets.builtin.RenderTitle
| - base class : woko.facets.builtin.all.RenderTitleImpl
|
> Do you want to use the base class ? [y] :
| Your facet will extend woko.facets.builtin.all.RenderTitleImpl
|
| The facet is a Fragment Facet...
|
> Do you want to generate JSP a fragment ? [y] :
> Enter the JSP fragment path [/WEB-INF/jsp/all/renderTitleMyEntityAll.jsp] :
> Specify the facet class name [com.myco.myapp.facets.all.RenderTitleMyEntityAll] :
| Groovy seems to be available in your project...
|
> Do you want to write the facet in Groovy ? [y] :
|
| --- Summary ---
|
| Facet key : renderTitle, all, com.myco.myapp.model.MyEntity
| Facet class : com.myco.myapp.facets.all.RenderTitleMyEntityAll
| Implements : woko.facets.builtin.RenderTitle
| Extends : woko.facets.builtin.all.RenderTitleImpl
| JSP fragment path : /WEB-INF/jsp/all/renderTitleMyEntityAll.jsp
| Facet written in : Groovy
| Facet source dir : /private/tmp/myapp/src/main/groovy
|
> Is this OK ? Shall we generate all this (n to view gen sources only) ? [y] :
| Generating file /private/tmp/myapp/src/main/groovy/com/myco/myapp/facets/all/RenderTitleMyEntityAll.groovy
| Using JSP fragment from base class :
| - /WEB-INF/woko/jsp/all/renderTitle.jsp
| JSP fragment written
2 file(s) generated
- /private/tmp/myapp/src/main/groovy/com/myco/myapp/facets/all/RenderTitleMyEntityAll.groovy
- /private/tmp/myapp/src/main/webapp//WEB-INF/jsp/all/renderTitleMyEntityAll.jsp
Edit the groovy facet src/main/groovy/com/myco/myapp/facets/all/RenderTitleMyEntityAll.groovy
:
package com.myco.myapp.facets.all
import net.sourceforge.jfacets.annotations.FacetKey
import com.myco.myapp.model.MyEntity
import woko.facets.builtin.all.RenderTitleImpl
import woko.facets.builtin.RenderTitle
@FacetKey(name="renderTitle", profileId="all", targetObjectType=MyEntity.class)
class RenderTitleMyEntityAll extends RenderTitleImpl implements RenderTitle {
@Override
String getTitle() {
"oooh yeah"
}
@Override
String getPath() {
"/WEB-INF/jsp/all/renderTitleMyEntityAll.jsp"
}
}
Now push :
$ woko push quiet
vankeisb@irvkb:/tmp/myapp$ woko push quiet
__ __ _ __
\ \ _ / /___ | |/ / ___
\ \/ \/ // o \| K / \
\__W__/ \___/|_|\_\\_o_/ 2.0
POJOs on the Web !
| quiet mode : pushing all !
| The following facet source files will be pushed :
| - /private/tmp/myapp/src/main/groovy/com/myco/myapp/facets/all/RenderTitleMyEntityAll.groovy
| - /private/tmp/myapp/src/main/groovy/com/myco/myapp/facets/MyLayout.groovy
| Authenticated wdevel on http://localhost:8080/myapp
| 2 source(s) pushed and compiled :
| - com.myco.myapp.facets.all.RenderTitleMyEntityAll => (renderTitle,all,com.myco.myapp.model.MyEntity)
| - com.myco.myapp.facets.MyLayout => (layout,all,java.lang.Object)
| Copying from webapp with extensions [jsp, html, js, css, png, jpg, jpeg]
| - 1 resource(s) copied
And check if it works in the browser.
Now try CRUD :
$ woko crud
__ __ _ __
\ \ _ / /___ | |/ / ___
\ \/ \/ // o \| K / \
\__W__/ \___/|_|\_\\_o_/ 2.0
POJOs on the Web !
> type of the target entity : MyEntity
| Resolved target type : com.myco.myapp.model.MyEntity
> specify the role : guest
> generate edit facet ? [y] :
> generate delete facet ? [y] :
| Groovy seems to be available in your project...
|
> Do you want to write the facet in Groovy ? [y] :
|
| --- Summary ---
|
| The following facet(s) are going to be generated :
| - view, guest, class com.myco.myapp.model.MyEntity
| - edit, guest, class com.myco.myapp.model.MyEntity
| - save, guest, class com.myco.myapp.model.MyEntity
| - delete, guest, class com.myco.myapp.model.MyEntity
|
| Facet written in : Groovy
| Facet source dir : /private/tmp/myapp/src/main/groovy
|
> Is this OK ? Shall we generate all this (n to view gen sources only) ? [y] :
| Generating file /private/tmp/myapp/src/main/groovy/com/myco/myapp/facets/guest/ViewMyEntityGuest.groovy
| Generating file /private/tmp/myapp/src/main/groovy/com/myco/myapp/facets/guest/EditMyEntityGuest.groovy
| Generating file /private/tmp/myapp/src/main/groovy/com/myco/myapp/facets/guest/SaveMyEntityGuest.groovy
| Generating file /private/tmp/myapp/src/main/groovy/com/myco/myapp/facets/guest/DeleteMyEntityGuest.groovy
...
Push again
$ woko push quiet
Now log out :
http://localhost:8080/myapp/logout
And check it works :
http://localhost:8080/myapp/save/MyEntity
You're done.