Awaiting testing before releasing 1.1.2

This commit is contained in:
Jonathan Bernard
2010-02-18 20:45:20 -06:00
parent 9c2898729f
commit 1e5ebe89bf
12 changed files with 184 additions and 62 deletions

View File

@ -3,6 +3,7 @@ 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 {
@ -33,19 +34,19 @@ class IssueTest {
}
@After void deleteIssueFiles() {
testDir.deleteDir()
assert testDir.deleteDir()
}
@Test void testSetCategory() {
assertTrue issues[0].category == Category.FEATURE
assertTrue issues[1].category == Category.TASK
assertEquals issues[0].category, Category.FEATURE
assertEquals issues[1].category, Category.TASK
issues[0].category = Category.CLOSED
issues[1].category = Category.BUG
assertTrue issues[0].category == Category.CLOSED
assertTrue 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()
@ -55,14 +56,14 @@ class IssueTest {
@Test void testSetPriority() {
assertTrue issues[0].priority == 1
assertTrue issues[1].priority == 5
assertEquals issues[0].priority, 1
assertEquals issues[1].priority, 5
issues[0].priority = 2
issues[1].priority = 9
assertTrue issues[0].priority == 2
assertTrue 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()
@ -74,13 +75,32 @@ class IssueTest {
File issueFile = new File(testDir, '0001f1.rst')
Issue issue = new Issue(issueFile)
assertTrue issue.id == "0001"
assertTrue issue.category == Category.FEATURE
assertTrue issue.priority == 1
assertTrue issue.title == "Add the killer feature to the killer app."
assertTrue issue.text == "Add the killer feature to the killer app.\n" +
"=========================================\n\n" +
"Make our killer app shine!."
assertTrue issue.source == 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) {}
}
}

View File

@ -3,8 +3,10 @@ package com.jdbernard.pit
import org.junit.After
import org.junit.Before
import org.junit.Test
import static org.junit.Assert.assertTrue
import static org.junit.Assert.assertEquals
import static org.junit.Assert.assertFalse
import static org.junit.Assert.assertNotNull
import static org.junit.Assert.assertTrue
class ProjectTest {
@ -12,9 +14,25 @@ class ProjectTest {
Project rootProj
@Before void createTestProjects() {
testDir = new File('testdir')
assert !testDir.exists()
testDir.mkdirs()
/* TEST SUITE:
/testdir/
0001t5.rst
0002b5.rst
0003f2.rst
subproj1/
0001f3.rst
0002b4.rst
emptyproj/
*/
def issueFile = new File(testDir, '0001t5.rst')
issueFile.createNewFile()
issueFile.write('Test Issue 1\n' +
@ -27,7 +45,7 @@ class ProjectTest {
'========\n\n' +
'Yeah, it is a test bug.')
issueFile = new File(testDir, '0003f2.rst')
issueFile = new File(testDir, '0003c2.rst')
issueFile.createNewFile()
issueFile.write('Important Feature Request\n' +
'=========================\n\n' +
@ -48,40 +66,51 @@ class ProjectTest {
'==========================\n\n' +
'For some reason, the Zippners are bilperring, not zippning.')
subDir = new File(testDir, 'emptyproj')
subDir.mkdirs()
rootProj = new Project(testDir)
}
@After void deleteTestProjects() {
testDir.delete()
assert testDir.deleteDir()
if (rootProj.source.exists())
assert rootProj.source.deleteDir()
}
@Test void testConstruction() {
Project proj = new Project(testDir, null)
Project proj = new Project(testDir)
assertTrue proj.name == 'testdir'
assertTrue proj.issues.size() == 3
assertTrue proj.projects.size() == 1
assertEquals proj.name, 'testdir'
assertEquals proj.issues.size(), 3
assertEquals proj.projects.size(), 1
// Issue construction in general is under test in IssueTest
// just check that the issues actually exists
assertTrue proj.issues['0001'].id == '0001'
assertTrue proj.issues['0001'].title == 'Test Issue 1'
assertEquals proj.issues['0001'].id, '0001'
assertEquals proj.issues['0001'].title, 'Test Issue 1'
assertTrue proj.issues['0002'].id == '0002'
assertTrue proj.issues['0002'].title == 'Test Bug'
assertEquals proj.issues['0002'].id, '0002'
assertEquals proj.issues['0002'].title, 'Test Bug'
assertTrue proj.issues['0003'].id == '0003'
assertTrue proj.issues['0003'].title == 'Important Feature Request'
assertEquals proj.issues['0003'].id, '0003'
assertEquals proj.issues['0003'].title, 'Important Feature Request'
// check sub-project behaviour
assertTrue proj.projects.subproj1 != null
assertTrue proj.projects.subproj1.name == 'subproj1'
assertTrue proj.projects.subproj1.issues.size() == 2
assertTrue proj.projects.subproj1.projects.size() == 0
assertTrue proj.projects.subproj1.issues['0001'].id == '0001'
assertTrue proj.projects.subproj1.issues['0001'].title == 'First feature in subproject'
assertTrue proj.projects.subproj1.issues['0002'].id == '0002'
assertTrue proj.projects.subproj1.issues['0002'].title == 'Zippners are not zippning.'
assertNotNull proj.projects.subproj1
assertEquals proj.projects.subproj1.name, 'subproj1'
assertEquals proj.projects.subproj1.issues.size(), 2
assertEquals proj.projects.subproj1.projects.size(), 0
assertEquals proj.projects.subproj1.issues['0001'].id, '0001'
assertEquals proj.projects.subproj1.issues['0002'].id, '0002'
assertEquals proj.projects.subproj1.issues['0001'].title,
'First feature in subproject'
assertEquals proj.projects.subproj1.issues['0002'].title,
'Zippners are not zippning.'
assertNotNull proj.projects.emptyproj
assertEquals proj.projects.emptyproj.size(), 0
}
@Test void testRename() {
@ -89,10 +118,34 @@ class ProjectTest {
rootProj.rename('renamedTestDir')
assertTrue rootProj.name == 'renamedTestDir'
assertEquals rootProj.name, 'renamedTestDir'
assertTrue new File('renamedTestDir').exists()
}
@Test void testCreateNewIssue() {
// test correct increment of id, application of values
def newIssue = rootProj.createNewIssue(category: Category.BUG,
priority: 4, text: 'A newly made bug report.\n'+
'========================\n\n' +
'Testing the Project.createNewIssue() method.')
assertEquals newIssue.id, '0004'
assertEquals newIssue.priority, 4
assertEquals newIssue.text, 'A newly made bug report.\n'+
'========================\n\n' +
'Testing the Project.createNewIssue() method.'
//test defaults and creation of issue in an empty project
newIssue = rootProj.projects.emptyproj.createNewIssue()
assertEquals newIssue.id, '0000'
assertEquals newIssue.priority, 5
assertEquals newIssue.text, 'Default issue title.\n' +
'====================\n'
}
/*@Test void testEachIssue() {
def expectedList = [rootProj.issues['0001'],
rootProj.issues['0002'], rootProj.issues['0003']]