On Fri, Sep 11, 2009 at 10:04 AM, Dustin Whitney
<[email protected]>wrote:

> Trying this out now - is there an easy way to start a project from the
> latest snapshot.  Changing the version in the archetype to 1.1-SNAPSHOT
> didn't work, but that was just wishful thinking.


What "didn't work"?  Changing to 1.1-SNAPSHOT in the pom.xml file and
updating the Scala version to 2.7.5 should give you all these features.


>   I will compile the source and give this a try, but making a nightly
> snapshot available wouldn't be a bad idea.
>

The nightly snapshot is available.  Everything is that goes into GitHub gets
built by Hudson and deployed out to Scala-tools.org within an hour or two.


>
> -Dustin
>
> On Thu, Sep 10, 2009 at 12:07 PM, David Pollak <
> [email protected]> wrote:
>
>>
>>
>> On Thu, Sep 10, 2009 at 9:05 AM, <[email protected]> wrote:
>>
>>> Cool, thanks! And this all works in 1.0.1?
>>>
>>
>> No, it's brand new in 1.1-SNAPSHOT.
>>
>> I discourage using 1.0/1.0.1  While we're fixing bugs in 1.0, we're not
>> actively adding features to this version and Lift has matured quite a bit in
>> the last 6 months in terms of developer friendliness.
>>
>>
>>>
>>> -Dustin
>>>
>>> On Sep 9, 2009 9:35pm, David Pollak <[email protected]>
>>> wrote:
>>> > Dustin,
>>> >
>>> > I've updated the Basic archetype to include a couple of things:
>>> > An example of Lift's new Factory support which blends the best of
>>> dependency injection and and highly configurable, type-safe factories
>>> > An example of how to set up a session to test a snippetAn example of
>>> injecting a test value into the snippet test via the factoryThe test that
>>> you asked about looks like:
>>> >
>>> >
>>> >
>>> > object HelloWorldTestSpecs extends Specification {
>>> >
>>> >   val session = new LiftSession("", randomString(20), Empty)
>>> >
>>> >
>>> >   "HelloWorld Snippet" should {
>>> >     "Put the time in the node" in {
>>> >
>>> >       S.initIfUninitted(session) {
>>> >         val stableTime = now
>>> >
>>> >         DependencyFactory.time.doWith(stableTime) {
>>> >           val hello = new HelloWorld
>>> >
>>> >           Thread.sleep(1000) // make sure the time changes
>>>
>>> >
>>> >
>>> >           val str = hello.howdy(Hello at ).toString
>>> >
>>> >
>>> >           str.indexOf(stableTime.toString) must be >= 0
>>> >
>>> >           str.indexOf("Hello at") must be >= 0
>>> >         }
>>> >
>>> >       }
>>> >     }
>>> >   }
>>> >
>>> > }
>>> >
>>> > This demonstrates creating a mock LiftSession and setting up S with
>>> "initIfUnitted".
>>> >
>>> >
>>> >
>>> > The DepencyFactory.time.doWith sets up a new value to be generated from
>>> the DepencyFactory.time object (rather than using the global default
>>> function, the stableTime value is used.)
>>> >
>>> >
>>> >
>>> > In the HelloWord snippet, we inject the value of the time object:
>>> >
>>> >
>>> >
>>> >
>>> > class HelloWorld {
>>> >
>>> >   import DependencyFactory._ // Import the Dependency Injector
>>>
>>> >
>>> >
>>> >   val date = inject[Date] // inject the date
>>>
>>> >
>>> >   // lazy val date = DependencyFactory.time.make // create the date via
>>> factory
>>> >
>>> >
>>>
>>> >
>>> >   def howdy(in: NodeSeq): NodeSeq =
>>> >     Helpers.bind("b", in, "time" -> date.map(d => Text(d.toString)))
>>> >
>>> > }
>>> >
>>> > Note there are two ways of getting the time.  The inject method will
>>> locate a Maker for a java.util.Date.  This is a whole lot less (in my
>>> opinion) optimal than the second option, which explicitly calls the time
>>> factory.  In either case, the current time Maker (global, session-specific,
>>> request-specific, and stack-specific) is consulted.
>>> >
>>> >
>>> >
>>> > To build the Factory itself:
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > object DependencyFactory extends Factory {
>>> >
>>> >   implicit object time extends FactoryMaker(Helpers.now _)
>>> > }
>>> >
>>> >
>>> > I hope this answers you question about testing snippets and more
>>> broadly addresses some of the recent discussions on the list about
>>> Dependency Injection, Factories, mocks, and testing.
>>> >
>>> >
>>> >
>>> > Thanks,
>>> >
>>> >
>>> > David
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > On Wed, Sep 9, 2009 at 1:05 PM, Dustin Whitney
>>> [email protected]> wrote:
>>> >
>>> > All,
>>> >
>>> >     I am having trouble finding any literature on how to test a Lift
>>> app.  I've got a snippet.  I'd like to mock a request and test the NodeSeq
>>> that comes back from the render method in my snippet.  Can anyone point me
>>> to some code that's doing that?
>>> >
>>> >
>>> >
>>> > Thanks,
>>> > Dustin
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > Lift, the simply functional web framework http://liftweb.net
>>> > Beginning Scala http://www.apress.com/book/view/1430219890
>>> >
>>> > Follow me: http://twitter.com/dpp
>>> > Git some: http://github.com/dpp
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > Beginning Scala http://www.apress.com/book/view/1430219890
>>> Follow me: http://twitter.com/dpp
>>> Git some: http://github.com/dpp
>>>
>>>
>>>
>
> >
>


-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Git some: http://github.com/dpp

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to