qiprofile
Version:
Quantitative Imaging Profile ( QiPr) web application
116 lines (103 loc) • 4.05 kB
text/coffeescript
# The Modeling unit test. This test suite tests the subject
# modelings built when Subject.extend calls Modeling.collect.
# The session modeling objects are tested in sessionSpec.
define ['ngmocks', 'lodash', 'expect', 'moment', 'modeling', 'helpers'],
(ng, _, expect, moment, modeling) ->
describe 'Unit Testing the Modeling Service', ->
# The mock objects.
mock =
protocol:
registration:
_id: 'rp1'
subject:
sessions: [
{
number: 1
modelings: [
resource: 'pk_01'
protocol: 'mp1'
source:
registration: 'rp1'
result:
deltaKTrans:
name: "path/to/first/delta_k_trans.nii.gz"
average: 2.3
labelMap:
name: "path/to/first/delta_k_trans_color.nii.gz"
colorTable: "path/to/color_table.txt"
]
}
{
number: 2
modelings: [
resource: 'pk_02'
protocol: 'mp1'
source:
registration: 'rp1'
result:
deltaKTrans:
name: "path/to/second/delta_k_trans.nii.gz"
average: 2.4
labelMap:
name: "path/to/second/delta_k_trans_color.nii.gz"
colorTable: "path/to/color_table.txt"
]
}
]
subject = null
modelings = null
modeling = null
beforeEach ->
# Fake the modeling service module.
ng.module('qiprofile.modeling')
inject ['Modeling', (Modeling) ->
subject = _.cloneDeep(mock.subject)
modelings = Modeling.collect(subject)
try
modeling = modelings[0]
catch TypeError
# There is not a modelings array.
# This is detected by the first test case below.
]
it 'should have a subject modelings object', ->
expect(modelings, "Subject is missing the modeling objects")
.to.exist
it 'should have one modeling object', ->
expect(modelings.length, "Subject modelings count is incorrect")
.to.equal(1)
expect(modeling, "Subject modeling is missing").to.exist
describe 'Source', ->
source = null
beforeEach ->
source = modeling.source
it 'should have a source', ->
expect(source, "Subject modeling does not reference a source")
.to.exist
it 'should reference the registration protocol', ->
expect(source.registration,
"Subject modeling does not reference a source").to.exist
expect(source.registration,
"Subject modeling source does not reference the" +
" registration protocol")
.to.equal(mock.protocol.registration._id)
describe 'Result', ->
result = null
beforeEach ->
try
result = modeling.results[0]
catch TypeError
# There is not a results array.
it 'should have a result for each session', ->
expect(modeling.results.length,
"Subject modeling results length is incorrect")
.to.equal(2)
expect(result, "Subject modeling result is missing").to.exist
it 'should have a delta Ktrans value', ->
expect(result.deltaKTrans, "Modeling does not have a delta" +
" Ktrans result")
.to.exist
it 'should reflect the session modeling delta Ktrans value', ->
expected = mock.subject.sessions[0].modelings[0].result.deltaKTrans.average
expect(result.deltaKTrans.average, "Modeling delta Ktrans result" +
" is incorrect")
.to.equal(expected)