Skip to content

Commit

Permalink
Added JUnit tests for SingleTestCaseRunner and ParallelTestCaseRunner
Browse files Browse the repository at this point in the history
  • Loading branch information
odelacruz4impact committed Apr 28, 2017
1 parent 050c2bc commit 13df6b2
Show file tree
Hide file tree
Showing 2 changed files with 118 additions and 0 deletions.
@@ -0,0 +1,74 @@
package au.com.ps4impact.madcow.execution

import au.com.ps4impact.madcow.MadcowTestCase
import fj.Effect
import fj.P
import fj.P2
import fj.Unit
import fj.control.parallel.Actor
import fj.control.parallel.Strategy
import fj.data.Option

import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
import java.util.concurrent.atomic.AtomicInteger

class ParallelTestCaseRunnerTest extends GroovyTestCase {

ArrayList<String> grassScript = new ArrayList<String>()

ExecutorService pool = Executors.newFixedThreadPool(10)
Strategy<Unit> strategy = Strategy.executorStrategy(pool)

ConcurrentHashMap exceptions = [:]
AtomicInteger numberOfTestsRan = new AtomicInteger(0)

def callback = Actor.queueActor(strategy, { P2<MadcowTestCase, Option<Exception>> result ->
numberOfTestsRan.andIncrement;
exceptions.put(result._1(), result._2())
} as Effect);

void testTestCaseErrorTrue() {
MadcowTestCase madcowTestCase = new MadcowTestCase("SingleTestCaseRunnerTest-testExecutionException", grassScript) {
@Override
void execute() {
throw new Exception()
}

@Override
protected void createStepRunner() {
}
}

executeTest(madcowTestCase)
assertTrue(madcowTestCase.testCaseError == true)
}

void testTestCaseErrorFalse() {
MadcowTestCase madcowTestCase = new MadcowTestCase("SingleTestCaseRunnerTest-testExecutionException", grassScript) {
@Override
void execute() {
}

@Override
protected void createStepRunner() {
}
}

executeTest(madcowTestCase)
assertTrue(madcowTestCase.testCaseError == false)
}


private void executeTest(MadcowTestCase madcowTestCase) {
def parallelTestCaseRunner = new ParallelTestCaseRunner(strategy, callback)
try {
parallelTestCaseRunner.act(P.p(madcowTestCase, null))
} catch(e) {}

while (numberOfTestsRan.get() < 1) {
Thread.sleep(500);
}
}
}
@@ -0,0 +1,44 @@
package au.com.ps4impact.madcow.execution

import au.com.ps4impact.madcow.MadcowTestCase
import au.com.ps4impact.madcow.report.IMadcowReport

class SingleTestCaseRunnerTest extends GroovyTestCase {

ArrayList<String> grassScript = new ArrayList<String>()

void testTestCaseErrorTrue() {
MadcowTestCase testCase = new MadcowTestCase("SingleTestCaseRunnerTest-testExecutionException", grassScript) {
@Override
void execute() {
throw new Exception()
}

@Override
protected void createStepRunner() {
}
}
try {
new SingleTestCaseRunner(testCase, new ArrayList<IMadcowReport>())
} catch(e) {}

assertTrue(testCase.testCaseError == true)
}

void testTestCaseErrorFalse() {
MadcowTestCase testCase = new MadcowTestCase("SingleTestCaseRunnerTest-testExecutionException", grassScript) {
@Override
void execute() {
}

@Override
protected void createStepRunner() {
}
}
try {
new SingleTestCaseRunner(testCase, new ArrayList<IMadcowReport>())
} catch(e) {}

assertTrue(testCase.testCaseError == false)
}
}

0 comments on commit 13df6b2

Please sign in to comment.