This is the JUnit 5 solution to cover all kinds of inputs provided to PrimeCheck function. This Unit test executes tests for the ‘PrimeCheck’ function available in the class ‘PrimeJ8’.
package pack1;
import org.junit.Assert;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
class PrimeJ8Junit5 {
PrimeChk_Using_Corelogic PUcore;
PrimeChk_Using_Predicates PUpredicate;
PrimeChk_Using_LambdaExpression PrimeUL;
PrimeChk_Using_Stream PrimeUS;
@BeforeEach
void setUp() throws Exception {
PUcore = new PrimeChk_Using_Corelogic();
PUpredicate = new PrimeChk_Using_Predicates();
PrimeUL = new PrimeChk_Using_LambdaExpression();
PrimeUS = new PrimeChk_Using_Stream();
}
@AfterEach
void tearDown() throws Exception {
}
@Test
@DisplayName("Positive inputs should work")
void test1() {
Assert.assertTrue(PUcore.PrimeCheck(17));
Assert.assertTrue(PUpredicate.PrimeCheck(19));
Assert.assertTrue(PrimeUL.PrimeCheck(29));
Assert.assertTrue(PrimeUS.PrimeCheck(31));
}
@Test
@DisplayName("Negative inputs should work")
void test2() {
Assert.assertFalse(PUcore.PrimeCheck(27));
Assert.assertFalse(PUpredicate.PrimeCheck(999));
Assert.assertFalse(PrimeUL.PrimeCheck(455));
Assert.assertFalse(PrimeUS.PrimeCheck(10000));
}
@Test
@DisplayName("null inputs - Special case")
void test3() {
Assert.assertFalse(PUcore.PrimeCheck(null));
Assert.assertFalse(PUpredicate.PrimeCheck(null));
Assert.assertFalse(PrimeUL.PrimeCheck(null));
Assert.assertFalse(PrimeUS.PrimeCheck(null));
}
@Test
@DisplayName("Number 0 as input - Special case")
void test4() {
Assert.assertFalse(PUcore.PrimeCheck(0));
Assert.assertFalse(PUpredicate.PrimeCheck(0));
Assert.assertFalse(PrimeUL.PrimeCheck(0));
Assert.assertFalse(PrimeUS.PrimeCheck(0));
}
}
Output:
Checking whether this number '17' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Corelogic PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_Corelogic'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: The input is validated Successfully
The Number '17' is Prime
Checking whether this number '19' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Predicates PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_Predicates'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: The input is validated Successfully
The Number '19' is Prime
Checking whether this number '29' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_LambdaExpression PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_LambdaExpression'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: The input is validated Successfully
The Number '29' is Prime
Checking whether this number '31' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Stream PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_Stream'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: The input is validated Successfully
The Number '31' is Prime
Checking whether this number '27' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Corelogic PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_Corelogic'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: The input is validated Successfully
The Number '27' is not Prime
Checking whether this number '999' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Predicates PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_Predicates'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: The input is validated Successfully
The Number '999' is not Prime
Checking whether this number '455' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_LambdaExpression PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_LambdaExpression'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: The input is validated Successfully
The Number '455' is not Prime
Checking whether this number '10000' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Stream PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_Stream'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: The input is validated Successfully
The Number '10000' is not Prime
Checking whether this number 'null' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Corelogic PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_Corelogic'
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Corelogic PrimeCheck
INFO: The input is validated Successfully
Checking whether this number 'null' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Corelogic PrimeCheck
WARNING: The given Input is 'null'
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Predicates PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_Predicates'
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Predicates PrimeCheck
INFO: The input is validated Successfully
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Predicates PrimeCheck
WARNING: The given Input is 'null'
Checking whether this number 'null' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_LambdaExpression PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_LambdaExpression'
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_LambdaExpression PrimeCheck
INFO: The input is validated Successfully
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_LambdaExpression PrimeCheck
WARNING: The given Input is 'null'
Checking whether this number 'null' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Stream PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_Stream'
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Stream PrimeCheck
INFO: The input is validated Successfully
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Stream PrimeCheck
WARNING: The given Input is 'null'
Checking whether this number '0' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Corelogic PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_Corelogic'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: The input is validated Successfully
The Number '0' is neither a Prime nor a Composite
Checking whether this number '0' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Predicates PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_Predicates'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: The input is validated Successfully
The Number '0' is neither a Prime nor a Composite
Checking whether this number '0' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_LambdaExpression PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_LambdaExpression'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: The input is validated Successfully
The Number '0' is neither a Prime nor a Composite
Checking whether this number '0' is Prime or not
Jan 08, 2023 6:54:13 AM pack1.PrimeChk_Using_Stream PrimeCheck
INFO: This method 'PrimeCheck' called from the Class 'pack1.PrimeJ8Junit5'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: This method 'validateInputs' called from the Class 'pack1.PrimeChk_Using_Stream'
Jan 08, 2023 6:54:13 AM pack1.PrimeInputs validateInputs
INFO: The input is validated Successfully
The Number '0' is neither a Prime nor a Composite


Leave a comment