Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F66324065
QepQueryDbTest.scala
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Jun 9, 20:00
Size
6 KB
Mime Type
text/x-c++
Expires
Tue, Jun 11, 20:00 (2 d)
Engine
blob
Format
Raw Data
Handle
18204431
Attached To
R2664 SHRINE MedCo Fork
QepQueryDbTest.scala
View Options
package
net.shrine.qep.queries
import
net.shrine.protocol.QueryResult.StatusType
import
net.shrine.protocol.
{
I2b2ResultEnvelope
,
DefaultBreakdownResultOutputTypes
,
QueryResult
,
ResultOutputType
}
import
net.shrine.util.
{
XmlDateHelper
,
ShouldMatchersForJUnit
}
import
org.junit.
{
After
,
Before
,
Test
}
import
net.shrine.problem.TestProblem
/**
* @author david
* @since 1/20/16
*/
class
QepQueryDbTest
extends
ShouldMatchersForJUnit
{
val
qepQuery
=
QepQuery
(
networkId
=
1L
,
userName
=
"ben"
,
userDomain
=
"testDomain"
,
queryName
=
"testQuery"
,
expression
=
"testExpression"
,
dateCreated
=
System
.
currentTimeMillis
(),
deleted
=
false
,
queryXml
=
"testXML"
,
changeDate
=
System
.
currentTimeMillis
()
)
val
secondQepQuery
=
QepQuery
(
networkId
=
2L
,
userName
=
"dave"
,
userDomain
=
"testDomain"
,
queryName
=
"testQuery"
,
expression
=
"testExpression"
,
deleted
=
false
,
dateCreated
=
System
.
currentTimeMillis
(),
queryXml
=
"testXML"
,
changeDate
=
System
.
currentTimeMillis
()
)
val
flag
=
QepQueryFlag
(
networkQueryId
=
1L
,
flagged
=
true
,
flagMessage
=
"This query is flagged"
,
changeDate
=
System
.
currentTimeMillis
()
)
@Test
def
testInsertQepQuery
()
{
QepQueryDb
.
db
.
insertQepQuery
(
qepQuery
)
QepQueryDb
.
db
.
insertQepQuery
(
secondQepQuery
)
val
results
=
QepQueryDb
.
db
.
selectAllQepQueries
results
should
equal
(
Seq
(
qepQuery
,
secondQepQuery
))
}
@Test
def
testSelectQepQueriesForUser
()
{
QepQueryDb
.
db
.
insertQepQuery
(
qepQuery
)
QepQueryDb
.
db
.
insertQepQuery
(
secondQepQuery
)
val
results
=
QepQueryDb
.
db
.
selectPreviousQueriesByUserAndDomain
(
"ben"
,
"testDomain"
,
100
)
results
should
equal
(
Seq
(
qepQuery
))
}
@Test
def
testSelectQueryFlags
()
{
val
results1
=
QepQueryDb
.
db
.
selectMostRecentQepQueryFlagsFor
(
Set
(
1L
,
2L
))
results1
should
equal
(
Map
.
empty
)
QepQueryDb
.
db
.
insertQepQueryFlag
(
flag
)
val
results2
=
QepQueryDb
.
db
.
selectMostRecentQepQueryFlagsFor
(
Set
(
1L
,
2L
))
results2
should
equal
(
Map
(
1L
->
flag
))
}
val
qepResultRowFromExampleCom
=
QueryResultRow
(
resultId
=
10L
,
networkQueryId
=
1L
,
instanceId
=
100L
,
adapterNode
=
"example.com"
,
resultType
=
ResultOutputType
.
PATIENT_COUNT_XML
,
size
=
30L
,
startDate
=
Some
(
System
.
currentTimeMillis
()
-
60
),
endDate
=
Some
(
System
.
currentTimeMillis
()
-
30
),
status
=
QueryResult
.
StatusType
.
Finished
,
statusMessage
=
None
,
changeDate
=
System
.
currentTimeMillis
()
)
@Test
def
testInsertQueryResultRow
()
{
QepQueryDb
.
db
.
insertQepResultRow
(
qepResultRowFromExampleCom
)
val
results
=
QepQueryDb
.
db
.
selectMostRecentQepResultRowsFor
(
1L
)
results
should
equal
(
Seq
(
qepResultRowFromExampleCom
))
}
val
queryResult
=
QueryResult
(
resultId
=
20L
,
instanceId
=
200L
,
resultType
=
Some
(
ResultOutputType
.
PATIENT_COUNT_XML
),
setSize
=
2000L
,
startDate
=
Some
(
XmlDateHelper
.
now
),
endDate
=
Some
(
XmlDateHelper
.
now
),
description
=
Some
(
"example.com"
),
statusType
=
StatusType
.
Finished
,
statusMessage
=
None
)
@Test
def
testInsertQueryResult
()
:
Unit
=
{
QepQueryDb
.
db
.
insertQueryResult
(
2L
,
queryResult
)
val
results
=
QepQueryDb
.
db
.
selectMostRecentQepResultsFor
(
2L
)
results
should
equal
(
Seq
(
queryResult
))
}
val
qepResultRowFromExampleComInThePast
=
QueryResultRow
(
resultId
=
8L
,
networkQueryId
=
1L
,
instanceId
=
100L
,
adapterNode
=
"example.com"
,
resultType
=
ResultOutputType
.
PATIENT_COUNT_XML
,
size
=
0L
,
startDate
=
qepResultRowFromExampleCom
.
startDate
,
endDate
=
None
,
status
=
QueryResult
.
StatusType
.
Processing
,
statusMessage
=
None
,
changeDate
=
qepResultRowFromExampleCom
.
changeDate
-
40
)
val
qepResultRowFromGeneralHospital
=
QueryResultRow
(
resultId
=
100L
,
networkQueryId
=
1L
,
instanceId
=
100L
,
adapterNode
=
"generalhospital.org"
,
resultType
=
ResultOutputType
.
PATIENT_COUNT_XML
,
size
=
100L
,
startDate
=
Some
(
System
.
currentTimeMillis
()
-
60
),
endDate
=
Some
(
System
.
currentTimeMillis
()
-
30
),
status
=
QueryResult
.
StatusType
.
Finished
,
statusMessage
=
None
,
changeDate
=
System
.
currentTimeMillis
()
)
@Test
def
testGetMostRecentResultRows
()
{
QepQueryDb
.
db
.
insertQepResultRow
(
qepResultRowFromExampleComInThePast
)
QepQueryDb
.
db
.
insertQepResultRow
(
qepResultRowFromGeneralHospital
)
QepQueryDb
.
db
.
insertQepResultRow
(
qepResultRowFromExampleCom
)
val
results
=
QepQueryDb
.
db
.
selectMostRecentQepResultRowsFor
(
1L
)
results
.
to
[
Set
]
should
equal
(
Set
(
qepResultRowFromExampleCom
,
qepResultRowFromGeneralHospital
))
}
val
maleRow
=
QepQueryBreakdownResultsRow
(
networkQueryId
=
1L
,
adapterNode
=
"example.com"
,
resultId
=
100L
,
resultType
=
DefaultBreakdownResultOutputTypes
.
PATIENT_GENDER_COUNT_XML
,
dataKey
=
"male"
,
value
=
388
,
changeDate
=
System
.
currentTimeMillis
()
)
val
femaleRow
=
QepQueryBreakdownResultsRow
(
networkQueryId
=
1L
,
adapterNode
=
"example.com"
,
resultId
=
100L
,
resultType
=
DefaultBreakdownResultOutputTypes
.
PATIENT_GENDER_COUNT_XML
,
dataKey
=
"female"
,
value
=
390
,
changeDate
=
System
.
currentTimeMillis
()
)
val
unknownRow
=
QepQueryBreakdownResultsRow
(
networkQueryId
=
1L
,
adapterNode
=
"example.com"
,
resultId
=
100L
,
resultType
=
DefaultBreakdownResultOutputTypes
.
PATIENT_GENDER_COUNT_XML
,
dataKey
=
"unknown"
,
value
=
4
,
changeDate
=
System
.
currentTimeMillis
()
)
@Test
def
testInsertBreakdownRows
()
:
Unit
=
{
QepQueryDb
.
db
.
insertQueryBreakdown
(
maleRow
)
QepQueryDb
.
db
.
insertQueryBreakdown
(
femaleRow
)
QepQueryDb
.
db
.
insertQueryBreakdown
(
unknownRow
)
val
results
=
QepQueryDb
.
db
.
selectAllBreakdownResultsRows
results
.
to
[
Set
]
should
equal
(
Set
(
maleRow
,
femaleRow
,
unknownRow
))
}
val
breakdowns
=
Map
(
DefaultBreakdownResultOutputTypes
.
PATIENT_GENDER_COUNT_XML
->
I2b2ResultEnvelope
(
DefaultBreakdownResultOutputTypes
.
PATIENT_GENDER_COUNT_XML
,
Map
(
"male"
->
3000
,
"female"
->
4000
,
"unknown"
->
234
)))
@Test
def
testInsertQueryResultWithBreakdowns
()
:
Unit
=
{
val
queryResultWithBreakdowns
=
queryResult
.
copy
(
breakdowns
=
breakdowns
)
QepQueryDb
.
db
.
insertQueryResult
(
2L
,
queryResultWithBreakdowns
)
val
results
=
QepQueryDb
.
db
.
selectMostRecentQepResultsFor
(
2L
)
results
should
equal
(
Seq
(
queryResultWithBreakdowns
))
}
@Test
def
testInsertQueryResultWithProblem
()
:
Unit
=
{
val
queryResultWithProblem
=
queryResult
.
copy
(
statusType
=
StatusType
.
Error
,
problemDigest
=
Some
(
TestProblem
.
toDigest
))
QepQueryDb
.
db
.
insertQueryResult
(
2L
,
queryResultWithProblem
)
val
results
=
QepQueryDb
.
db
.
selectMostRecentQepResultsFor
(
2L
)
results
should
equal
(
Seq
(
queryResultWithProblem
))
}
@Before
def
beforeEach
()
=
{
QepQueryDb
.
db
.
createTables
()
}
@After
def
afterEach
()
=
{
QepQueryDb
.
db
.
dropTables
()
}
}
Event Timeline
Log In to Comment