-
Notifications
You must be signed in to change notification settings - Fork 275
/
DbSpec.scala
62 lines (50 loc) · 1.69 KB
/
DbSpec.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
* Copyright 2007-2011 WorldWide Conferencing, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.liftweb
package mapper
import org.specs2.mutable.Specification
import common._
import util._
import http.{S, LiftSession}
/**
* Systems under specification for DB.
*/
object DbSpec extends Specification {
"DB Specification".title
val provider = DbProviders.H2MemoryProvider
val logF = Schemifier.infoF _
def cleanup() {
provider.setupDB
Schemifier.destroyTables_!!(DefaultConnectionIdentifier, logF , User)
Schemifier.schemify(true, logF, DefaultConnectionIdentifier, User)
}
"DB" should {
"collect queries when queryCollector is added as logFunc" in {
cleanup()
DB.addLogFunc(DB.queryCollector)
var statements: List[(String, Long)] = Nil
S.addAnalyzer((r,t,ss) => statements=ss)
val session = new LiftSession("hello", "", Empty)
val elwood = S.initIfUninitted(session) {
val r = User.find(By(User.firstName, "Elwood"))
S.queryLog.size must_== 1
r
}
statements.size must_== 1
elwood.map( _.firstName.is) must_== Full("Elwood")
}
}
}