107 lines
3.7 KiB
Groovy
107 lines
3.7 KiB
Groovy
package com.jdbernard.pit
|
|
|
|
import org.junit.*
|
|
import static org.junit.Assert.assertTrue
|
|
import static org.junit.Assert.assertFalse
|
|
import static org.junit.Assert.assertEquals
|
|
|
|
class IssueTest {
|
|
|
|
def issues
|
|
File testDir
|
|
|
|
@Before void makeIssueFiles() {
|
|
File issueFile
|
|
issues = []
|
|
|
|
testDir = new File('testdir')
|
|
testDir.mkdirs()
|
|
|
|
issueFile = new File(testDir, '0001f1.rst')
|
|
issueFile.write(
|
|
"Add the killer feature to the killer app.\n" +
|
|
"=========================================\n\n" +
|
|
"Make our killer app shine!.")
|
|
issues << new Issue(issueFile)
|
|
|
|
issueFile = new File(testDir, '0002t5.rst')
|
|
issueFile.write(
|
|
"Obtain donuts.\n" +
|
|
"==============\n\n" +
|
|
"The office is seriously lacking in sugary donuts.\n\n" +
|
|
"We must rectify this at once!")
|
|
issues << new Issue(issueFile)
|
|
}
|
|
|
|
@After void deleteIssueFiles() {
|
|
assert testDir.deleteDir()
|
|
}
|
|
|
|
@Test void testSetCategory() {
|
|
|
|
assertEquals issues[0].category, Category.FEATURE
|
|
assertEquals issues[1].category, Category.TASK
|
|
|
|
issues[0].category = Category.CLOSED
|
|
issues[1].category = Category.BUG
|
|
|
|
assertEquals issues[0].category, Category.CLOSED
|
|
assertEquals issues[1].category, Category.BUG
|
|
|
|
assertTrue new File(testDir, '0001c1.rst').exists()
|
|
assertTrue new File(testDir, '0002b5.rst').exists()
|
|
assertFalse new File(testDir, '0001f1.rst').exists()
|
|
assertFalse new File(testDir, '0002t5.rst').exists()
|
|
}
|
|
|
|
@Test void testSetPriority() {
|
|
|
|
assertEquals issues[0].priority, 1
|
|
assertEquals issues[1].priority, 5
|
|
|
|
issues[0].priority = 2
|
|
issues[1].priority = 9
|
|
|
|
assertEquals issues[0].priority, 2
|
|
assertEquals issues[1].priority, 9
|
|
|
|
assertTrue new File(testDir, '0001f2.rst').exists()
|
|
assertTrue new File(testDir, '0002t9.rst').exists()
|
|
assertFalse new File(testDir, '0001f1.rst').exists()
|
|
assertFalse new File(testDir, '0002t5.rst').exists()
|
|
}
|
|
|
|
@Test void testConstruction() {
|
|
File issueFile = new File(testDir, '0001f1.rst')
|
|
Issue issue = new Issue(issueFile)
|
|
|
|
assertEquals issue.id , "0001"
|
|
assertEquals issue.category , Category.FEATURE
|
|
assertEquals issue.priority , 1
|
|
assertEquals issue.title , "Add the killer feature to the killer app."
|
|
assertEquals issue.text , "Add the killer feature to the killer app.\n" +
|
|
"=========================================\n\n" +
|
|
"Make our killer app shine!."
|
|
assertEquals issue.source , issueFile
|
|
}
|
|
|
|
@Test void testMakeFilename() {
|
|
assertEquals Issue.makeFilename('0001', Category.BUG, 5) , '0001b5.rst'
|
|
assertEquals Issue.makeFilename('0010', Category.FEATURE, 1), '0010f1.rst'
|
|
assertEquals Issue.makeFilename('0002', Category.CLOSED, 3) , '0002c3.rst'
|
|
assertEquals Issue.makeFilename('0001', Category.BUG, -2) , '0001b0.rst'
|
|
assertEquals Issue.makeFilename('0001', Category.TASK, 10) , '0001t9.rst'
|
|
assertEquals Issue.makeFilename('00101', Category.BUG, 5) , '00101b5.rst'
|
|
|
|
try {
|
|
Issue.makeFilename('badid', Category.BUG, 5)
|
|
assertTrue 'Issue.makeFilename() succeeded with bad id input.', false
|
|
} catch (IllegalArgumentException iae) {}
|
|
|
|
try {
|
|
Issue.makeFilename('0002', null, 5)
|
|
assertTrue 'Issue.makeFilename() succeeded given no Category.', false
|
|
} catch (IllegalArgumentException iae) {}
|
|
}
|
|
}
|