Repository: jmrozanec/cron-utils
Pull request #543 (2022-10-13 21:35:15)

Upgrade maven plugins
Testing performed:
- locally using Maven 3.8.6 and OpenJDK 11 ran a few commands like: `mvn test`, `mvn install`, `mvn package`, `mvn deploy` and all worked (except the actual upload to Sonatype for the last one)
- Ran the Github action test which uses OpenJDK 16 in my fork on Github



Patch:
diff --git a/pom.xml b/pom.xml
index 2446a80..219a445 100644
--- a/pom.xml
+++ b/pom.xml
@@ -62,6 +62,7 @@
         <slf4j.version>1.7.30</slf4j.version>
         <junit.version>5.8.1</junit.version>
         <mockito.version>3.9.0</mockito.version>
+        <powermock.version>2.0.9</powermock.version>
 
         <github.global.server>github</github.global.server>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -91,16 +92,34 @@
         </dependency>
         <dependency>
             <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
+            <artifactId>junit-jupiter-api</artifactId>
             <version>${junit.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-inline</artifactId>
+            <artifactId>mockito-junit-jupiter</artifactId>
             <version>${mockito.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>pl.pragmatists</groupId>
+            <artifactId>JUnitParams</artifactId>
+            <version>1.1.1</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-module-junit4</artifactId>
+            <version>${powermock.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-api-mockito2</artifactId>
+            <version>${powermock.version}</version>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.quartz-scheduler</groupId>
             <artifactId>quartz</artifactId>
@@ -134,7 +153,6 @@
             <groupId>org.glassfish</groupId>
             <artifactId>jakarta.el</artifactId>
             <version>3.0.4</version>
-            <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
@@ -149,7 +167,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-checkstyle-plugin</artifactId>
-                <version>2.17</version>
+                <version>3.2.0</version>
                 <configuration>
                     <configLocation>config/checkstyle.xml</configLocation>
                 </configuration>
@@ -157,7 +175,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.1</version>
+                <version>3.10.1</version>
                 <configuration>
                     <source>1.8</source>
                     <target>1.8</target>
@@ -166,7 +184,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-assembly-plugin</artifactId>
-                <version>2.2-beta-5</version>
+                <version>3.4.2</version>
                 <configuration>
                     <archive>
                         <manifest>
@@ -181,7 +199,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-source-plugin</artifactId>
-                <version>2.2.1</version>
+                <version>3.2.1</version>
                 <executions>
                     <execution>
                         <id>attach-sources</id>
@@ -194,17 +212,17 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-clean-plugin</artifactId>
-                <version>2.5</version>
+                <version>3.2.0</version>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-install-plugin</artifactId>
-                <version>2.5.1</version>
+                <version>3.0.1</version>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
-                <version>2.4</version>
+                <version>3.3.0</version>
                 <configuration>
                     <archive>
                         <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
@@ -221,12 +239,12 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-resources-plugin</artifactId>
-                <version>2.6</version>
+                <version>3.3.0</version>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-javadoc-plugin</artifactId>
-                <version>2.9.1</version>
+                <version>3.4.1</version>
                 <executions>
                     <execution>
                         <id>attach-javadocs</id>
@@ -244,12 +262,12 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
-                <version>3.0.0-M5</version>
+                <version>3.0.0-M7</version>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
-                <version>3.0.0-M1</version>
+                <version>3.0.0</version>
             </plugin>
             <plugin>
                 <groupId>org.sonatype.plugins</groupId>
@@ -270,7 +288,7 @@
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>clirr-maven-plugin</artifactId>
-                <version>2.6.1</version>
+                <version>2.8</version>
             </plugin>
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
diff --git a/pom.xml.jdk16 b/pom.xml.jdk16
index 503608f..367d91e 100644
--- a/pom.xml.jdk16
+++ b/pom.xml.jdk16
@@ -62,6 +62,7 @@
         <slf4j.version>1.7.30</slf4j.version>
         <junit.version>5.8.1</junit.version>
         <mockito.version>3.9.0</mockito.version>
+        <powermock.version>2.0.9</powermock.version>
 
         <github.global.server>github</github.global.server>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -91,16 +92,28 @@
         </dependency>
         <dependency>
             <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
+            <artifactId>junit-jupiter-api</artifactId>
             <version>${junit.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-inline</artifactId>
+            <artifactId>mockito-junit-jupiter</artifactId>
             <version>${mockito.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-module-junit4</artifactId>
+            <version>${powermock.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-api-mockito2</artifactId>
+            <version>${powermock.version}</version>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.quartz-scheduler</groupId>
             <artifactId>quartz</artifactId>
@@ -153,7 +166,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-checkstyle-plugin</artifactId>
-                <version>2.17</version>
+                <version>3.2.0</version>
                 <configuration>
                     <configLocation>src/main/resources/checkstyle.xml</configLocation>
                 </configuration>
@@ -161,7 +174,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.1</version>
+                <version>3.10.1</version>
                 <configuration>
                     <source>16</source>
                     <target>16</target>
@@ -182,7 +195,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-assembly-plugin</artifactId>
-                <version>2.2-beta-5</version>
+                <version>3.4.2</version>
                 <configuration>
                     <archive>
                         <manifest>
@@ -197,7 +210,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-source-plugin</artifactId>
-                <version>2.2.1</version>
+                <version>3.2.1</version>
                 <executions>
                     <execution>
                         <id>attach-sources</id>
@@ -210,17 +223,17 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-clean-plugin</artifactId>
-                <version>2.5</version>
+                <version>3.2.0</version>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-install-plugin</artifactId>
-                <version>2.5.1</version>
+                <version>3.0.1</version>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
-                <version>2.4</version>
+                <version>3.3.0</version>
                 <configuration>
                     <archive>
                         <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
@@ -237,12 +250,12 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-resources-plugin</artifactId>
-                <version>2.6</version>
+                <version>3.3.0</version>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-javadoc-plugin</artifactId>
-                <version>2.9.1</version>
+                <version>3.4.1</version>
                 <executions>
                     <execution>
                         <id>attach-javadocs</id>
@@ -260,7 +273,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
-                <version>3.0.0-M5</version>
+                <version>3.0.0-M7</version>
                 <configuration>
                     <argLine>${argLine} --add-opens java.xml/jdk.xml.internal=ALL-UNNAMED</argLine>
                 </configuration>
@@ -268,7 +281,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
-                <version>3.0.0-M1</version>
+                <version>3.0.0</version>
             </plugin>
             <plugin>
                 <groupId>org.sonatype.plugins</groupId>
@@ -289,7 +302,7 @@
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>clirr-maven-plugin</artifactId>
-                <version>2.6.1</version>
+                <version>2.8</version>
             </plugin>
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
diff --git a/src/main/java/com/cronutils/model/field/constraint/FieldConstraints.java b/src/main/java/com/cronutils/model/field/constraint/FieldConstraints.java
index b2b3b37..1a6a7af 100755
--- a/src/main/java/com/cronutils/model/field/constraint/FieldConstraints.java
+++ b/src/main/java/com/cronutils/model/field/constraint/FieldConstraints.java
@@ -19,7 +19,6 @@ import com.cronutils.utils.Preconditions;
 import java.io.Serializable;
 import java.util.Collections;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Set;
 
 /**
@@ -101,19 +100,4 @@ public class FieldConstraints implements Serializable {
     public boolean isStrictRange() {
         return strictRange;
     }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        FieldConstraints that = (FieldConstraints) o;
-        return strictRange == that.strictRange && stringMapping.equals(that.stringMapping)
-                && intMapping.equals(that.intMapping) && specialChars.equals(that.specialChars)
-                && startRange.equals(that.startRange) && endRange.equals(that.endRange);
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(stringMapping, intMapping, specialChars, startRange, endRange, strictRange);
-    }
 }
diff --git a/src/main/java/com/cronutils/model/field/definition/FieldDefinition.java b/src/main/java/com/cronutils/model/field/definition/FieldDefinition.java
index d195398..98ab707 100644
--- a/src/main/java/com/cronutils/model/field/definition/FieldDefinition.java
+++ b/src/main/java/com/cronutils/model/field/definition/FieldDefinition.java
@@ -19,7 +19,6 @@ import com.cronutils.utils.Preconditions;
 
 import java.io.Serializable;
 import java.util.Comparator;
-import java.util.Objects;
 
 /**
  * Represents a definition of allowed values for a cron field.
@@ -93,18 +92,5 @@ public class FieldDefinition implements Serializable {
     public static Comparator<FieldDefinition> createFieldDefinitionComparator() {
         return Comparator.comparingInt(o -> o.getFieldName().getOrder());
     }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        FieldDefinition that = (FieldDefinition) o;
-        return optional == that.optional && fieldName == that.fieldName && constraints.equals(that.constraints);
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(fieldName, constraints, optional);
-    }
 }
 
diff --git a/src/main/resources/com/cronutils/CronUtilsI18N_pt.properties b/src/main/resources/com/cronutils/CronUtilsI18N_pt.properties
index d5fd1e7..e0b0efd 100644
--- a/src/main/resources/com/cronutils/CronUtilsI18N_pt.properties
+++ b/src/main/resources/com/cronutils/CronUtilsI18N_pt.properties
@@ -4,7 +4,6 @@ second=segundo
 and=e
 at=em
 day=dia
-days=dias
 hour=hora
 hours=horas
 minute=minuto
@@ -15,7 +14,7 @@ year=ano
 between=entre
 of_every_month=de cada m\u00eas
 of_the_month=do m\u00eas
-last=\u00faltimo
+last=\u00faltima
 the_nearest_weekday_to_the=o dia da semana mais pr\u00f3ximo do
 last_day_of_month=\u00faltimo dia do m\u00eas
 day_before_last_day_of_month=um dia antes do \u00FAltimo dia do m\u00EAs


Test patch:
diff --git a/src/test/java/com/cronutils/Issue143Test.java b/src/test/java/com/cronutils/Issue143Test.java
index 247fd81..63bc017 100755
--- a/src/test/java/com/cronutils/Issue143Test.java
+++ b/src/test/java/com/cronutils/Issue143Test.java
@@ -17,16 +17,16 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.fail;
+import static org.junit.Assert.fail;
 
 public class Issue143Test {
 
@@ -34,7 +34,7 @@ public class Issue143Test {
     private CronParser parser;
     private ZonedDateTime currentDateTime;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         // Make sure that current date is before Dec-31
         currentDateTime = ZonedDateTime.of(LocalDateTime.of(2016, 12, 20, 12, 0),
@@ -51,7 +51,7 @@ public class Issue143Test {
 
         ZonedDateTime expected = ZonedDateTime.of(LocalDateTime.of(2015, 12, 31, 12, 0),
                 ZoneId.systemDefault());
-        assertEquals(expected, last);
+        Assert.assertEquals(expected, last);
     }
 
     @Test
@@ -60,7 +60,7 @@ public class Issue143Test {
         final Optional<ZonedDateTime> lastExecution = et.lastExecution(currentDateTime);
         if (lastExecution.isPresent()) {
             final ZonedDateTime expected = ZonedDateTime.of(LocalDateTime.of(2012, 12, 29, 12, 0), ZoneId.systemDefault());
-            assertEquals(expected, lastExecution.get());
+            Assert.assertEquals(expected, lastExecution.get());
         } else {
             fail(LAST_EXECUTION_NOT_PRESENT_ERROR);
         }
@@ -72,7 +72,7 @@ public class Issue143Test {
         final Optional<ZonedDateTime> lastExecution = et.lastExecution(currentDateTime);
         if (lastExecution.isPresent()) {
             final ZonedDateTime expected = ZonedDateTime.of(LocalDateTime.of(2016, 10, 31, 12, 0), ZoneId.systemDefault());
-            assertEquals(expected, lastExecution.get());
+            Assert.assertEquals(expected, lastExecution.get());
         } else {
             fail(LAST_EXECUTION_NOT_PRESENT_ERROR);
         }
@@ -84,7 +84,7 @@ public class Issue143Test {
         final Optional<ZonedDateTime> lastExecution = et.lastExecution(currentDateTime);
         if (lastExecution.isPresent()) {
             final ZonedDateTime expected = ZonedDateTime.of(LocalDateTime.of(2016, 10, 29, 12, 0), ZoneId.systemDefault());
-            assertEquals(expected, lastExecution.get());
+            Assert.assertEquals(expected, lastExecution.get());
         } else {
             fail(LAST_EXECUTION_NOT_PRESENT_ERROR);
         }
diff --git a/src/test/java/com/cronutils/Issue200Test.java b/src/test/java/com/cronutils/Issue200Test.java
index 4596a31..622c057 100755
--- a/src/test/java/com/cronutils/Issue200Test.java
+++ b/src/test/java/com/cronutils/Issue200Test.java
@@ -18,13 +18,13 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
 
 import static com.cronutils.model.CronType.QUARTZ;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertTrue;
 
 /**
  * Created by johnpatrick.manalo on 6/19/17.
@@ -45,7 +45,7 @@ public class Issue200Test {
         final ZonedDateTime zdt = ZonedDateTime.of(1999, 07, 18, 10, 00, 00, 03, ZoneId.systemDefault());
 
         // Must be true
-        assertTrue(ExecutionTime.forCron(quartzCron).isMatch(zdt), "Nano seconds must not affect matching of Cron Expressions");
+        assertTrue("Nano seconds must not affect matching of Cron Expressions", ExecutionTime.forCron(quartzCron).isMatch(zdt));
     }
 
     // Nano second-perfect (passes, no surprises here)
@@ -61,6 +61,6 @@ public class Issue200Test {
 
         final ZonedDateTime zdt = ZonedDateTime.of(1999, 07, 18, 10, 00, 00, 00, ZoneId.systemDefault());
 
-        assertTrue(ExecutionTime.forCron(quartzCron).isMatch(zdt), "Nano seconds must not affect matching of Cron Expressions");
+        assertTrue("Nano seconds must not affect matching of Cron Expressions", ExecutionTime.forCron(quartzCron).isMatch(zdt));
     }
 }
diff --git a/src/test/java/com/cronutils/Issue215Test.java b/src/test/java/com/cronutils/Issue215Test.java
index c3039cd..3bff588 100755
--- a/src/test/java/com/cronutils/Issue215Test.java
+++ b/src/test/java/com/cronutils/Issue215Test.java
@@ -18,7 +18,7 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.LocalDateTime;
 import java.time.Month;
@@ -26,7 +26,7 @@ import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class Issue215Test {
 
diff --git a/src/test/java/com/cronutils/Issue218Test.java b/src/test/java/com/cronutils/Issue218Test.java
index 281b66c..b3d6f59 100755
--- a/src/test/java/com/cronutils/Issue218Test.java
+++ b/src/test/java/com/cronutils/Issue218Test.java
@@ -17,7 +17,7 @@ import com.cronutils.model.Cron;
 import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.ZonedDateTime;
 
diff --git a/src/test/java/com/cronutils/Issue223Test.java b/src/test/java/com/cronutils/Issue223Test.java
index 90148ce..b752e93 100755
--- a/src/test/java/com/cronutils/Issue223Test.java
+++ b/src/test/java/com/cronutils/Issue223Test.java
@@ -19,13 +19,13 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.ZonedDateTime;
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.fail;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
 
 public class Issue223Test {
 
diff --git a/src/test/java/com/cronutils/Issue228Test.java b/src/test/java/com/cronutils/Issue228Test.java
index c4076c5..155d370 100755
--- a/src/test/java/com/cronutils/Issue228Test.java
+++ b/src/test/java/com/cronutils/Issue228Test.java
@@ -18,12 +18,12 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.ZonedDateTime;
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class Issue228Test {
 
diff --git a/src/test/java/com/cronutils/Issue293Test.java b/src/test/java/com/cronutils/Issue293Test.java
index 9f0db06..89b4d70 100644
--- a/src/test/java/com/cronutils/Issue293Test.java
+++ b/src/test/java/com/cronutils/Issue293Test.java
@@ -6,29 +6,45 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.ValueSource;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 import java.time.DayOfWeek;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.fail;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
 
 // https://github.com/jmrozanec/cron-utils/issues/293
+@RunWith(Parameterized.class)
 public class Issue293Test {
     private static final ZoneId ZONE = ZoneId.systemDefault();
 
-    @ParameterizedTest
-    @ValueSource(strings = {
-        "15 18 * 1-11 *",       // DateTimeException - Invalid date - Nov 31
-        "15 18 * 1-11 0-5",     // DateTimeException - Invalid date - Nov 31
-        "15 18 * 1-11 4-5",     // Actual is 11/24
-        "15 18 * 1-11 1-5"      // Actual is 11/29
-    })
-    public void test(String cronText) {
+    private final String cronText;
+
+    /**
+     * Each test is a cron spec excluding the reference month (December)
+     * @return unix cron
+     */
+    @Parameterized.Parameters(name = "{0}")
+    public static String[] data() {
+        return new String[] {
+            "15 18 * 1-11 *",       // DateTimeException - Invalid date - Nov 31
+            "15 18 * 1-11 0-5",     // DateTimeException - Invalid date - Nov 31
+            "15 18 * 1-11 4-5",     // Actual is 11/24
+            "15 18 * 1-11 1-5"      // Actual is 11/29
+        };
+    }
+
+    public Issue293Test(String cronText) {
+        this.cronText = cronText;
+    }
+
+    @Test
+    public void test() {
         CronDefinition def = CronDefinitionBuilder.instanceDefinitionFor(CronType.UNIX);
         CronParser parser = new CronParser(def);
 
diff --git a/src/test/java/com/cronutils/Issue305Test.java b/src/test/java/com/cronutils/Issue305Test.java
index 74fe55d..3bce518 100644
--- a/src/test/java/com/cronutils/Issue305Test.java
+++ b/src/test/java/com/cronutils/Issue305Test.java
@@ -6,7 +6,7 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
@@ -16,7 +16,7 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class Issue305Test {
 
diff --git a/src/test/java/com/cronutils/Issue319Test.java b/src/test/java/com/cronutils/Issue319Test.java
index 44cc794..35c32ca 100644
--- a/src/test/java/com/cronutils/Issue319Test.java
+++ b/src/test/java/com/cronutils/Issue319Test.java
@@ -5,7 +5,7 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
diff --git a/src/test/java/com/cronutils/Issue329Test.java b/src/test/java/com/cronutils/Issue329Test.java
index 720dbf0..f253405 100644
--- a/src/test/java/com/cronutils/Issue329Test.java
+++ b/src/test/java/com/cronutils/Issue329Test.java
@@ -5,7 +5,7 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.ZonedDateTime;
 
diff --git a/src/test/java/com/cronutils/Issue332Test.java b/src/test/java/com/cronutils/Issue332Test.java
index ab258f0..fc63c9c 100644
--- a/src/test/java/com/cronutils/Issue332Test.java
+++ b/src/test/java/com/cronutils/Issue332Test.java
@@ -5,7 +5,7 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
diff --git a/src/test/java/com/cronutils/Issue338Test.java b/src/test/java/com/cronutils/Issue338Test.java
index ab5a00c..ae3833a 100644
--- a/src/test/java/com/cronutils/Issue338Test.java
+++ b/src/test/java/com/cronutils/Issue338Test.java
@@ -5,12 +5,11 @@ import com.cronutils.model.Cron;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Assert;
+import org.junit.Test;
 
 import java.util.Locale;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
 public class Issue338Test {
 
 	@Test
@@ -19,6 +18,6 @@ public class Issue338Test {
 		String cronString = "* * * * * ? *";
 		Cron cron = cronParser.parse(cronString);
 		String description = CronDescriptor.instance(Locale.FRANCE).describe(cron);
-		assertEquals("chaque seconde", description);
+		Assert.assertEquals("chaque seconde", description);
 	}
 }
diff --git a/src/test/java/com/cronutils/Issue340Test.java b/src/test/java/com/cronutils/Issue340Test.java
index c495b24..abc454e 100644
--- a/src/test/java/com/cronutils/Issue340Test.java
+++ b/src/test/java/com/cronutils/Issue340Test.java
@@ -5,7 +5,8 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Assert;
+import org.junit.Test;
 import org.mockito.internal.util.collections.Sets;
 
 import java.time.Duration;
@@ -14,8 +15,6 @@ import java.util.Optional;
 import java.util.Set;
 
 import static com.cronutils.model.CronType.QUARTZ;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class Issue340Test {
 
@@ -31,8 +30,8 @@ public class Issue340Test {
 
         // Time from last execution to now
         Optional<Duration> timeFromLastExecution = executionTime.timeFromLastExecution(time);
-        assertTrue(timeFromLastExecution.isPresent());
-        assertTrue(timeFromLastExecution.get().toMinutes() <= 60);
+        Assert.assertTrue(timeFromLastExecution.isPresent());
+        Assert.assertTrue(timeFromLastExecution.get().toMinutes() <= 60);
     }
 
     @Test
@@ -51,13 +50,13 @@ public class Issue340Test {
         // Check the next 100 execution times
         for (int i = 0; i < 100; i++) {
             Optional<ZonedDateTime> nextExecution = executionTime.nextExecution(time);
-            assertTrue(nextExecution.isPresent());
+            Assert.assertTrue(nextExecution.isPresent());
             time = nextExecution.get();
             int dayOfWeek = time.getDayOfWeek().getValue();
-            assertTrue(validDaysOfWeek.contains(dayOfWeek));
-            assertEquals(5, time.getHour());
-            assertEquals(0, time.getMinute());
-            assertEquals(0, time.getSecond());
+            Assert.assertTrue(validDaysOfWeek.contains(dayOfWeek));
+            Assert.assertEquals(5, time.getHour());
+            Assert.assertEquals(0, time.getMinute());
+            Assert.assertEquals(0, time.getSecond());
         }
     }
 
diff --git a/src/test/java/com/cronutils/Issue363Test.java b/src/test/java/com/cronutils/Issue363Test.java
index d0ce7cf..9dc3c82 100644
--- a/src/test/java/com/cronutils/Issue363Test.java
+++ b/src/test/java/com/cronutils/Issue363Test.java
@@ -4,14 +4,14 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.ZoneOffset;
 import java.time.ZonedDateTime;
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 public class Issue363Test {
 
diff --git a/src/test/java/com/cronutils/Issue367Test.java b/src/test/java/com/cronutils/Issue367Test.java
index 4a576b2..be58248 100644
--- a/src/test/java/com/cronutils/Issue367Test.java
+++ b/src/test/java/com/cronutils/Issue367Test.java
@@ -17,9 +17,9 @@ import com.cronutils.model.Cron;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
 
 import java.text.ParseException;
 import java.time.ZoneId;
@@ -28,17 +28,17 @@ import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.TimeZone;
 
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertTrue;
 
 /**
  * Provide an example on how convert a cron expression to ISO8601
  */
-@Disabled
+@Ignore
 public class Issue367Test {
 
 	private CronParser parser;
 
-	@BeforeEach
+	@Before
 	public void setUp() {
 		parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ));
 	}
diff --git a/src/test/java/com/cronutils/Issue382Test.java b/src/test/java/com/cronutils/Issue382Test.java
index 6840c48..d319171 100644
--- a/src/test/java/com/cronutils/Issue382Test.java
+++ b/src/test/java/com/cronutils/Issue382Test.java
@@ -5,13 +5,13 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.ZonedDateTime;
 
 import static java.time.Duration.ofMillis;
 import static java.time.ZoneOffset.UTC;
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class Issue382Test {
 
diff --git a/src/test/java/com/cronutils/Issue388Test.java b/src/test/java/com/cronutils/Issue388Test.java
index ddf584f..be4efc0 100644
--- a/src/test/java/com/cronutils/Issue388Test.java
+++ b/src/test/java/com/cronutils/Issue388Test.java
@@ -5,14 +5,14 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.DayOfWeek;
 import java.time.ZonedDateTime;
 
 import static java.time.ZoneOffset.UTC;
 import static java.time.temporal.TemporalAdjusters.firstInMonth;
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 
 public class Issue388Test {
diff --git a/src/test/java/com/cronutils/Issue394Test.java b/src/test/java/com/cronutils/Issue394Test.java
index 25d1e90..25f2102 100644
--- a/src/test/java/com/cronutils/Issue394Test.java
+++ b/src/test/java/com/cronutils/Issue394Test.java
@@ -4,15 +4,15 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.DayOfWeek;
 import java.time.ZonedDateTime;
 import java.util.Optional;
 
 import static com.cronutils.model.CronType.SPRING;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 public class Issue394Test {
 
diff --git a/src/test/java/com/cronutils/Issue403Test.java b/src/test/java/com/cronutils/Issue403Test.java
index 261cc00..eebbdf7 100644
--- a/src/test/java/com/cronutils/Issue403Test.java
+++ b/src/test/java/com/cronutils/Issue403Test.java
@@ -6,8 +6,8 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
+import org.junit.Ignore;
+import org.junit.Test;
 
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
@@ -15,11 +15,11 @@ import java.time.format.DateTimeFormatter;
 import java.util.Locale;
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 
 public class Issue403Test {
-    @Disabled
+    @Ignore
     @Test
     public void testCase1() {
         CronParser parser = new CronParser( CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ));
diff --git a/src/test/java/com/cronutils/Issue404Test.java b/src/test/java/com/cronutils/Issue404Test.java
index 64ff2c2..b769ca3 100644
--- a/src/test/java/com/cronutils/Issue404Test.java
+++ b/src/test/java/com/cronutils/Issue404Test.java
@@ -18,23 +18,22 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
 
 import java.time.Duration;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
 /**
  * America/Sao_Paulo is only 3 hours behind UTC. Even with less difference, november 3 seems to be
  * ignored by timeFromLastExecution
  */
 public class Issue404Test {
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testNovember3Midnight() {
 		final CronDefinition cronDefinition = CronDefinitionBuilder.defineCron().withMinutes().and().withHours().and()
@@ -48,10 +47,10 @@ public class Issue404Test {
 
 		final Duration timeFromLastExecution = executionTime.timeFromLastExecution(time).get();
 
-		assertEquals(1, timeFromLastExecution.getSeconds());
+		Assert.assertEquals(1, timeFromLastExecution.getSeconds());
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testNovember3Noon() {
 		final CronDefinition cronDefinition = CronDefinitionBuilder.defineCron().withMinutes().and().withHours().and()
@@ -65,7 +64,7 @@ public class Issue404Test {
 
 		final Duration timeFromLastExecution = executionTime.timeFromLastExecution(time).get();
 
-		assertEquals(12, timeFromLastExecution.toHours());
+		Assert.assertEquals(12, timeFromLastExecution.toHours());
 	}
 
 
@@ -82,7 +81,7 @@ public class Issue404Test {
 
 		final Duration timeFromLastExecution = executionTime.timeFromLastExecution(time).get();
 
-		assertEquals(1, timeFromLastExecution.getSeconds());
+		Assert.assertEquals(1, timeFromLastExecution.getSeconds());
 	}
 
 
@@ -99,6 +98,6 @@ public class Issue404Test {
 
 		final Duration timeFromLastExecution = executionTime.timeFromLastExecution(time).get();
 
-		assertEquals(16, timeFromLastExecution.toHours());
+		Assert.assertEquals(16, timeFromLastExecution.toHours());
 	}
 }
diff --git a/src/test/java/com/cronutils/Issue406Test.java b/src/test/java/com/cronutils/Issue406Test.java
index 90a54dd..8112f0f 100644
--- a/src/test/java/com/cronutils/Issue406Test.java
+++ b/src/test/java/com/cronutils/Issue406Test.java
@@ -5,7 +5,7 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.LocalDate;
 import java.time.LocalTime;
@@ -13,7 +13,7 @@ import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class Issue406Test {
     @Test
diff --git a/src/test/java/com/cronutils/Issue413Test.java b/src/test/java/com/cronutils/Issue413Test.java
index 39512f9..f4ee7af 100644
--- a/src/test/java/com/cronutils/Issue413Test.java
+++ b/src/test/java/com/cronutils/Issue413Test.java
@@ -3,9 +3,9 @@ package com.cronutils;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class Issue413Test {
     @Test
diff --git a/src/test/java/com/cronutils/Issue418Test.java b/src/test/java/com/cronutils/Issue418Test.java
index 3253596..d2824b8 100644
--- a/src/test/java/com/cronutils/Issue418Test.java
+++ b/src/test/java/com/cronutils/Issue418Test.java
@@ -5,7 +5,8 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.hamcrest.core.StringEndsWith;
+import org.junit.Test;
 
 import java.time.LocalDate;
 import java.time.LocalTime;
@@ -13,7 +14,8 @@ import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.hamcrest.core.StringEndsWith.endsWith;
+import static org.junit.Assert.*;
 
 public class Issue418Test {
 
@@ -58,7 +60,7 @@ public class Issue418Test {
             parser.parse("0 0 2 ? * 0/7 *");
             fail("Expected exception for invalid expression");
         } catch (IllegalArgumentException expected) {
-            assertTrue(expected.getMessage().endsWith("Value 0 not in range [1, 7]"));
+            assertThat(expected.getMessage(), endsWith("Value 0 not in range [1, 7]"));
         }
     }
 
@@ -70,7 +72,7 @@ public class Issue418Test {
             parser.parse("0 0 2 ? * 1/8 *");
             fail("Expected exception for invalid expression");
         } catch (IllegalArgumentException expected) {
-            assertTrue(expected.getMessage().endsWith("Period 8 not in range [1, 7]"));
+            assertThat(expected.getMessage(), endsWith("Period 8 not in range [1, 7]"));
         }
     }
 }
diff --git a/src/test/java/com/cronutils/Issue421Test.java b/src/test/java/com/cronutils/Issue421Test.java
index 75f26ce..a16181b 100644
--- a/src/test/java/com/cronutils/Issue421Test.java
+++ b/src/test/java/com/cronutils/Issue421Test.java
@@ -7,7 +7,8 @@ import com.cronutils.model.definition.CronConstraintsFactory;
 import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
-import org.junit.jupiter.api.Test;
+import org.junit.Assert;
+import org.junit.Test;
 
 import java.time.*;
 import java.util.Locale;
@@ -16,7 +17,7 @@ import java.util.Optional;
 import static com.cronutils.model.field.expression.FieldExpression.questionMark;
 import static com.cronutils.model.field.expression.FieldExpressionFactory.every;
 import static com.cronutils.model.field.expression.FieldExpressionFactory.on;
-import static org.junit.jupiter.api.Assertions.*;
+import static junit.framework.TestCase.fail;
 
 public class Issue421Test {
 
@@ -43,16 +44,16 @@ public class Issue421Test {
         ZonedDateTime nextRun;
 
         nextRun = nextRun(cron, now); // first run
-        assertEquals(2020, nextRun.getYear());
-        assertEquals(7, nextRun.getMonthValue());
+        Assert.assertEquals(2020, nextRun.getYear());
+        Assert.assertEquals(7, nextRun.getMonthValue());
 
         nextRun = nextRun(cron, nextRun); // first run
-        assertEquals(2020, nextRun.getYear());
-        assertEquals(12, nextRun.getMonthValue());
+        Assert.assertEquals(2020, nextRun.getYear());
+        Assert.assertEquals(12, nextRun.getMonthValue());
 
         nextRun = nextRun(cron, nextRun); // first run
-        assertEquals(2021, nextRun.getYear());
-        assertEquals(2, nextRun.getMonthValue());
+        Assert.assertEquals(2021, nextRun.getYear());
+        Assert.assertEquals(2, nextRun.getMonthValue());
     }
 
     @Test
@@ -66,16 +67,16 @@ public class Issue421Test {
         ZonedDateTime nextRun;
 
         nextRun = nextRun(cron, now); // first run
-        assertEquals(2020, nextRun.getYear());
-        assertEquals(6, nextRun.getMonthValue());
+        Assert.assertEquals(2020, nextRun.getYear());
+        Assert.assertEquals(6, nextRun.getMonthValue());
 
         nextRun = nextRun(cron, nextRun); // first run
-        assertEquals(2020, nextRun.getYear());
-        assertEquals(11, nextRun.getMonthValue());
+        Assert.assertEquals(2020, nextRun.getYear());
+        Assert.assertEquals(11, nextRun.getMonthValue());
 
         nextRun = nextRun(cron, nextRun); // first run
-        assertEquals(2021, nextRun.getYear());
-        assertEquals(1, nextRun.getMonthValue());
+        Assert.assertEquals(2021, nextRun.getYear());
+        Assert.assertEquals(1, nextRun.getMonthValue());
     }
 
     @Test
@@ -84,11 +85,11 @@ public class Issue421Test {
 
         String description = CronDescriptor.instance(Locale.US).describe(getEveryMonth(now, 3).instance());
         System.out.println(description);
-        assertTrue(description.contains("every 3 months"));
+        Assert.assertTrue(description.contains("every 3 months"));
 
         description = CronDescriptor.instance(Locale.US).describe(getEveryMonth(now, 6).instance());
         System.out.println(description);
-        assertTrue(description.contains("every 6 months"));
+        Assert.assertTrue(description.contains("every 6 months"));
     }
 
     public static CronBuilder getEveryMonth(ZonedDateTime now, int every) {
diff --git a/src/test/java/com/cronutils/Issue423Test.java b/src/test/java/com/cronutils/Issue423Test.java
index ac5b2b3..4a38a38 100644
--- a/src/test/java/com/cronutils/Issue423Test.java
+++ b/src/test/java/com/cronutils/Issue423Test.java
@@ -6,8 +6,8 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
+import org.junit.Ignore;
+import org.junit.Test;
 
 import java.time.LocalDate;
 import java.time.LocalTime;
@@ -16,9 +16,9 @@ import java.time.ZonedDateTime;
 import java.util.Arrays;
 import java.util.Locale;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-@Disabled
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+@Ignore
 public class Issue423Test {
     private static final LocalDate saturday = LocalDate.of(2020, 4, 25);
     private static ZonedDateTime shortZDT(int h, int m) {
@@ -61,9 +61,9 @@ public class Issue423Test {
         ).forEach(tp -> {
 //            System.err.println("Expected: " + tp.expected + "; Actual: " + et.nextExecution(tp.test).get().toString());
             assertEquals(
+                "All these should be on the same Saturday",
                 tp.expected,
-                et.nextExecution(tp.test).get(),
-                "All these should be on the same Saturday"
+                et.nextExecution(tp.test).get()
             );
         });
     }
diff --git a/src/test/java/com/cronutils/Issue430Test.java b/src/test/java/com/cronutils/Issue430Test.java
index fc36ff0..cbfac8e 100644
--- a/src/test/java/com/cronutils/Issue430Test.java
+++ b/src/test/java/com/cronutils/Issue430Test.java
@@ -6,13 +6,13 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
 
 import java.time.ZoneOffset;
 import java.time.ZonedDateTime;
 
-import static org.junit.jupiter.api.Assertions.*;
-
 public class Issue430Test {
     @Test
     public void test() {
@@ -22,7 +22,7 @@ public class Issue430Test {
         ExecutionTime execution = ExecutionTime.forCron(cron);
         ZonedDateTime dateTime = ZonedDateTime.of(2020, 6, 30, 12, 0, 0, 0, ZoneOffset.UTC);
         // The cron starts from 2020, so no last execution date should be returned.
-        assertNull(execution.lastExecution(dateTime).orElse(null));
-        assertEquals(dateTime.plusYears(10), execution.nextExecution(dateTime).orElse(null));
+        Assert.assertNull(execution.lastExecution(dateTime).orElse(null));
+        Assert.assertEquals(dateTime.plusYears(10), execution.nextExecution(dateTime).orElse(null));
     }
 }
diff --git a/src/test/java/com/cronutils/Issue439Test.java b/src/test/java/com/cronutils/Issue439Test.java
index 4186c63..4a76b14 100644
--- a/src/test/java/com/cronutils/Issue439Test.java
+++ b/src/test/java/com/cronutils/Issue439Test.java
@@ -4,18 +4,18 @@ import com.cronutils.descriptor.CronDescriptor;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.Locale;
 
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertTrue;
 
 public class Issue439Test {
 
 	private CronParser parser;
 
-	@BeforeEach
+	@Before
 	public void setUp() {
 		parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ));
 	}
diff --git a/src/test/java/com/cronutils/Issue440Test.java b/src/test/java/com/cronutils/Issue440Test.java
index 86865b0..e7e603d 100644
--- a/src/test/java/com/cronutils/Issue440Test.java
+++ b/src/test/java/com/cronutils/Issue440Test.java
@@ -4,11 +4,11 @@ import com.cronutils.descriptor.CronDescriptor;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.util.Locale;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class Issue440Test {
 
diff --git a/src/test/java/com/cronutils/Issue444Test.java b/src/test/java/com/cronutils/Issue444Test.java
index 197c359..01e3be0 100644
--- a/src/test/java/com/cronutils/Issue444Test.java
+++ b/src/test/java/com/cronutils/Issue444Test.java
@@ -5,7 +5,7 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.Clock;
 import java.time.Instant;
@@ -13,7 +13,7 @@ import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class Issue444Test {
 
diff --git a/src/test/java/com/cronutils/Issue446Test.java b/src/test/java/com/cronutils/Issue446Test.java
index 50f60b2..3a9ab3f 100644
--- a/src/test/java/com/cronutils/Issue446Test.java
+++ b/src/test/java/com/cronutils/Issue446Test.java
@@ -6,7 +6,8 @@ import com.cronutils.model.definition.CronConstraintsFactory;
 import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
-import org.junit.jupiter.api.Test;
+import org.junit.Assert;
+import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -17,7 +18,7 @@ import static com.cronutils.model.field.expression.FieldExpression.always;
 import static com.cronutils.model.field.expression.FieldExpression.questionMark;
 import static com.cronutils.model.field.expression.FieldExpressionFactory.every;
 import static com.cronutils.model.field.expression.FieldExpressionFactory.on;
-import static org.junit.jupiter.api.Assertions.*;
+import static junit.framework.TestCase.fail;
 
 
 public class Issue446Test {
@@ -43,13 +44,13 @@ public class Issue446Test {
         Cron cron = getEveryMonthFromNow(dayOfAprilInLocalTimezone, 6).instance();
 
         ZonedDateTime nextRun = nextRun(cron, dayOfAprilInLocalTimezone); // first run
-        assertEquals(2020, nextRun.getYear());
-        assertEquals(10, nextRun.getMonthValue());
+        Assert.assertEquals(2020, nextRun.getYear());
+        Assert.assertEquals(10, nextRun.getMonthValue());
 
         nextRun = nextRun(cron, nextRun); // second
         System.out.println(nextRun);
-        assertEquals(2021, nextRun.getYear());
-        assertEquals(4, nextRun.getMonthValue());
+        Assert.assertEquals(2021, nextRun.getYear());
+        Assert.assertEquals(4, nextRun.getMonthValue());
     }
 
     public static CronBuilder getEveryMonthFromNow(ZonedDateTime now, int every) {
@@ -74,30 +75,30 @@ public class Issue446Test {
         Cron cron = getEvery30Minute(daylightSaving2020InLocalTimezone).instance();
 
         ZonedDateTime nextRun = nextRun(cron, daylightSaving2020InLocalTimezone); // first run
-        assertEquals(40, nextRun.getMinute());
-        assertEquals(1, nextRun.getHour());
+        Assert.assertEquals(40, nextRun.getMinute());
+        Assert.assertEquals(1, nextRun.getHour());
         nextRun = nextRun(cron, nextRun); // second
-        assertEquals(10, nextRun.getMinute());
-        assertEquals(2, nextRun.getHour());
-        assertEquals(ZoneOffset.ofHours(2), nextRun.getOffset());
+        Assert.assertEquals(10, nextRun.getMinute());
+        Assert.assertEquals(2, nextRun.getHour());
+        Assert.assertEquals(ZoneOffset.ofHours(2), nextRun.getOffset());
         nextRun = nextRun(cron, nextRun); // second
-        assertEquals(40, nextRun.getMinute());
-        assertEquals(2, nextRun.getHour());
-        assertEquals(ZoneOffset.ofHours(2), nextRun.getOffset());
+        Assert.assertEquals(40, nextRun.getMinute());
+        Assert.assertEquals(2, nextRun.getHour());
+        Assert.assertEquals(ZoneOffset.ofHours(2), nextRun.getOffset());
         nextRun = nextRun(cron, nextRun); // second
-        assertEquals(10, nextRun.getMinute());
-        assertEquals(2, nextRun.getHour());
-        assertEquals(ZoneOffset.ofHours(1), nextRun.getOffset());
+        Assert.assertEquals(10, nextRun.getMinute());
+        Assert.assertEquals(2, nextRun.getHour());
+        Assert.assertEquals(ZoneOffset.ofHours(1), nextRun.getOffset());
         nextRun = nextRun(cron, nextRun); // second
-        assertEquals(40, nextRun.getMinute());
-        assertEquals(2, nextRun.getHour());
-        assertEquals(ZoneOffset.ofHours(1), nextRun.getOffset());
+        Assert.assertEquals(40, nextRun.getMinute());
+        Assert.assertEquals(2, nextRun.getHour());
+        Assert.assertEquals(ZoneOffset.ofHours(1), nextRun.getOffset());
         nextRun = nextRun(cron, nextRun); // second
-        assertEquals(10, nextRun.getMinute());
-        assertEquals(3, nextRun.getHour());
+        Assert.assertEquals(10, nextRun.getMinute());
+        Assert.assertEquals(3, nextRun.getHour());
         nextRun = nextRun(cron, nextRun); // second
-        assertEquals(40, nextRun.getMinute());
-        assertEquals(3, nextRun.getHour());
+        Assert.assertEquals(40, nextRun.getMinute());
+        Assert.assertEquals(3, nextRun.getHour());
 
     }
 
@@ -110,13 +111,13 @@ public class Issue446Test {
         Cron cron = getEveryHour(daylightSaving2020InLocalTimezone).instance();
 
         ZonedDateTime nextRun = nextRun(cron, daylightSaving2020InLocalTimezone);
-        assertEquals(0, nextRun.getMinute());
-        assertEquals(2, nextRun.getHour());
-        assertEquals(ZoneOffset.ofHours(2), nextRun.getOffset());
+        Assert.assertEquals(0, nextRun.getMinute());
+        Assert.assertEquals(2, nextRun.getHour());
+        Assert.assertEquals(ZoneOffset.ofHours(2), nextRun.getOffset());
         nextRun = nextRun(cron, nextRun); // second
-        assertEquals(0, nextRun.getMinute());
-        assertEquals(3, nextRun.getHour());
-        assertEquals(ZoneOffset.ofHours(2), nextRun.getOffset());
+        Assert.assertEquals(0, nextRun.getMinute());
+        Assert.assertEquals(3, nextRun.getHour());
+        Assert.assertEquals(ZoneOffset.ofHours(2), nextRun.getOffset());
 
         startDay = LocalDateTime.of(2020, 10, 25, 1, 0); // Daylight saving
         clock = Clock.fixed(startDay.toInstant(ZoneOffset.ofHours(2)), ZoneId.of("Europe/Rome"));
@@ -125,17 +126,17 @@ public class Issue446Test {
         cron = getEveryHour(daylightSaving2020InLocalTimezone).instance();
 
         nextRun = nextRun(cron, daylightSaving2020InLocalTimezone); // first run
-        assertEquals(0, nextRun.getMinute());
-        assertEquals(2, nextRun.getHour());
-        assertEquals(ZoneOffset.ofHours(2), nextRun.getOffset());
+        Assert.assertEquals(0, nextRun.getMinute());
+        Assert.assertEquals(2, nextRun.getHour());
+        Assert.assertEquals(ZoneOffset.ofHours(2), nextRun.getOffset());
         nextRun = nextRun(cron, nextRun); // second
-        assertEquals(0, nextRun.getMinute());
-        assertEquals(2, nextRun.getHour());
-        assertEquals(ZoneOffset.ofHours(1), nextRun.getOffset());
+        Assert.assertEquals(0, nextRun.getMinute());
+        Assert.assertEquals(2, nextRun.getHour());
+        Assert.assertEquals(ZoneOffset.ofHours(1), nextRun.getOffset());
         nextRun = nextRun(cron, nextRun); // second
-        assertEquals(0, nextRun.getMinute());
-        assertEquals(3, nextRun.getHour());
-        assertEquals(ZoneOffset.ofHours(1), nextRun.getOffset());
+        Assert.assertEquals(0, nextRun.getMinute());
+        Assert.assertEquals(3, nextRun.getHour());
+        Assert.assertEquals(ZoneOffset.ofHours(1), nextRun.getOffset());
 
     }
 
diff --git a/src/test/java/com/cronutils/Issue459Test.java b/src/test/java/com/cronutils/Issue459Test.java
index 8a19512..3151164 100644
--- a/src/test/java/com/cronutils/Issue459Test.java
+++ b/src/test/java/com/cronutils/Issue459Test.java
@@ -2,22 +2,21 @@ package com.cronutils;
 
 import com.cronutils.builder.CronBuilder;
 import com.cronutils.model.definition.CronDefinitionBuilder;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import static com.cronutils.model.CronType.UNIX;
 import static com.cronutils.model.field.expression.FieldExpression.always;
 import static com.cronutils.model.field.expression.FieldExpressionFactory.on;
-import static org.junit.jupiter.api.Assertions.assertThrows;
 
 public class Issue459Test {
-    @Test
+    @Test(expected = RuntimeException.class)
     public void testNegativeValuesNotAllowed() {
-        assertThrows(RuntimeException.class, () -> CronBuilder.cron(CronDefinitionBuilder.instanceDefinitionFor(UNIX))
+        CronBuilder.cron(CronDefinitionBuilder.instanceDefinitionFor(UNIX))
                 .withDoM(always())
                 .withMonth(always())
                 .withDoW(always())
                 .withHour(on(-1))
                 .withMinute(on(5))
-                .instance());
+                .instance();
     }
 }
diff --git a/src/test/java/com/cronutils/Issue462Test.java b/src/test/java/com/cronutils/Issue462Test.java
index 74234f7..4854915 100644
--- a/src/test/java/com/cronutils/Issue462Test.java
+++ b/src/test/java/com/cronutils/Issue462Test.java
@@ -13,15 +13,17 @@
 
 package com.cronutils;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 import com.cronutils.descriptor.CronDescriptor;
 import com.cronutils.model.Cron;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
+import java.text.ParseException;
 import java.util.Locale;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
 
 /**
  * Provide an example on how convert a cron expression to ISO8601
@@ -31,7 +33,7 @@ public class Issue462Test {
     private CronParser parser;
     private CronDescriptor descriptor;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.SPRING));
         descriptor = CronDescriptor.instance(Locale.ENGLISH);
diff --git a/src/test/java/com/cronutils/Issue470Test.java b/src/test/java/com/cronutils/Issue470Test.java
index 1eae0f8..a29aafa 100644
--- a/src/test/java/com/cronutils/Issue470Test.java
+++ b/src/test/java/com/cronutils/Issue470Test.java
@@ -4,7 +4,8 @@ import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.util.Optional;
 
-import org.junit.jupiter.api.Test;
+import org.junit.Ignore;
+import org.junit.Test;
 
 import com.cronutils.model.Cron;
 import com.cronutils.model.CronType;
diff --git a/src/test/java/com/cronutils/Issue477Test.java b/src/test/java/com/cronutils/Issue477Test.java
index e9eea93..f2b5e3e 100644
--- a/src/test/java/com/cronutils/Issue477Test.java
+++ b/src/test/java/com/cronutils/Issue477Test.java
@@ -1,10 +1,10 @@
 package com.cronutils;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 import java.util.Locale;
 
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import com.cronutils.descriptor.CronDescriptor;
 import com.cronutils.model.CronType;
diff --git a/src/test/java/com/cronutils/Issue480Test.java b/src/test/java/com/cronutils/Issue480Test.java
index 6f90039..1602104 100644
--- a/src/test/java/com/cronutils/Issue480Test.java
+++ b/src/test/java/com/cronutils/Issue480Test.java
@@ -6,7 +6,9 @@ import com.cronutils.model.definition.CronConstraintsFactory;
 import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
-import org.junit.jupiter.api.Test;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -17,7 +19,8 @@ import java.util.Optional;
 import static com.cronutils.model.field.expression.FieldExpression.questionMark;
 import static com.cronutils.model.field.expression.FieldExpressionFactory.always;
 import static com.cronutils.model.field.expression.FieldExpressionFactory.on;
-import static org.junit.jupiter.api.Assertions.*;
+import static junit.framework.Assert.assertTrue;
+import static junit.framework.TestCase.fail;
 
 public class Issue480Test {
 
@@ -39,7 +42,7 @@ public class Issue480Test {
     @Test
     public void testIntervalsEvery5thMonthsSinceASpecificMonth() {
         LocalDateTime sunday = LocalDateTime.of(2021, 6, 27, 0, 0);
-        assertEquals(sunday.getDayOfWeek(), DayOfWeek.SUNDAY);
+        Assert.assertEquals(sunday.getDayOfWeek(), DayOfWeek.SUNDAY);
         Clock clock = Clock.fixed(sunday.toInstant(ZoneOffset.UTC), ZoneId.systemDefault());
         ZonedDateTime now = ZonedDateTime.now(clock);
         LOGGER.info("Now: {}", now);
diff --git a/src/test/java/com/cronutils/Issue499Test.java b/src/test/java/com/cronutils/Issue499Test.java
index feea642..47727f7 100644
--- a/src/test/java/com/cronutils/Issue499Test.java
+++ b/src/test/java/com/cronutils/Issue499Test.java
@@ -1,26 +1,34 @@
 package com.cronutils;
 
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
+import com.cronutils.mapper.CronMapper;
+import com.cronutils.model.Cron;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
 
-import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.Test;
 
 class Issue499Test {
     /**
-     * We want to convert Unix cron expressions to Quartz cron expressions. We
+     * We want to convert Unix cron expressions to Quartz cron expressions. We 
      * expect an exception: java.lang.IllegalArgumentException:
      * Failed to parse '12 1 * ? *'. Invalid expression: ?
-     * Given question marks are not supported at Unix crons. See:
+     * Given question marks are not supported at Unix crons. See: 
      * https://github.com/jmrozanec/cron-utils/issues/499
      */
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     void testCronExpressionForConversionToQuartz() {
         final CronParser unixParser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.UNIX));
+        final CronMapper unixToQuartz = CronMapper.fromUnixToQuartz();
         final String unixExpression = "12 1 * ? *";
         // Works on 5.0.5, throws IllegalArgumentException in 9.1.3
-        assertThrows(IllegalArgumentException.class, () -> unixParser.parse(unixExpression));
+        final Cron unixCron = unixParser.parse(unixExpression);
+        // Goal: Convert unix expressions to quartz.
+        final String quartzExpression = unixToQuartz.map(unixCron).asString();
+        // This is what we expected.
+        assertEquals("0 12 1 * ? ? *", quartzExpression);
     }
 }
diff --git a/src/test/java/com/cronutils/Issue528Test.java b/src/test/java/com/cronutils/Issue528Test.java
index 7536b9c..6748bce 100644
--- a/src/test/java/com/cronutils/Issue528Test.java
+++ b/src/test/java/com/cronutils/Issue528Test.java
@@ -7,7 +7,7 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 import org.junit.jupiter.api.Assertions;
 
 import java.time.ZonedDateTime;
@@ -49,7 +49,7 @@ public class Issue528Test {
         Assertions.assertEquals(cron.asString(), mapped.asString());
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testCronMapperRebootNotSupportedOnTarget() {
         Cron cron = new CronParser(REBOOT_CRON_DEFINITION).parse("@reboot");
         CronDefinition unix = CronDefinitionBuilder.defineCron()
@@ -59,6 +59,7 @@ public class Issue528Test {
                 .withMonth().withValidRange(1, 12).withStrictRange().and()
                 .withDayOfWeek().withValidRange(0, 7).withMondayDoWValue(1).withIntMapping(7, 0).withStrictRange().and()
                 .instance();
-        Assertions.assertThrows(IllegalArgumentException.class, () -> CronMapper.sameCron(unix).map(cron));
+        Cron mapped = CronMapper.sameCron(unix).map(cron);
+        Assertions.assertEquals(cron.asString(), mapped.asString());
     }
 }
diff --git a/src/test/java/com/cronutils/Issue55UnexpectedExecutionTimes.java b/src/test/java/com/cronutils/Issue55UnexpectedExecutionTimes.java
index ba4efb8..a938594 100755
--- a/src/test/java/com/cronutils/Issue55UnexpectedExecutionTimes.java
+++ b/src/test/java/com/cronutils/Issue55UnexpectedExecutionTimes.java
@@ -21,8 +21,8 @@ import com.cronutils.model.field.CronFieldName;
 import com.cronutils.model.field.expression.QuestionMark;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -33,7 +33,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class Issue55UnexpectedExecutionTimes {
 
@@ -43,7 +43,7 @@ public class Issue55UnexpectedExecutionTimes {
     /**
      * Setup.
      */
-    @BeforeEach
+    @Before
     public void setUp() {
         cronDefinition = CronDefinitionBuilder.defineCron()
                 .withMinutes().and()
diff --git a/src/test/java/com/cronutils/Issue58UnixCronAsStringIntegrationTest.java b/src/test/java/com/cronutils/Issue58UnixCronAsStringIntegrationTest.java
index 5c6226d..1df3e7d 100755
--- a/src/test/java/com/cronutils/Issue58UnixCronAsStringIntegrationTest.java
+++ b/src/test/java/com/cronutils/Issue58UnixCronAsStringIntegrationTest.java
@@ -18,18 +18,17 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-import java.util.Arrays;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.hamcrest.core.AnyOf.anyOf;
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
 
 public class Issue58UnixCronAsStringIntegrationTest {
     private CronParser cronParser;
 
-    @BeforeEach
+    @Before
     public void setup() {
         final CronDefinition cronDefinition = CronDefinitionBuilder.instanceDefinitionFor(CronType.UNIX);
         cronParser = new CronParser(cronDefinition);
@@ -38,24 +37,24 @@ public class Issue58UnixCronAsStringIntegrationTest {
     @Test
     public void everyEvenHourShouldBeParsedCorrectly() {
         final Cron cron = cronParser.parse("0 0/1 * * *");
-        assertTrue(Arrays.asList("0 0/1 * * *","0 /1 * * *","0 0 * * *").contains(cron.asString()));
+        assertThat(cron.asString(), anyOf(is("0 0/1 * * *"), is("0 /1 * * *"), is("0 0 * * *")));
     }
 
     @Test
     public void everyOddHourShouldBeParsedCorrectly() {
         final Cron cron = cronParser.parse("0 1/2 * * *");
-        assertEquals("0 1/2 * * *", cron.asString());
+        assertThat(cron.asString(), is("0 1/2 * * *"));
     }
 
     @Test
     public void everyEvenMinuteShouldBeParsedCorrectly() {
         final Cron cron = cronParser.parse("0/1 * * * *");
-        assertTrue(Arrays.asList("0/1 * * * *", "/1 * * * *", "0 * * * *").contains(cron.asString()));
+        assertThat(cron.asString(), anyOf(is("0/1 * * * *"), is("/1 * * * *"), is("0 * * * *")));
     }
 
     @Test
     public void everyOddMinuteShouldBeParsedCorrectly() {
         final Cron cron = cronParser.parse("1/2 * * * *");
-        assertEquals("1/2 * * * *", cron.asString());
+        assertThat(cron.asString(), is("1/2 * * * *"));
     }
 }
diff --git a/src/test/java/com/cronutils/OpenIssuesTest.java b/src/test/java/com/cronutils/OpenIssuesTest.java
index 09a86a5..15292df 100755
--- a/src/test/java/com/cronutils/OpenIssuesTest.java
+++ b/src/test/java/com/cronutils/OpenIssuesTest.java
@@ -18,7 +18,7 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
diff --git a/src/test/java/com/cronutils/converter/CronConverterTest.java b/src/test/java/com/cronutils/converter/CronConverterTest.java
index 364dc6d..d320d36 100644
--- a/src/test/java/com/cronutils/converter/CronConverterTest.java
+++ b/src/test/java/com/cronutils/converter/CronConverterTest.java
@@ -13,42 +13,50 @@
 
 package com.cronutils.converter;
 
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.Arguments;
-import org.junit.jupiter.params.provider.MethodSource;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 import java.time.ZoneId;
-import java.util.stream.Stream;
+import java.util.Arrays;
+import java.util.Collection;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.mockito.Mockito.spy;
 
+@RunWith(Parameterized.class)
 public class CronConverterTest {
+
+	private String timezone;
+	private String inputCronExpression;
+	private String expectedCronExpression;
 	private CronConverter cronConverter = spy(new CronConverter(
 			new CronToCalendarTransformer(),
 			new CalendarToCronTransformer()
 	));
 
-	public static Stream<Arguments> cronExpressions() {
-		return Stream.of(Arguments.of("Pacific/Pago_Pago", "15 * * * *", "15 * * * *"),
-				Arguments.of("Antarctica/Casey", "? * * * *", "? * * * *"),
-				Arguments.of("Antarctica/Troll", "45 * * * *", "45 * * * *"),
-				Arguments.of("Pacific/Chatham", "15 * * * *", "30 * * * *"),
-				Arguments.of("Asia/Colombo", "45 * * ? *", "15 * * ? *"),
-				Arguments.of("Asia/Colombo", "0/45 * * ? *", "0/45 * * ? *"),
-				Arguments.of("Australia/Eucla", "13 * * ? *", "28 * * ? *"),
-				Arguments.of("America/St_Johns", "0 0/15 * * * ?", "30 0/15 * * * ?"),
-				Arguments.of("America/St_Johns", "0 8 * * ?", "30 10 * * ?"),
-				Arguments.of("America/St_Johns", "0 0/1 * * ?", "30 0/1 * * ?"),
-				Arguments.of("America/St_Johns", "20 0 * * ?", "50 2 * * ?"),
-				Arguments.of("Asia/Kolkata", "20 0 * * ?", "50 18 * * ?")
-		);
+	public CronConverterTest(String timezone, String inputCronExpression, String expectedCronExpression) {
+		this.timezone = timezone;
+		this.inputCronExpression = inputCronExpression;
+		this.expectedCronExpression = expectedCronExpression;
+	}
+
+	@Parameterized.Parameters
+	public static Collection cronExpressions() {
+		return Arrays.asList(new Object[][] { { "Pacific/Pago_Pago", "15 * * * *", "15 * * * *" },
+				{ "Antarctica/Casey", "? * * * *", "? * * * *" }, { "Antarctica/Troll", "45 * * * *", "45 * * * *" },
+				{ "Pacific/Chatham", "15 * * * *", "30 * * * *" }, { "Asia/Colombo", "45 * * ? *", "15 * * ? *" },
+				{ "Asia/Colombo", "0/45 * * ? *", "0/45 * * ? *" }, { "Australia/Eucla", "13 * * ? *", "28 * * ? *" },
+				{ "America/St_Johns", "0 0/15 * * * ?", "30 0/15 * * * ?" },
+				{ "America/St_Johns", "0 8 * * ?", "30 10 * * ?" },
+				{ "America/St_Johns", "0 0/1 * * ?", "30 0/1 * * ?" },
+				{ "America/St_Johns", "20 0 * * ?", "50 2 * * ?" }, { "Asia/Kolkata", "20 0 * * ?", "50 18 * * ?" }, });
 	}
 
-	@ParameterizedTest
-	@MethodSource("cronExpressions")
-	public void testCronConverterBuilder(String timezone, String inputCronExpression, String expectedCronExpression) {
-		assertEquals(expectedCronExpression,
+	@Test
+	public void testCronConverterBuilder() {
+		Assert.assertEquals(expectedCronExpression,
 				cronConverter.using(inputCronExpression)
 						.from(ZoneId.of(timezone)).to(ZoneId.of("UTC"))
 						.convert());
diff --git a/src/test/java/com/cronutils/mapper/ConstantsMapperTest.java b/src/test/java/com/cronutils/mapper/ConstantsMapperTest.java
index ef08f2d..9f0a4bb 100755
--- a/src/test/java/com/cronutils/mapper/ConstantsMapperTest.java
+++ b/src/test/java/com/cronutils/mapper/ConstantsMapperTest.java
@@ -13,9 +13,9 @@
 
 package com.cronutils.mapper;
 
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class ConstantsMapperTest {
 
diff --git a/src/test/java/com/cronutils/mapper/CronMapperIntegrationTest.java b/src/test/java/com/cronutils/mapper/CronMapperIntegrationTest.java
index 825ed2c..14f74d5 100755
--- a/src/test/java/com/cronutils/mapper/CronMapperIntegrationTest.java
+++ b/src/test/java/com/cronutils/mapper/CronMapperIntegrationTest.java
@@ -16,12 +16,12 @@ package com.cronutils.mapper;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.util.Arrays;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 public class CronMapperIntegrationTest {
 
@@ -86,8 +86,8 @@ public class CronMapperIntegrationTest {
         final String expected2 = "0 * * ? * * *";
         final String mapping = CronMapper.fromUnixToQuartz().map(unixParser().parse(input)).asString();
         assertTrue(
-                Arrays.asList(expected1, expected2).contains(mapping),
-                String.format("Expected [%s] or [%s] but got [%s]", expected1, expected2, mapping)
+                String.format("Expected [%s] or [%s] but got [%s]", expected1, expected2, mapping),
+                Arrays.asList(expected1, expected2).contains(mapping)
         );
     }
 
@@ -100,7 +100,7 @@ public class CronMapperIntegrationTest {
         final String input = "0 0 * * 1";
         final String expected = "0 0 0 ? * 2 *";
         final String mapping = CronMapper.fromUnixToQuartz().map(unixParser().parse(input)).asString();
-        assertEquals(expected, mapping, String.format("Expected [%s] but got [%s]", expected, mapping));
+        assertEquals(String.format("Expected [%s] but got [%s]", expected, mapping), expected, mapping);
     }
 
     private CronParser cron4jParser() {
diff --git a/src/test/java/com/cronutils/mapper/CronMapperTest.java b/src/test/java/com/cronutils/mapper/CronMapperTest.java
index 6fc2450..dc96081 100755
--- a/src/test/java/com/cronutils/mapper/CronMapperTest.java
+++ b/src/test/java/com/cronutils/mapper/CronMapperTest.java
@@ -19,13 +19,12 @@ import com.cronutils.model.field.CronField;
 import com.cronutils.model.field.CronFieldName;
 import com.cronutils.model.field.expression.Always;
 import com.cronutils.model.field.expression.On;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
 
 public class CronMapperTest {
@@ -33,20 +32,20 @@ public class CronMapperTest {
     @Mock
     private CronField mockCronField;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         testCronFieldName = CronFieldName.SECOND;
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorSourceDefinitionNull() {
-        assertThrows(NullPointerException.class, () -> new CronMapper(mock(CronDefinition.class), null, null));
+        new CronMapper(mock(CronDefinition.class), null, null);
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorTargetDefinitionNull() {
-        assertThrows(NullPointerException.class, () -> new CronMapper(null, mock(CronDefinition.class), null));
+        new CronMapper(null, mock(CronDefinition.class), null);
     }
 
     @Test
diff --git a/src/test/java/com/cronutils/mapper/MappingOptionalFieldsTest.java b/src/test/java/com/cronutils/mapper/MappingOptionalFieldsTest.java
index 689d13b..11a96ad 100755
--- a/src/test/java/com/cronutils/mapper/MappingOptionalFieldsTest.java
+++ b/src/test/java/com/cronutils/mapper/MappingOptionalFieldsTest.java
@@ -17,9 +17,9 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class MappingOptionalFieldsTest {
 
@@ -43,7 +43,7 @@ public class MappingOptionalFieldsTest {
         final String expected = "0 9-18 * * 0-2";
         final String expression = "5 0 9-18 ? * 1-3";
         final String mapping = mapper.map(parser.parse(expression)).asString();
-        assertEquals(expected, mapping, String.format("Expected [%s] but got [%s]", expected, mapping));
+        assertEquals(String.format("Expected [%s] but got [%s]", expected, mapping), expected, mapping);
     }
 
 }
diff --git a/src/test/java/com/cronutils/mapper/WeekDayTest.java b/src/test/java/com/cronutils/mapper/WeekDayTest.java
index b8c6c94..a314300 100755
--- a/src/test/java/com/cronutils/mapper/WeekDayTest.java
+++ b/src/test/java/com/cronutils/mapper/WeekDayTest.java
@@ -13,11 +13,10 @@
 
 package com.cronutils.mapper;
 
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.Assert.assertEquals;
 
 
 public class WeekDayTest {
@@ -25,14 +24,14 @@ public class WeekDayTest {
     private static final int MONDAY_DOW_VALUE = 1;
     private static final boolean IS_FIRST_DAY_ZERO = false;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         source = new WeekDay(MONDAY_DOW_VALUE, IS_FIRST_DAY_ZERO);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testConstructorFailsIfMondayDoWNegative() {
-        assertThrows(IllegalArgumentException.class, () -> new WeekDay(-1, IS_FIRST_DAY_ZERO));
+        new WeekDay(-1, IS_FIRST_DAY_ZERO);
     }
 
     @Test
diff --git a/src/test/java/com/cronutils/model/CompositeCronTest.java b/src/test/java/com/cronutils/model/CompositeCronTest.java
index a823588..cc00c98 100644
--- a/src/test/java/com/cronutils/model/CompositeCronTest.java
+++ b/src/test/java/com/cronutils/model/CompositeCronTest.java
@@ -6,15 +6,15 @@ import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.field.CronFieldName;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.time.ZonedDateTime;
 import java.util.ArrayList;
 import java.util.List;
 
 import static java.time.ZoneOffset.UTC;
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 
 public class CompositeCronTest {
@@ -22,7 +22,7 @@ public class CompositeCronTest {
     private Cron cron1;
     private Cron cron2;
 
-    @BeforeEach
+    @Before
     public void setUp(){
         definition1 = CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ);
         CronParser parser = new CronParser(definition1);
@@ -40,33 +40,33 @@ public class CompositeCronTest {
         this.cron2 = new CompositeCron(crons2);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void weDoNotSupportCronsWithDifferentDefinitions() throws Exception {
         CronDefinition definition2 = CronDefinitionBuilder.instanceDefinitionFor(CronType.UNIX);
         CronParser parser = new CronParser(definition1);
         CronParser parser2 = new CronParser(definition2);
 
         Cron cron1 = parser.parse("0 0 0 15 8 ? 2015/2");
-        Cron cron2 = parser2.parse("0 0 1 * *");
+        Cron cron2 = parser2.parse("0 0 0 * *");
         List<Cron> crons = new ArrayList<>();
         crons.add(cron1);
         crons.add(cron2);
-        assertThrows(IllegalArgumentException.class, () -> new CompositeCron(crons));
+        new CompositeCron(crons);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void weDoNotSupportCompositeWithoutCrons() throws Exception {
-        assertThrows(IllegalArgumentException.class, () -> new CompositeCron(new ArrayList<>()));
+        new CompositeCron(new ArrayList<>());
     }
 
-    @Test
+    @Test(expected = UnsupportedOperationException.class)
     public void retrieve() throws Exception {
-        assertThrows(UnsupportedOperationException.class, () -> cron1.retrieve(CronFieldName.DAY_OF_WEEK));
+        cron1.retrieve(CronFieldName.DAY_OF_WEEK);
     }
 
-    @Test
+    @Test(expected = UnsupportedOperationException.class)
     public void retrieveFieldsAsMap() throws Exception {
-        assertThrows(UnsupportedOperationException.class, () -> cron1.retrieveFieldsAsMap());
+        cron1.retrieveFieldsAsMap();
     }
 
     @Test
@@ -84,14 +84,14 @@ public class CompositeCronTest {
         cron1.validate();
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void validateThrowsExceptionEmptyCrons(){
-        assertThrows(IllegalArgumentException.class, () -> new CompositeCron(new ArrayList<>()));
+        new CompositeCron(new ArrayList<>());
     }
 
-    @Test
+    @Test(expected = UnsupportedOperationException.class)
     public void equivalent() throws Exception {
-        assertThrows(UnsupportedOperationException.class, () -> cron1.equivalent(CronMapper.fromQuartzToCron4j(), mock(Cron.class)));
+        cron1.equivalent(CronMapper.fromQuartzToCron4j(), mock(Cron.class));
     }
 
     @Test
@@ -140,4 +140,4 @@ public class CompositeCronTest {
         Cron cron = parser.parse(multicron);
         assertEquals(multicron.replaceAll("MON", "2"), cron.asString());
     }
-}
+}
\ No newline at end of file
diff --git a/src/test/java/com/cronutils/model/CronTest.java b/src/test/java/com/cronutils/model/CronTest.java
index 936d16b..de487ee 100755
--- a/src/test/java/com/cronutils/model/CronTest.java
+++ b/src/test/java/com/cronutils/model/CronTest.java
@@ -20,8 +20,8 @@ import com.cronutils.model.field.CronField;
 import com.cronutils.model.field.CronFieldName;
 import com.cronutils.model.field.expression.FieldExpression;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
@@ -29,7 +29,7 @@ import java.io.*;
 import java.util.Collections;
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -40,7 +40,7 @@ public class CronTest {
     @Mock
     private CronField mockField;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         testName = CronFieldName.SECOND;
@@ -49,14 +49,14 @@ public class CronTest {
         cron = new SingleCron(mock(CronDefinition.class), fields);
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorNullFieldsParameter() {
-        assertThrows(NullPointerException.class, () -> new SingleCron(mock(CronDefinition.class), null));
+        new SingleCron(mock(CronDefinition.class), null);
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorNullDefinitionParameter() {
-        assertThrows(NullPointerException.class, () -> new SingleCron(null, fields));
+        new SingleCron(null, fields);
     }
 
     @Test
@@ -64,9 +64,9 @@ public class CronTest {
         assertEquals(mockField, cron.retrieve(testName));
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testRetrieveNullParameter() {
-        assertThrows(NullPointerException.class, () -> cron.retrieve(null));
+        cron.retrieve(null);
     }
 
     @Test
diff --git a/src/test/java/com/cronutils/model/ExecutionDatesTest.java b/src/test/java/com/cronutils/model/ExecutionDatesTest.java
index 3c3f8cf..9f4d1cd 100644
--- a/src/test/java/com/cronutils/model/ExecutionDatesTest.java
+++ b/src/test/java/com/cronutils/model/ExecutionDatesTest.java
@@ -3,8 +3,8 @@ package com.cronutils.model;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
@@ -16,7 +16,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 public class ExecutionDatesTest {
     private CronParser cron4jCronParser;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         cron4jCronParser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.CRON4J));
     }
diff --git a/src/test/java/com/cronutils/model/definition/CronDefinitionBuilderTest.java b/src/test/java/com/cronutils/model/definition/CronDefinitionBuilderTest.java
index 10cc67a..a208997 100755
--- a/src/test/java/com/cronutils/model/definition/CronDefinitionBuilderTest.java
+++ b/src/test/java/com/cronutils/model/definition/CronDefinitionBuilderTest.java
@@ -22,22 +22,21 @@ import com.cronutils.model.field.definition.FieldDefinition;
 import com.cronutils.model.field.expression.Weekdays;
 import com.cronutils.model.field.value.SpecialChar;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.Collections;
 import java.util.Set;
 
 import static com.cronutils.model.field.expression.FieldExpressionFactory.*;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 
 public class CronDefinitionBuilderTest {
 
     private CronDefinitionBuilder builder;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         builder = CronDefinitionBuilder.defineCron();
     }
@@ -142,27 +141,28 @@ public class CronDefinitionBuilderTest {
         assertNotNull(CronDefinitionBuilder.instanceDefinitionFor(CronType.CRON4J));
     }
 
-    @Test
+    @Test(expected = RuntimeException.class)
     public void testInstanceDefinitionForUnknownValue() {
-        assertThrows(RuntimeException.class, () -> assertNotNull(CronDefinitionBuilder.instanceDefinitionFor(null)));
+        assertNotNull(CronDefinitionBuilder.instanceDefinitionFor(null));
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testCronDefinitionShouldNotAcceptQuestionmark() {
         final CronDefinition cronDefinition = CronDefinitionBuilder.instanceDefinitionFor(CronType.UNIX);
         final CronParser parser = new CronParser(cronDefinition);
-        assertThrows(IllegalArgumentException.class, () -> parser.parse("* * * * ?"));
+        final Cron quartzCron = parser.parse("* * * * ?");
+        quartzCron.validate();
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testCronDefinitionShouldNotAcceptMultipleOptionalFields() {
-        assertThrows(IllegalArgumentException.class, () -> CronDefinitionBuilder.defineCron()
+        CronDefinitionBuilder.defineCron()
                 .withMinutes().and()
                 .withHours().and()
                 .withDayOfMonth().optional().and()
                 .withMonth().optional().and()
                 .withDayOfWeek().withValidRange(0, 7).withMondayDoWValue(1).withIntMapping(7, 0).and()
-                .instance());
+                .instance();
     }
 
     /**
diff --git a/src/test/java/com/cronutils/model/definition/CronDefinitionIssue25IntegrationTest.java b/src/test/java/com/cronutils/model/definition/CronDefinitionIssue25IntegrationTest.java
index d3b1537..a2f2a8b 100755
--- a/src/test/java/com/cronutils/model/definition/CronDefinitionIssue25IntegrationTest.java
+++ b/src/test/java/com/cronutils/model/definition/CronDefinitionIssue25IntegrationTest.java
@@ -17,16 +17,16 @@ import com.cronutils.model.Cron;
 import com.cronutils.model.field.CronFieldName;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class CronDefinitionIssue25IntegrationTest {
     private CronDefinition cronDefinition;
     static final String CRON_EXPRESSION = "0 18 1";
 
-    @BeforeEach
+    @Before
     public void setUp() {
         cronDefinition =
                 CronDefinitionBuilder.defineCron()
diff --git a/src/test/java/com/cronutils/model/definition/CronDefinitionTest.java b/src/test/java/com/cronutils/model/definition/CronDefinitionTest.java
index 37c796a..5ba1942 100755
--- a/src/test/java/com/cronutils/model/definition/CronDefinitionTest.java
+++ b/src/test/java/com/cronutils/model/definition/CronDefinitionTest.java
@@ -13,15 +13,13 @@
 
 package com.cronutils.model.definition;
 
-import com.cronutils.model.CronType;
 import com.cronutils.model.field.CronFieldName;
-import com.cronutils.model.field.constraint.FieldConstraintsBuilder;
 import com.cronutils.model.field.definition.FieldDefinition;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.Arguments;
-import org.junit.jupiter.params.provider.MethodSource;
+import junitparams.JUnitParamsRunner;
+import junitparams.Parameters;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
@@ -29,12 +27,11 @@ import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import java.util.function.UnaryOperator;
-import java.util.stream.Stream;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.when;
 
+@RunWith(JUnitParamsRunner.class)
 public class CronDefinitionTest {
 
     private boolean matchDayOfWeekAndDayOfMonth;
@@ -45,7 +42,7 @@ public class CronDefinitionTest {
     @Mock
     private FieldDefinition mockFieldDefinition3optional;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         final CronFieldName testFieldName1 = CronFieldName.SECOND;
         final CronFieldName testFieldName2 = CronFieldName.MINUTE;
@@ -59,24 +56,24 @@ public class CronDefinitionTest {
         matchDayOfWeekAndDayOfMonth = false;
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorNullFieldsParameter() {
-        assertThrows(NullPointerException.class, () -> new CronDefinition(null, new HashSet<>(), new HashSet<>(), matchDayOfWeekAndDayOfMonth));
+        new CronDefinition(null, new HashSet<>(), new HashSet<>(), matchDayOfWeekAndDayOfMonth);
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorNullConstraintsParameter() {
-        assertThrows(NullPointerException.class, () -> new CronDefinition(new ArrayList<>(), null, new HashSet<>(), matchDayOfWeekAndDayOfMonth));
+        new CronDefinition(new ArrayList<>(), null, new HashSet<>(), matchDayOfWeekAndDayOfMonth);
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorNullCronNicknamesParameter() {
-        assertThrows(NullPointerException.class, () -> new CronDefinition(new ArrayList<>(), new HashSet<>(), null, matchDayOfWeekAndDayOfMonth));
+        new CronDefinition(new ArrayList<>(), new HashSet<>(), null, matchDayOfWeekAndDayOfMonth);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testConstructorEmptyFieldsParameter() {
-        assertThrows(IllegalArgumentException.class, () -> new CronDefinition(new ArrayList<>(), new HashSet<>(), new HashSet<>(), matchDayOfWeekAndDayOfMonth));
+        new CronDefinition(new ArrayList<>(), new HashSet<>(), new HashSet<>(), matchDayOfWeekAndDayOfMonth);
     }
 
     @Test
@@ -102,11 +99,11 @@ public class CronDefinitionTest {
         return definitions;
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testLastFieldOptionalNotAllowedOnSingleFieldDefinition() {
         final List<FieldDefinition> fields = new ArrayList<>();
         fields.add(mockFieldDefinition3optional);
-        assertThrows(IllegalArgumentException.class, () -> new CronDefinition(fields, new HashSet<>(), new HashSet<>(), matchDayOfWeekAndDayOfMonth));
+        new CronDefinition(fields, new HashSet<>(), new HashSet<>(), matchDayOfWeekAndDayOfMonth);
     }
 
     @Test
@@ -119,15 +116,8 @@ public class CronDefinitionTest {
     }
 
     @Test
-    public void simpleEqualityTest() {
-        assertEquals(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ), CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ));
-    }
-
-    @ParameterizedTest
-    @MethodSource("parametersToTestIfEqual")
+    @Parameters(method = "parametersToTestIfEqual")
     public void testIfDefinitionsAreEqual(
-        List<FieldDefinition> fieldDefinitionsOne,
-        List<FieldDefinition> fieldDefinitionsTwo,
         Set<CronConstraint> cronConstraintsOne,
         Set<CronConstraint> cronConstraintsTwo,
         Set<CronNicknames> cronNicknamesOne,
@@ -137,12 +127,12 @@ public class CronDefinitionTest {
         boolean shouldBeEqual) {
         // given
         CronDefinition definitionOne = new CronDefinition(
-            fieldDefinitionsOne,
+            provideFieldDefinitionListWithSingleDefinition(),
             cronConstraintsOne,
             cronNicknamesOne,
             shouldMatchDayOfWeekAndDayOfMonthOne);
         CronDefinition definitionTwo = new CronDefinition(
-            fieldDefinitionsTwo,
+            provideFieldDefinitionListWithSingleDefinition(),
             cronConstraintsTwo,
             cronNicknamesTwo,
             shouldMatchDayOfWeekAndDayOfMonthTwo);
@@ -159,11 +149,9 @@ public class CronDefinitionTest {
     }
 
     @SuppressWarnings("unused")
-    private static Stream<Arguments> parametersToTestIfEqual() {
-        return Stream.of(
-            Arguments.of(
-                provideSimpleFieldDefinitions(),
-                provideSimpleFieldDefinitions(),
+    private Object[] parametersToTestIfEqual() {
+        return new Object[] {
+            new Object[] {
                 provideCronConstraintSetWithTwoConstraints(),
                 provideCronConstraintSetWithTwoConstraints(),
                 provideCronNicknameSetWithTwoNicknames(),
@@ -171,21 +159,8 @@ public class CronDefinitionTest {
                 true,
                 true,
                 true
-            ),
-            Arguments.of(
-                provideFieldDefinitions(CronFieldName.SECOND, b -> b.withValidRange(0, 59)),
-                provideFieldDefinitions(CronFieldName.SECOND, b -> b.withValidRange(1, 60)),
-                provideCronConstraintSetWithTwoConstraints(),
-                provideCronConstraintSetWithTwoConstraints(),
-                provideCronNicknameSetWithTwoNicknames(),
-                provideCronNicknameSetWithTwoNicknames(),
-                true,
-                true,
-                false
-            ),
-            Arguments.of(
-                provideSimpleFieldDefinitions(),
-                provideSimpleFieldDefinitions(),
+            },
+            new Object[] {
                 provideCronConstraintSetWithOneConstraint(),
                 provideCronConstraintSetWithTwoConstraints(),
                 provideCronNicknameSetWithTwoNicknames(),
@@ -193,10 +168,8 @@ public class CronDefinitionTest {
                 true,
                 true,
                 false
-            ),
-            Arguments.of(
-                provideSimpleFieldDefinitions(),
-                provideSimpleFieldDefinitions(),
+            },
+            new Object[] {
                 provideCronConstraintSetWithTwoConstraints(),
                 provideCronConstraintSetWithTwoConstraints(),
                 provideCronNicknameSetWithOneNickname(),
@@ -204,10 +177,8 @@ public class CronDefinitionTest {
                 true,
                 true,
                 false
-            ),
-            Arguments.of(
-                provideSimpleFieldDefinitions(),
-                provideSimpleFieldDefinitions(),
+            },
+            new Object[] {
                 provideCronConstraintSetWithTwoConstraints(),
                 provideCronConstraintSetWithTwoConstraints(),
                 provideCronNicknameSetWithTwoNicknames(),
@@ -215,10 +186,8 @@ public class CronDefinitionTest {
                 false,
                 true,
                 false
-            ),
-            Arguments.of(
-                provideSimpleFieldDefinitions(),
-                provideSimpleFieldDefinitions(),
+            },
+            new Object[] {
                 provideCronConstraintSetWithTwoConstraints(),
                 provideCronConstraintSetWithOneConstraint(),
                 provideCronNicknameSetWithTwoNicknames(),
@@ -226,41 +195,29 @@ public class CronDefinitionTest {
                 false,
                 true,
                 false
-            )
-        );
-    }
-
-    private static List<FieldDefinition> provideFieldDefinitions(CronFieldName cronFieldName, UnaryOperator<FieldConstraintsBuilder> configurator) {
-        List<FieldDefinition> defs = new ArrayList<>();
-        defs.add(new FieldDefinition(cronFieldName, configurator.apply(
-                FieldConstraintsBuilder.instance().forField(cronFieldName)).createConstraintsInstance()));
-
-        return defs;
-    }
-
-    private static List<FieldDefinition> provideSimpleFieldDefinitions() {
-        return provideFieldDefinitions(CronFieldName.SECOND, b -> b);
+            }
+        };
     }
 
-    private static Set<CronNicknames> provideCronNicknameSetWithTwoNicknames() {
+    private Set<CronNicknames> provideCronNicknameSetWithTwoNicknames() {
         Set<CronNicknames> constraints = provideCronNicknameSetWithOneNickname();
         constraints.add(CronNicknames.DAILY);
         return constraints;
     }
 
-    private static Set<CronNicknames> provideCronNicknameSetWithOneNickname() {
+    private Set<CronNicknames> provideCronNicknameSetWithOneNickname() {
         Set<CronNicknames> constraints = new HashSet<>();
         constraints.add(CronNicknames.ANNUALLY);
         return constraints;
     }
 
-    private static Set<CronConstraint> provideCronConstraintSetWithTwoConstraints() {
+    private Set<CronConstraint> provideCronConstraintSetWithTwoConstraints() {
         Set<CronConstraint> constraints = provideCronConstraintSetWithOneConstraint();
         constraints.add(CronConstraintsFactory.ensureEitherDayOfYearOrMonth());
         return constraints;
     }
 
-    private static Set<CronConstraint> provideCronConstraintSetWithOneConstraint() {
+    private Set<CronConstraint> provideCronConstraintSetWithOneConstraint() {
         Set<CronConstraint> constraints = new HashSet<>();
         constraints.add(CronConstraintsFactory.ensureEitherDayOfWeekOrDayOfMonth());
         return constraints;
diff --git a/src/test/java/com/cronutils/model/definition/FieldDefinitionTest.java b/src/test/java/com/cronutils/model/definition/FieldDefinitionTest.java
index cff8051..3feb9a5 100755
--- a/src/test/java/com/cronutils/model/definition/FieldDefinitionTest.java
+++ b/src/test/java/com/cronutils/model/definition/FieldDefinitionTest.java
@@ -16,12 +16,12 @@ package com.cronutils.model.definition;
 import com.cronutils.model.field.CronFieldName;
 import com.cronutils.model.field.constraint.FieldConstraints;
 import com.cronutils.model.field.definition.FieldDefinition;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 
 public class FieldDefinitionTest {
@@ -32,21 +32,21 @@ public class FieldDefinitionTest {
 
     private FieldDefinition fieldDefinition;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         testFieldName = CronFieldName.SECOND;
         fieldDefinition = new FieldDefinition(testFieldName, mockConstraints);
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorNullFieldName() {
-        assertThrows(NullPointerException.class, () -> new FieldDefinition(null, mockConstraints));
+        new FieldDefinition(null, mockConstraints);
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorNullConstraints() {
-        assertThrows(NullPointerException.class, () -> new FieldDefinition(testFieldName, null));
+        new FieldDefinition(testFieldName, null);
     }
 
     @Test
diff --git a/src/test/java/com/cronutils/model/definition/Issue343Test.java b/src/test/java/com/cronutils/model/definition/Issue343Test.java
index cafe6cb..c05c449 100644
--- a/src/test/java/com/cronutils/model/definition/Issue343Test.java
+++ b/src/test/java/com/cronutils/model/definition/Issue343Test.java
@@ -3,30 +3,43 @@ package com.cronutils.model.definition;
 import com.cronutils.model.Cron;
 import com.cronutils.model.CronType;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.ValueSource;
-
-import static org.junit.jupiter.api.Assertions.*;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
+@RunWith(Parameterized.class)
 public class Issue343Test {
-    @ParameterizedTest
-    @ValueSource(strings = {
-        "0 0 * * * *",
-        "*/10 * * * * *",
-        "0 0 8-10 * * *",
-        "0 0 6,19 * * *",
-        "0 0/30 8-10 * * *",
-        "0 0 9-17 * * MON-FRI",
-        "0 0 0 25 12 ?"
-    })
-    public void testSpringCronExpressions(String expression) {
+
+    @Parameterized.Parameters(name = "{0}")
+    public static Object[] expressions() {
+        // List of expressions from https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/support/CronSequenceGenerator.html
+        return new Object[]{
+                "0 0 * * * *",
+                "*/10 * * * * *",
+                "0 0 8-10 * * *",
+                "0 0 6,19 * * *",
+                "0 0/30 8-10 * * *",
+                "0 0 9-17 * * MON-FRI",
+                "0 0 0 25 12 ?"
+        };
+    }
+
+    private final String expression;
+
+    public Issue343Test(String expression) {
+        this.expression = expression;
+    }
+
+    @Test
+    public void testSpringCronExpressions() {
         CronParser parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.SPRING));
 
         try {
             Cron parsed = parser.parse(expression);
-            assertNotNull(parsed);
+            Assert.assertNotNull(parsed);
         } catch (IllegalArgumentException e) {
-            fail("This expression should pass: " + expression);
+            Assert.fail("This expression should pass: " + expression);
         }
     }
 }
diff --git a/src/test/java/com/cronutils/model/field/CronFieldTest.java b/src/test/java/com/cronutils/model/field/CronFieldTest.java
index e09c0ae..bdce3fa 100755
--- a/src/test/java/com/cronutils/model/field/CronFieldTest.java
+++ b/src/test/java/com/cronutils/model/field/CronFieldTest.java
@@ -15,14 +15,14 @@ package com.cronutils.model.field;
 
 import com.cronutils.model.field.constraint.FieldConstraintsBuilder;
 import com.cronutils.model.field.expression.FieldExpression;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
 import java.util.Comparator;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -33,7 +33,7 @@ public class CronFieldTest {
     @Mock
     private FieldExpression mockFieldExpression;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         cronFieldName = CronFieldName.SECOND;
diff --git a/src/test/java/com/cronutils/model/field/FieldDefinitionBuilderTest.java b/src/test/java/com/cronutils/model/field/FieldDefinitionBuilderTest.java
index a71d55f..098cc4b 100755
--- a/src/test/java/com/cronutils/model/field/FieldDefinitionBuilderTest.java
+++ b/src/test/java/com/cronutils/model/field/FieldDefinitionBuilderTest.java
@@ -18,21 +18,24 @@ import com.cronutils.model.field.constraint.FieldConstraints;
 import com.cronutils.model.field.constraint.FieldConstraintsBuilder;
 import com.cronutils.model.field.definition.FieldDefinition;
 import com.cronutils.model.field.definition.FieldDefinitionBuilder;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
-import org.mockito.MockedStatic;
-import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.*;
 
-@Disabled
+@Ignore
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({ FieldConstraintsBuilder.class, FieldDefinitionBuilder.class })
 public class FieldDefinitionBuilderTest {
     private CronFieldName testFieldName;
     @Mock
@@ -42,22 +45,16 @@ public class FieldDefinitionBuilderTest {
 
     private FieldDefinitionBuilder fieldDefinitionBuilder;
 
-    private MockedStatic<FieldConstraintsBuilder> mockedFieldConstraintsBuilder;
-
-    @BeforeEach
+    @Before
     public void setUp() {
         MockitoAnnotations.openMocks(this);
         testFieldName = CronFieldName.SECOND;
 
         when(mockConstraintsBuilder.forField(any(CronFieldName.class))).thenReturn(mockConstraintsBuilder);
-        mockedFieldConstraintsBuilder = Mockito.mockStatic(FieldConstraintsBuilder.class);
-        mockedFieldConstraintsBuilder.when(FieldConstraintsBuilder::instance).thenReturn(mockConstraintsBuilder);
-        fieldDefinitionBuilder = new FieldDefinitionBuilder(mockParserBuilder, testFieldName);
-    }
+        PowerMockito.mockStatic(FieldConstraintsBuilder.class);
+        PowerMockito.when(FieldConstraintsBuilder.instance()).thenReturn(mockConstraintsBuilder);
 
-    @AfterEach
-    public void tearDown() {
-        mockedFieldConstraintsBuilder.close();
+        fieldDefinitionBuilder = new FieldDefinitionBuilder(mockParserBuilder, testFieldName);
     }
 
     @Test
@@ -83,13 +80,13 @@ public class FieldDefinitionBuilderTest {
         verify(mockConstraintsBuilder).createConstraintsInstance();
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorNullParserBuilder() {
-        assertThrows(NullPointerException.class, () -> new FieldDefinitionBuilder(null, testFieldName));
+        new FieldDefinitionBuilder(null, testFieldName);
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorNullTestFieldName() {
-        assertThrows(NullPointerException.class, () -> new FieldDefinitionBuilder(mockParserBuilder, null));
+        new FieldDefinitionBuilder(mockParserBuilder, null);
     }
 }
diff --git a/src/test/java/com/cronutils/model/field/FieldParserTest.java b/src/test/java/com/cronutils/model/field/FieldParserTest.java
index c7b22b6..91928b2 100755
--- a/src/test/java/com/cronutils/model/field/FieldParserTest.java
+++ b/src/test/java/com/cronutils/model/field/FieldParserTest.java
@@ -16,17 +16,16 @@ import com.cronutils.model.field.expression.*;
 import com.cronutils.model.field.value.IntegerFieldValue;
 import com.cronutils.model.field.value.SpecialChar;
 import com.cronutils.parser.FieldParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 public class FieldParserTest {
     private FieldParser parser;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         parser = new FieldParser(FieldConstraintsBuilder.instance().addHashSupport().createConstraintsInstance());
     }
@@ -60,9 +59,9 @@ public class FieldParserTest {
         assertEquals(SpecialChar.HASH, onExpression.getSpecialChar().getValue());
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testRejectHashIfFieldDoesNotClaimToSupportIt() {
-        assertThrows(IllegalArgumentException.class, () -> new FieldParser(FieldConstraintsBuilder.instance().createConstraintsInstance()).parse("5#3"));
+        new FieldParser(FieldConstraintsBuilder.instance().createConstraintsInstance()).parse("5#3");
     }
 
     @Test
@@ -96,8 +95,8 @@ public class FieldParserTest {
         assertEquals(every, (int) (expression.getPeriod()).getValue());
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testCostructorNullConstraints() {
-        assertThrows(NullPointerException.class, () -> new FieldParser(null));
+        new FieldParser(null);
     }
 }
diff --git a/src/test/java/com/cronutils/model/field/constraints/FieldConstraintsTest.java b/src/test/java/com/cronutils/model/field/constraints/FieldConstraintsTest.java
index 13ffeed..e59c281 100755
--- a/src/test/java/com/cronutils/model/field/constraints/FieldConstraintsTest.java
+++ b/src/test/java/com/cronutils/model/field/constraints/FieldConstraintsTest.java
@@ -15,15 +15,13 @@ package com.cronutils.model.field.constraints;
 
 import com.cronutils.model.field.constraint.FieldConstraints;
 import com.cronutils.model.field.value.SpecialChar;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.Collections;
 import java.util.Map;
 import java.util.Set;
 
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
 public class FieldConstraintsTest {
 
     private Map<String, Integer> stringMapping;
@@ -33,7 +31,7 @@ public class FieldConstraintsTest {
     private int endRange;
     private boolean strictRange;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         intMapping = Collections.emptyMap();
         stringMapping = Collections.emptyMap();
@@ -43,18 +41,18 @@ public class FieldConstraintsTest {
         strictRange = true;
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorStringMappingNull() {
-        assertThrows(NullPointerException.class, () -> new FieldConstraints(null, intMapping, specialCharSet, startRange, endRange, strictRange));
+        new FieldConstraints(null, intMapping, specialCharSet, startRange, endRange, strictRange);
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorIntMappingNull() {
-        assertThrows(NullPointerException.class, () -> new FieldConstraints(stringMapping, null, specialCharSet, startRange, endRange, strictRange));
+        new FieldConstraints(stringMapping, null, specialCharSet, startRange, endRange, strictRange);
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testSpecialCharsSetNull() {
-        assertThrows(NullPointerException.class, () -> new FieldConstraints(stringMapping, intMapping, null, startRange, endRange, strictRange));
+        new FieldConstraints(stringMapping, intMapping, null, startRange, endRange, strictRange);
     }
 }
diff --git a/src/test/java/com/cronutils/model/field/expression/AlwaysTest.java b/src/test/java/com/cronutils/model/field/expression/AlwaysTest.java
index 2604765..93ea5b3 100755
--- a/src/test/java/com/cronutils/model/field/expression/AlwaysTest.java
+++ b/src/test/java/com/cronutils/model/field/expression/AlwaysTest.java
@@ -13,9 +13,9 @@
 
 package com.cronutils.model.field.expression;
 
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class AlwaysTest {
 
diff --git a/src/test/java/com/cronutils/model/field/expression/AndTest.java b/src/test/java/com/cronutils/model/field/expression/AndTest.java
index 4280042..fda7667 100755
--- a/src/test/java/com/cronutils/model/field/expression/AndTest.java
+++ b/src/test/java/com/cronutils/model/field/expression/AndTest.java
@@ -13,11 +13,10 @@
 
 package com.cronutils.model.field.expression;
 
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -27,7 +26,7 @@ public class AndTest {
     private FieldExpression expression1;
     private FieldExpression expression2;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         and = new And();
         expression1 = mock(FieldExpression.class);
@@ -42,9 +41,9 @@ public class AndTest {
         assertEquals(expression2, and.getExpressions().get(1));
     }
 
-    @Test
+    @Test(expected = UnsupportedOperationException.class)
     public void testGetExpressionsImmutable() {
-        assertThrows(UnsupportedOperationException.class, () -> and.and(expression1).getExpressions().add(expression2));
+        and.and(expression1).getExpressions().add(expression2);
     }
 
     @Test
diff --git a/src/test/java/com/cronutils/model/field/expression/BetweenTest.java b/src/test/java/com/cronutils/model/field/expression/BetweenTest.java
index fd8ab92..96b2ed1 100755
--- a/src/test/java/com/cronutils/model/field/expression/BetweenTest.java
+++ b/src/test/java/com/cronutils/model/field/expression/BetweenTest.java
@@ -16,16 +16,16 @@ package com.cronutils.model.field.expression;
 import com.cronutils.model.field.value.IntegerFieldValue;
 import com.cronutils.model.field.value.SpecialChar;
 import com.cronutils.model.field.value.SpecialCharFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class BetweenTest {
     private int from;
     private int to;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         from = 1;
         to = 5;
diff --git a/src/test/java/com/cronutils/model/field/expression/EveryTest.java b/src/test/java/com/cronutils/model/field/expression/EveryTest.java
index cb3a8a4..61311fb 100755
--- a/src/test/java/com/cronutils/model/field/expression/EveryTest.java
+++ b/src/test/java/com/cronutils/model/field/expression/EveryTest.java
@@ -14,9 +14,9 @@
 package com.cronutils.model.field.expression;
 
 import com.cronutils.model.field.value.IntegerFieldValue;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class EveryTest {
     @Test
@@ -34,4 +34,4 @@ public class EveryTest {
     public void testAsString() {
         assertEquals("0/1", new Every(new On(new IntegerFieldValue(0)), new IntegerFieldValue(1)).asString());
     }
-}
+}
\ No newline at end of file
diff --git a/src/test/java/com/cronutils/model/field/expression/FieldExpressionTest.java b/src/test/java/com/cronutils/model/field/expression/FieldExpressionTest.java
index 340c7d1..9b9233f 100755
--- a/src/test/java/com/cronutils/model/field/expression/FieldExpressionTest.java
+++ b/src/test/java/com/cronutils/model/field/expression/FieldExpressionTest.java
@@ -15,16 +15,16 @@ package com.cronutils.model.field.expression;
 
 import com.cronutils.model.field.expression.visitor.*;
 
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 
 public class FieldExpressionTest {
     private TestFieldExpression testCronFieldExpression;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         testCronFieldExpression = new TestFieldExpression();
     }
diff --git a/src/test/java/com/cronutils/model/field/expression/OnTest.java b/src/test/java/com/cronutils/model/field/expression/OnTest.java
index 38a0f10..ed16721 100755
--- a/src/test/java/com/cronutils/model/field/expression/OnTest.java
+++ b/src/test/java/com/cronutils/model/field/expression/OnTest.java
@@ -16,17 +16,16 @@ package com.cronutils.model.field.expression;
 import com.cronutils.model.field.value.IntegerFieldValue;
 import com.cronutils.model.field.value.SpecialChar;
 import com.cronutils.model.field.value.SpecialCharFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.Assert.assertEquals;
 
 public class OnTest {
     private int time;
     private int nth;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         time = 5;
         nth = 3;
@@ -43,9 +42,9 @@ public class OnTest {
                 (int) new On(new IntegerFieldValue(time), new SpecialCharFieldValue(SpecialChar.HASH), new IntegerFieldValue(nth)).getNth().getValue());
     }
 
-    @Test
+    @Test(expected = RuntimeException.class)
     public void testOnlyNthFails() {
-        assertThrows(RuntimeException.class, () -> new On(null, new SpecialCharFieldValue(SpecialChar.HASH), new IntegerFieldValue(nth)));
+        new On(null, new SpecialCharFieldValue(SpecialChar.HASH), new IntegerFieldValue(nth));
     }
 
     @Test
diff --git a/src/test/java/com/cronutils/model/field/expression/visitor/ValidationFieldExpressionVisitorTest.java b/src/test/java/com/cronutils/model/field/expression/visitor/ValidationFieldExpressionVisitorTest.java
index b6eb80e..c2e210a 100755
--- a/src/test/java/com/cronutils/model/field/expression/visitor/ValidationFieldExpressionVisitorTest.java
+++ b/src/test/java/com/cronutils/model/field/expression/visitor/ValidationFieldExpressionVisitorTest.java
@@ -7,15 +7,16 @@ import com.cronutils.model.field.value.IntegerFieldValue;
 import com.cronutils.model.field.value.SpecialChar;
 import com.cronutils.model.field.value.SpecialCharFieldValue;
 import com.cronutils.utils.StringUtils;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 
 import java.util.Collections;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
+import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.*;
 
 public class ValidationFieldExpressionVisitorTest {
@@ -40,7 +41,7 @@ public class ValidationFieldExpressionVisitorTest {
     private ValidationFieldExpressionVisitor strictVisitor;
     private ValidationFieldExpressionVisitor visitor;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         final int startRange = 0;
@@ -54,11 +55,11 @@ public class ValidationFieldExpressionVisitorTest {
         visitor = new ValidationFieldExpressionVisitor(fieldConstraints, stringValidations);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitWithInvalidChars() {
         final ValidationFieldExpressionVisitor tempVisitor = new ValidationFieldExpressionVisitor(fieldConstraints, invalidStringValidations);
         final FieldExpression exp = FieldExpression.always();
-        assertThrows(IllegalArgumentException.class, () -> exp.accept(tempVisitor));
+        exp.accept(tempVisitor);
     }
 
     @Test
@@ -132,16 +133,16 @@ public class ValidationFieldExpressionVisitorTest {
         qm.accept(verify(strictSpy, times(1)));
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitBadExp() {
         final FieldExpression exp = new Between(new IntegerFieldValue(HIGH), new IntegerFieldValue(LOW));
-        assertThrows(IllegalArgumentException.class, () -> exp.accept(strictVisitor));
+        exp.accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitBadExp() {
         final FieldExpression exp = new Between(new IntegerFieldValue(LOWOOR), new IntegerFieldValue(HIGH));
-        assertThrows(IllegalArgumentException.class, () -> exp.accept(visitor));
+        exp.accept(visitor);
     }
 
     @Test
@@ -173,54 +174,54 @@ public class ValidationFieldExpressionVisitorTest {
         assertEquals(between, between.accept(visitor));
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitBetweenWrongSpecialChars() {
-        assertThrows(IllegalArgumentException.class, () -> new Between(new IntegerFieldValue(LOW), new SpecialCharFieldValue(SpecialChar.LW)).accept(strictVisitor));
+        new Between(new IntegerFieldValue(LOW), new SpecialCharFieldValue(SpecialChar.LW)).accept(strictVisitor);
 
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitBetweenOORangeBottom() {
-        assertThrows(IllegalArgumentException.class, () -> new Between(new IntegerFieldValue(LOWOOR), new IntegerFieldValue(HIGH)).accept(strictVisitor));
+        new Between(new IntegerFieldValue(LOWOOR), new IntegerFieldValue(HIGH)).accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitBetweenOORangeTop() {
-        assertThrows(IllegalArgumentException.class, () -> new Between(new IntegerFieldValue(LOW), new IntegerFieldValue(HIGHOOR)).accept(strictVisitor));
+        new Between(new IntegerFieldValue(LOW), new IntegerFieldValue(HIGHOOR)).accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitBetweenOORange() {
-        assertThrows(IllegalArgumentException.class, () -> new Between(new IntegerFieldValue(LOWOOR), new IntegerFieldValue(HIGHOOR)).accept(strictVisitor));
+        new Between(new IntegerFieldValue(LOWOOR), new IntegerFieldValue(HIGHOOR)).accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitBetweenOOOrder() {
-        assertThrows(IllegalArgumentException.class, () -> new Between(new IntegerFieldValue(HIGH), new IntegerFieldValue(LOW)).accept(strictVisitor));
+        new Between(new IntegerFieldValue(HIGH), new IntegerFieldValue(LOW)).accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitBetweenWrongSpecialChars() {
-        assertThrows(IllegalArgumentException.class, () -> new Between(new IntegerFieldValue(LOW), new SpecialCharFieldValue(SpecialChar.LW)).accept(visitor));
+        new Between(new IntegerFieldValue(LOW), new SpecialCharFieldValue(SpecialChar.LW)).accept(visitor);
 
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitBetweenOORangeBottom() {
-        assertThrows(IllegalArgumentException.class, () -> new Between(new IntegerFieldValue(LOWOOR), new IntegerFieldValue(HIGH)).accept(visitor));
+        new Between(new IntegerFieldValue(LOWOOR), new IntegerFieldValue(HIGH)).accept(visitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitBetweenOORangeTop() {
-        assertThrows(IllegalArgumentException.class, () -> new Between(new IntegerFieldValue(LOW), new IntegerFieldValue(HIGHOOR)).accept(visitor));
+        new Between(new IntegerFieldValue(LOW), new IntegerFieldValue(HIGHOOR)).accept(visitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitBetweenOORange() {
-        assertThrows(IllegalArgumentException.class, () -> new Between(new IntegerFieldValue(LOWOOR), new IntegerFieldValue(HIGHOOR)).accept(visitor));
+        new Between(new IntegerFieldValue(LOWOOR), new IntegerFieldValue(HIGHOOR)).accept(visitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitBetweenOOOrderStrict() {
         final int startRange = 0;
         final int endRange = 59;
@@ -228,7 +229,7 @@ public class ValidationFieldExpressionVisitorTest {
         visitor = new ValidationFieldExpressionVisitor(fieldConstraints, stringValidations);
 
         final Between between = new Between(new IntegerFieldValue(HIGH), new IntegerFieldValue(LOW));
-        assertThrows(IllegalArgumentException.class, () -> assertEquals(between, between.accept(visitor)));
+        assertEquals(between, between.accept(visitor));
     }
 
     @Test
@@ -269,62 +270,58 @@ public class ValidationFieldExpressionVisitorTest {
         on.accept(verify(strictSpy, times(1)));
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitEveryOORange() {
-        assertThrows(IllegalArgumentException.class, () -> new Every(new IntegerFieldValue(HIGHOOR)).accept(strictVisitor));
+        new Every(new IntegerFieldValue(HIGHOOR)).accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitEveryOORangeBetween() {
-        assertThrows(IllegalArgumentException.class,
-                () -> new Every(new Between(new IntegerFieldValue(LOW), new IntegerFieldValue(MIDDLE)),
-                        new IntegerFieldValue(HIGHOOR)).accept(strictVisitor));
+        new Every(new Between(new IntegerFieldValue(LOW), new IntegerFieldValue(MIDDLE)),
+                new IntegerFieldValue(HIGHOOR)).accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitEveryOORangeOn() {
-        assertThrows(IllegalArgumentException.class, () -> new Every(new On(new IntegerFieldValue(LOW)), new IntegerFieldValue(HIGHOOR)).accept(strictVisitor));
+        new Every(new On(new IntegerFieldValue(LOW)), new IntegerFieldValue(HIGHOOR)).accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitEveryOORangeBadBetween() {
-        assertThrows(IllegalArgumentException.class,
-                () -> new Every(new Between(new IntegerFieldValue(LOWOOR), new IntegerFieldValue(MIDDLE)),
-                        new IntegerFieldValue(HIGH)).accept(strictVisitor));
+        new Every(new Between(new IntegerFieldValue(LOWOOR), new IntegerFieldValue(MIDDLE)),
+                new IntegerFieldValue(HIGH)).accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitEveryOORangeBadOn() {
-        assertThrows(IllegalArgumentException.class, () -> new Every(new On(new IntegerFieldValue(HIGHOOR)), new IntegerFieldValue(HIGH)).accept(strictVisitor));
+        new Every(new On(new IntegerFieldValue(HIGHOOR)), new IntegerFieldValue(HIGH)).accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitEveryOORange() {
-        assertThrows(IllegalArgumentException.class, () -> new Every(new IntegerFieldValue(HIGHOOR)).accept(visitor));
+        new Every(new IntegerFieldValue(HIGHOOR)).accept(visitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitEveryOORangeBetween() {
-        assertThrows(IllegalArgumentException.class,
-                () -> new Every(new Between(new IntegerFieldValue(LOW), new IntegerFieldValue(MIDDLE)),
-                        new IntegerFieldValue(HIGHOOR)).accept(visitor));
+        new Every(new Between(new IntegerFieldValue(LOW), new IntegerFieldValue(MIDDLE)),
+                new IntegerFieldValue(HIGHOOR)).accept(visitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitEveryOORangeOn() {
-        assertThrows(IllegalArgumentException.class, () -> new Every(new On(new IntegerFieldValue(LOW)), new IntegerFieldValue(HIGHOOR)).accept(visitor));
+        new Every(new On(new IntegerFieldValue(LOW)), new IntegerFieldValue(HIGHOOR)).accept(visitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitEveryOORangeBadBetween() {
-        assertThrows(IllegalArgumentException.class,
-                () -> new Every(new Between(new IntegerFieldValue(LOWOOR), new IntegerFieldValue(MIDDLE)),
-                        new IntegerFieldValue(HIGH)).accept(strictVisitor));
+        new Every(new Between(new IntegerFieldValue(LOWOOR), new IntegerFieldValue(MIDDLE)),
+                new IntegerFieldValue(HIGH)).accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitEveryOORangeBadOn() {
-        assertThrows(IllegalArgumentException.class, () -> new Every(new On(new IntegerFieldValue(HIGHOOR)), new IntegerFieldValue(HIGH)).accept(strictVisitor));
+        new Every(new On(new IntegerFieldValue(HIGHOOR)), new IntegerFieldValue(HIGH)).accept(strictVisitor);
     }
 
     @Test
@@ -351,28 +348,26 @@ public class ValidationFieldExpressionVisitorTest {
         assertEquals(on, on.accept(visitor));
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitOnBadTime() {
-        assertThrows(IllegalArgumentException.class, () -> new On(new IntegerFieldValue(LOWOOR)).accept(strictVisitor));
+        new On(new IntegerFieldValue(LOWOOR)).accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitOnBadNth() {
-        assertThrows(IllegalArgumentException.class,
-                () -> new On(new IntegerFieldValue(LOW), new SpecialCharFieldValue(SpecialChar.LW),
-                        new IntegerFieldValue(HIGHOOR)).accept(strictVisitor));
+        new On(new IntegerFieldValue(LOW), new SpecialCharFieldValue(SpecialChar.LW),
+                new IntegerFieldValue(HIGHOOR)).accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitOnBadTime() {
-        assertThrows(IllegalArgumentException.class, () -> new On(new IntegerFieldValue(LOWOOR)).accept(visitor));
+        new On(new IntegerFieldValue(LOWOOR)).accept(visitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitOnBadNth() {
-        assertThrows(IllegalArgumentException.class,
-                () -> new On(new IntegerFieldValue(LOW), new SpecialCharFieldValue(SpecialChar.LW),
-                        new IntegerFieldValue(HIGHOOR)).accept(visitor));
+        new On(new IntegerFieldValue(LOW), new SpecialCharFieldValue(SpecialChar.LW),
+                new IntegerFieldValue(HIGHOOR)).accept(visitor);
     }
 
     @Test
@@ -402,24 +397,24 @@ public class ValidationFieldExpressionVisitorTest {
         assertEquals(and, and.accept(strictVisitor));
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testStrictVisitAndBadExpression() {
         final And and = new And();
         final Between b1 = new Between(new IntegerFieldValue(LOW), new IntegerFieldValue(MIDDLE));
         final Between b2 = new Between(new IntegerFieldValue(MIDDLE), new IntegerFieldValue(HIGHOOR));
         final On on = new On(new IntegerFieldValue(LOW));
         and.and(b1).and(b2).and(b2).and(on);
-        assertThrows(IllegalArgumentException.class, () -> and.accept(strictVisitor));
+        and.accept(strictVisitor);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testVisitAndBadExpression() {
         final And and = new And();
         final Between b1 = new Between(new IntegerFieldValue(LOW), new IntegerFieldValue(MIDDLE));
         final Between b2 = new Between(new IntegerFieldValue(MIDDLE), new IntegerFieldValue(HIGHOOR));
         final On on = new On(new IntegerFieldValue(LOW));
         and.and(b1).and(b2).and(b2).and(on);
-        assertThrows(IllegalArgumentException.class, () -> and.accept(visitor));
+        and.accept(visitor);
     }
 
     @Test
@@ -476,10 +471,10 @@ public class ValidationFieldExpressionVisitorTest {
         visitor.isInRange(integerValue);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testIsInRangeOORangeStrict() {
         final IntegerFieldValue integerValue = new IntegerFieldValue(HIGHOOR);
-        assertThrows(IllegalArgumentException.class, () -> strictVisitor.isInRange(integerValue));
+        strictVisitor.isInRange(integerValue);
     }
 
 }
diff --git a/src/test/java/com/cronutils/model/field/expression/visitor/ValueMappingFieldExpressionVisitorTest.java b/src/test/java/com/cronutils/model/field/expression/visitor/ValueMappingFieldExpressionVisitorTest.java
index 73d05f3..69af292 100755
--- a/src/test/java/com/cronutils/model/field/expression/visitor/ValueMappingFieldExpressionVisitorTest.java
+++ b/src/test/java/com/cronutils/model/field/expression/visitor/ValueMappingFieldExpressionVisitorTest.java
@@ -17,15 +17,15 @@ import com.cronutils.Function;
 import com.cronutils.model.field.expression.FieldExpression;
 import com.cronutils.model.field.expression.QuestionMark;
 import com.cronutils.model.field.value.FieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertTrue;
 
 public class ValueMappingFieldExpressionVisitorTest {
     private ValueMappingFieldExpressionVisitor valueMappingFieldExpressionVisitor;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         final Function<FieldValue<?>, FieldValue<?>> transform = input -> input;
         valueMappingFieldExpressionVisitor = new ValueMappingFieldExpressionVisitor(transform);
diff --git a/src/test/java/com/cronutils/model/time/ExecutionTimeCron4jIntegrationTest.java b/src/test/java/com/cronutils/model/time/ExecutionTimeCron4jIntegrationTest.java
index 5ee87f8..1dbf611 100755
--- a/src/test/java/com/cronutils/model/time/ExecutionTimeCron4jIntegrationTest.java
+++ b/src/test/java/com/cronutils/model/time/ExecutionTimeCron4jIntegrationTest.java
@@ -10,8 +10,8 @@ package com.cronutils.model.time;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -22,7 +22,7 @@ import java.time.ZonedDateTime;
 import java.util.Optional;
 import java.util.Random;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 
 public class ExecutionTimeCron4jIntegrationTest {
     private CronParser cron4jCronParser;
@@ -35,7 +35,7 @@ public class ExecutionTimeCron4jIntegrationTest {
     private static final String LOG_LAST_RUN = "LastRun = [{}]";
     private static final String LOG_NEXT_RUN = "NextRun = [{}]";
 
-    @BeforeEach
+    @Before
     public void setUp() {
         cron4jCronParser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.CRON4J));
     }
@@ -91,8 +91,8 @@ public class ExecutionTimeCron4jIntegrationTest {
                 log.info(LOG_LAST_RUN, lastRun);
                 log.info(LOG_NEXT_RUN, nextRun);
 
-                assertTrue(nextRun.getHour() % 2 == 0, String.format("Hour is %s", nextRun.getHour()));
-                assertTrue(lastRun.isBefore(nextRun), String.format("Last run is before next one: %s", lastRun.isBefore(nextRun)));
+                assertTrue(String.format("Hour is %s", nextRun.getHour()), nextRun.getHour() % 2 == 0);
+                assertTrue(String.format("Last run is before next one: %s", lastRun.isBefore(nextRun)), lastRun.isBefore(nextRun));
                 lastRun = lastRun.plusHours(1);
             } else {
                 fail(NEXT_EXECUTION_NOT_PRESENT_ERROR);
@@ -115,8 +115,8 @@ public class ExecutionTimeCron4jIntegrationTest {
                 log.info(LOG_LAST_RUN, lastRun);
                 log.info(LOG_NEXT_RUN, nextRun);
 
-                assertTrue(nextRun.getHour() % 2 == 0, String.format("Hour is %s", nextRun.getHour()));
-                assertTrue(lastRun.isBefore(nextRun), String.format("Last run is before next one: %s", lastRun.isBefore(nextRun)));
+                assertTrue(String.format("Hour is %s", nextRun.getHour()), nextRun.getHour() % 2 == 0);
+                assertTrue(String.format("Last run is before next one: %s", lastRun.isBefore(nextRun)), lastRun.isBefore(nextRun));
                 lastRun = lastRun.plusHours(1);
             } else {
                 fail(NEXT_EXECUTION_NOT_PRESENT_ERROR);
@@ -220,11 +220,11 @@ public class ExecutionTimeCron4jIntegrationTest {
             next = nextExecution.get();
             final ZonedDateTime expectedDate = ZonedDateTime.of(expectedYear, 1, 1, 9, 0, 0, 0, ZoneId.systemDefault());
             final String expectedMessage = String.format("Expected next execution time: %s, Actual next execution time: %s", expectedDate, next);
-            assertEquals(DayOfWeek.TUESDAY, next.getDayOfWeek(), expectedMessage);
-            assertEquals(1, next.getDayOfMonth(), expectedMessage);
-            assertEquals(expectedYear, next.getYear(), expectedMessage);
-            assertEquals(9, next.getHour(), expectedMessage);
-            assertEquals(expectedDate, next, expectedMessage);
+            assertEquals(expectedMessage, DayOfWeek.TUESDAY, next.getDayOfWeek());
+            assertEquals(expectedMessage, 1, next.getDayOfMonth());
+            assertEquals(expectedMessage, expectedYear, next.getYear());
+            assertEquals(expectedMessage, 9, next.getHour());
+            assertEquals(expectedMessage, expectedDate, next);
         }
     }
 
@@ -254,9 +254,9 @@ public class ExecutionTimeCron4jIntegrationTest {
             assert (nextExecution.isPresent());
             next = nextExecution.get();
             log.debug("Execution #{} date: {}", i, next);
-            assertEquals(dayOfWeek, next.getDayOfWeek(), "Incorrect day of the week");
-            assertEquals(dayOfMonth, next.getDayOfMonth(), "Incorrect day of the month");
-            assertEquals(month, next.getMonthValue(), "Incorrect month");
+            assertEquals("Incorrect day of the week", dayOfWeek, next.getDayOfWeek());
+            assertEquals("Incorrect day of the month", dayOfMonth, next.getDayOfMonth());
+            assertEquals("Incorrect month", month, next.getMonthValue());
         }
     }
 
diff --git a/src/test/java/com/cronutils/model/time/ExecutionTimeCustomDefinitionIntegrationTest.java b/src/test/java/com/cronutils/model/time/ExecutionTimeCustomDefinitionIntegrationTest.java
index cadd9cd..2321f16 100755
--- a/src/test/java/com/cronutils/model/time/ExecutionTimeCustomDefinitionIntegrationTest.java
+++ b/src/test/java/com/cronutils/model/time/ExecutionTimeCustomDefinitionIntegrationTest.java
@@ -11,14 +11,14 @@ import com.cronutils.model.Cron;
 import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.util.Optional;
 
 import static java.time.ZoneOffset.UTC;
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 
 public class ExecutionTimeCustomDefinitionIntegrationTest {
 
diff --git a/src/test/java/com/cronutils/model/time/ExecutionTimeQuartzIntegrationTest.java b/src/test/java/com/cronutils/model/time/ExecutionTimeQuartzIntegrationTest.java
index 0d7cda2..5131ec2 100755
--- a/src/test/java/com/cronutils/model/time/ExecutionTimeQuartzIntegrationTest.java
+++ b/src/test/java/com/cronutils/model/time/ExecutionTimeQuartzIntegrationTest.java
@@ -17,9 +17,10 @@ import com.cronutils.descriptor.CronDescriptor;
 import com.cronutils.model.Cron;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -34,7 +35,7 @@ import java.util.TimeZone;
 
 import static com.cronutils.model.CronType.QUARTZ;
 import static java.time.ZoneOffset.UTC;
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 
 public class ExecutionTimeQuartzIntegrationTest {
     private CronParser parser;
@@ -46,7 +47,7 @@ public class ExecutionTimeQuartzIntegrationTest {
     private static final String DURATION_NOT_PRESENT_ERROR = "duration was not present";
     private static final String ASSERTED_EXECUTION_NOT_PRESENT = "one of the asserted executions was not present";
 
-    @BeforeEach
+    @Before
     public void setUp() {
         parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(QUARTZ));
     }
@@ -323,9 +324,9 @@ public class ExecutionTimeQuartzIntegrationTest {
     /**
      * Issue #70: Illegal question mark value on cron pattern assumed valid.
      */
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testIllegalQuestionMarkValue() {
-        assertThrows(IllegalArgumentException.class, () -> ExecutionTime.forCron(parser.parse("0 0 12 1W ? *")));//s,m,H,DoM,M,DoW
+        ExecutionTime.forCron(parser.parse("0 0 12 1W ? *"));//s,m,H,DoM,M,DoW
     }
 
     /**
@@ -421,23 +422,23 @@ public class ExecutionTimeQuartzIntegrationTest {
         if (nextExecutionBeforeDst.isPresent()) {
             final ZonedDateTime executionTimeBeforeDst = nextExecutionBeforeDst.get();
             // Assert we got 3:00am
-            assertEquals(3, executionTimeBeforeDst.getHour(), "Incorrect Hour");
-            assertEquals(0, executionTimeBeforeDst.getMinute(), "Incorrect Minute");
+            assertEquals("Incorrect Hour", 3, executionTimeBeforeDst.getHour());
+            assertEquals("Incorrect Minute", 0, executionTimeBeforeDst.getMinute());
 
             final Optional<ZonedDateTime> nextExecutionAfterDst = executionTime.nextExecution(executionTimeBeforeDst.plusMinutes(1));
             if (nextExecutionAfterDst.isPresent()) {
                 // SIMULATE SCHEDULE POST DST - simulate a schedule after DST 3:01 with the same cron, expect 3:02
                 final ZonedDateTime executionTimeAfterDst = nextExecutionAfterDst.get();
-                assertEquals(3, executionTimeAfterDst.getHour(), "Incorrect Hour");
-                assertEquals(2, executionTimeAfterDst.getMinute(), "Incorrect Minute");
+                assertEquals("Incorrect Hour", 3, executionTimeAfterDst.getHour());
+                assertEquals("Incorrect Minute", 2, executionTimeAfterDst.getMinute());
 
                 // SIMULATE SCHEDULE NEXT DAY DST - verify after midnight on DST switch things still work as expected
                 final ZonedDateTime oneDayAfterDst = ZonedDateTime.parse("2016-03-14T00:00:59Z");
                 final Optional<ZonedDateTime> nextExecutionOneDayAfterDst = executionTime.nextExecution(oneDayAfterDst);
                 if (nextExecutionOneDayAfterDst.isPresent()) {
                     final ZonedDateTime executionTimeOneDayAfterDst = nextExecutionOneDayAfterDst.get();
-                    assertEquals(executionTimeOneDayAfterDst.getHour(), 0, "incorrect hour");
-                    assertEquals(executionTimeOneDayAfterDst.getMinute(), 2, "incorrect minute");
+                    assertEquals("incorrect hour", executionTimeOneDayAfterDst.getHour(), 0);
+                    assertEquals("incorrect minute", executionTimeOneDayAfterDst.getMinute(), 2);
                     return;
                 }
             }
@@ -489,7 +490,7 @@ public class ExecutionTimeQuartzIntegrationTest {
         final Optional<ZonedDateTime> nextExecution = executionTime.nextExecution(dt);
         if (nextExecution.isPresent()) {
             final ZonedDateTime nextRun = nextExecution.get();
-            assertEquals(nextRun.getDayOfMonth(), 1, "incorrect Day"); // should be April 1st (Friday)
+            assertEquals("incorrect Day", nextRun.getDayOfMonth(), 1); // should be April 1st (Friday)
         } else {
             fail(NEXT_EXECUTION_NOT_PRESENT_ERROR);
         }
@@ -504,7 +505,8 @@ public class ExecutionTimeQuartzIntegrationTest {
         final ZonedDateTime fridayMorning = ZonedDateTime.of(2016, 4, 22, 0, 0, 0, 0, UTC);
         final ExecutionTime numberExec = ExecutionTime.forCron(parser.parse("0 0 12 ? * 2,3,4,5,6 *"));
         final ExecutionTime nameExec = ExecutionTime.forCron(parser.parse("0 0 12 ? * MON,TUE,WED,THU,FRI *"));
-        assertEquals(numberExec.nextExecution(fridayMorning), nameExec.nextExecution(fridayMorning), "same generated dates");
+        assertEquals("same generated dates", numberExec.nextExecution(fridayMorning),
+                nameExec.nextExecution(fridayMorning));
     }
 
     /**
@@ -514,7 +516,7 @@ public class ExecutionTimeQuartzIntegrationTest {
     public void testMinimumInterval() {
         final Duration s1 = Duration.ofSeconds(1);
         assertEquals(getMinimumInterval("* * * * * ?"), s1);
-        assertEquals(getMinimumInterval("*   *    *  *       * ?"), s1, "Should ignore whitespace");
+        assertEquals("Should ignore whitespace", getMinimumInterval("*   *    *  *       * ?"), s1);
         assertEquals(getMinimumInterval("0/1 * * * * ?"), s1);
         assertEquals(getMinimumInterval("*/1 * * * * ?"), s1);
 
@@ -798,15 +800,15 @@ public class ExecutionTimeQuartzIntegrationTest {
     }
 
     //FIXME fix this test
-    @Disabled("bug fix pending")
+    @Ignore("bug fix pending")
     @Test //#192
     public void mustMatchLowerBoundDateMatchingCronExpressionRequirements() {
         final ZonedDateTime start = ZonedDateTime.of(2017, 01, 1, 0, 0, 0, 0, ZoneId.systemDefault());
         final ExecutionTime executionTime = ExecutionTime.forCron(parser.parse("0 0 0 1 * ?")); // every 1st of Month 1970-2099
         final ExecutionTime constraintExecutionTime = ExecutionTime.forCron(parser.parse("0 0 0 1 * ? 2017")); // every 1st of Month for 2017
-        assertEquals(executionTime.nextExecution(start.minusSeconds(1)), constraintExecutionTime.nextExecution(start.minusSeconds(1)),
-                "year constraint shouldn't have an impact on next execution");
-        assertEquals(executionTime.isMatch(start), constraintExecutionTime.isMatch(start), "year constraint shouldn't have an impact on match result");
+        assertEquals("year constraint shouldn't have an impact on next execution", executionTime.nextExecution(start.minusSeconds(1)),
+                constraintExecutionTime.nextExecution(start.minusSeconds(1)));
+        assertEquals("year constraint shouldn't have an impact on match result", executionTime.isMatch(start), constraintExecutionTime.isMatch(start));
     }
 
     /**
@@ -819,12 +821,12 @@ public class ExecutionTimeQuartzIntegrationTest {
         ExecutionTime executionTime = ExecutionTime.forCron(parser.parse("0 0 20 * * ? *"));
         ZonedDateTime time = ZonedDateTime.now();
         Optional<ZonedDateTime> lastExecution = executionTime.lastExecution(time);
-        assertTrue(lastExecution.isPresent(), "There was no last execution");
-        assertEquals(LocalTime.of(20, 0), lastExecution.get().toLocalTime(), "Last execution did not happen at 20:00 hours");
+        assertTrue("There was no last execution", lastExecution.isPresent());
+        assertEquals("Last execution did not happen at 20:00 hours", LocalTime.of(20, 0), lastExecution.get().toLocalTime());
         if (time.toLocalTime().isBefore(LocalTime.of(20, 0))) {
-            assertEquals(lastExecution.get().toLocalDate(), time.toLocalDate().minusDays(1), "The last execution should be on the previous day");
+            assertEquals("The last execution should be on the previous day", lastExecution.get().toLocalDate(), time.toLocalDate().minusDays(1));
         } else {
-            assertEquals(lastExecution.get().toLocalDate(), time.toLocalDate(), "The last execution should be on the same day");
+            assertEquals("The last execution should be on the same day", lastExecution.get().toLocalDate(), time.toLocalDate());
         }
     }
 
@@ -900,13 +902,13 @@ public class ExecutionTimeQuartzIntegrationTest {
         ZonedDateTime dateTimeBefore1970 = ZonedDateTime.of(1900, 1, 1, 0, 0, 0, 0, ZoneOffset.UTC);
         Optional<ZonedDateTime> next = execution.nextExecution(dateTimeBefore1970);
         assertTrue(next.isPresent());
-        assertEquals(ZonedDateTime.of(1970, 1, 1, 12, 0, 0, 0, ZoneOffset.UTC), next.get());
+        Assert.assertEquals(ZonedDateTime.of(1970, 1, 1, 12, 0, 0, 0, ZoneOffset.UTC), next.get());
 
         // After 2099
         ZonedDateTime dateTimeAfter2099 = ZonedDateTime.of(2150, 1, 1, 0, 0, 0, 0, ZoneOffset.UTC);
         Optional<ZonedDateTime> last = execution.lastExecution(dateTimeAfter2099);
         assertTrue(last.isPresent());
-        assertEquals(ZonedDateTime.of(2099, 12, 31, 12, 0, 0, 0, ZoneOffset.UTC), last.get());
+        Assert.assertEquals(ZonedDateTime.of(2099, 12, 31, 12, 0, 0, 0, ZoneOffset.UTC), last.get());
     }
 
     private Duration getMinimumInterval(final String quartzPattern) {
@@ -941,7 +943,7 @@ public class ExecutionTimeQuartzIntegrationTest {
             final Optional<ZonedDateTime> nextExecution = executionTime.nextExecution(lastRun);
             if (nextExecution.isPresent()) {
                 final ZonedDateTime nextRun = nextExecution.get();
-                assertEquals(expectedNextRun, nextRun, testCaseDescription);
+                assertEquals(testCaseDescription, expectedNextRun, nextRun);
             } else {
                 fail(NEXT_EXECUTION_NOT_PRESENT_ERROR);
             }
diff --git a/src/test/java/com/cronutils/model/time/ExecutionTimeQuartzWithDayOfYearExtensionIntegrationTest.java b/src/test/java/com/cronutils/model/time/ExecutionTimeQuartzWithDayOfYearExtensionIntegrationTest.java
index 945a5ba..db85dd6 100755
--- a/src/test/java/com/cronutils/model/time/ExecutionTimeQuartzWithDayOfYearExtensionIntegrationTest.java
+++ b/src/test/java/com/cronutils/model/time/ExecutionTimeQuartzWithDayOfYearExtensionIntegrationTest.java
@@ -15,16 +15,16 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.definition.TestCronDefinitionsFactory;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.util.Optional;
 
 import static java.time.ZoneOffset.UTC;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.fail;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
 
 public class ExecutionTimeQuartzWithDayOfYearExtensionIntegrationTest {
     private static final String BI_WEEKLY_STARTING_WITH_FIRST_DAY_OF_YEAR = "0 0 0 ? * ? * 1/14";
@@ -39,7 +39,7 @@ public class ExecutionTimeQuartzWithDayOfYearExtensionIntegrationTest {
     private CronParser parser;
     private CronParser quartzParser;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         parser = new CronParser(TestCronDefinitionsFactory.withDayOfYearDefinitionWhereYearAndDoYOptionals());
         quartzParser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ));
@@ -63,7 +63,7 @@ public class ExecutionTimeQuartzWithDayOfYearExtensionIntegrationTest {
             final ZonedDateTime expected = now.plusDays(14L - dayOfMostRecentPeriod);
             final Optional<ZonedDateTime> nextExecution = executionTime.nextExecution(now);
             if (nextExecution.isPresent()) {
-                assertEquals(expected, nextExecution.get(), "Wrong next time from " + now);
+                assertEquals("Wrong next time from " + now, expected, nextExecution.get());
             } else {
                 fail(NEXT_EXECUTION_NOT_PRESENT_ERROR);
             }
@@ -80,7 +80,7 @@ public class ExecutionTimeQuartzWithDayOfYearExtensionIntegrationTest {
             final ZonedDateTime expected = now.minusDays(dayOfMostRecentPeriod == 0 ? 14 : dayOfMostRecentPeriod);
             final Optional<ZonedDateTime> lastExecution = executionTime.lastExecution(now);
             if (lastExecution.isPresent()) {
-                assertEquals(expected, lastExecution.get(), "Wrong next time from " + now);
+                assertEquals("Wrong next time from " + now, expected, lastExecution.get());
             } else {
                 fail(LAST_EXECUTION_NOT_PRESENT_ERROR);
             }
diff --git a/src/test/java/com/cronutils/model/time/NearestValueTest.java b/src/test/java/com/cronutils/model/time/NearestValueTest.java
index 7886b81..24cc9aa 100755
--- a/src/test/java/com/cronutils/model/time/NearestValueTest.java
+++ b/src/test/java/com/cronutils/model/time/NearestValueTest.java
@@ -13,10 +13,10 @@
 
 package com.cronutils.model.time;
 
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class NearestValueTest {
     private int value;
@@ -24,7 +24,7 @@ public class NearestValueTest {
 
     private NearestValue nearestValue;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         value = 1;
         shifts = 1;
diff --git a/src/test/java/com/cronutils/model/time/TimeNodeTest.java b/src/test/java/com/cronutils/model/time/TimeNodeTest.java
index b1dca13..1a33c29 100755
--- a/src/test/java/com/cronutils/model/time/TimeNodeTest.java
+++ b/src/test/java/com/cronutils/model/time/TimeNodeTest.java
@@ -13,16 +13,15 @@
 
 package com.cronutils.model.time;
 
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.Assert.assertEquals;
 
 public class TimeNodeTest {
     private static final int LIST_START_VALUE = 2;
@@ -33,7 +32,7 @@ public class TimeNodeTest {
     private List<Integer> values;
     private TimeNode timeNode;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         values = new ArrayList<>();
         values.add(LIST_START_VALUE);
@@ -83,7 +82,7 @@ public class TimeNodeTest {
         final AtomicInteger shift = new AtomicInteger(0);
         final List<Integer> list = Arrays.asList(1, 2, 3, 4);
         final int value = timeNode.getValueFromList(list, index, shift);
-        assertEquals(expectedShifts, shift.get(), String.format("Shift was: %s; expected: %s", shift.get(), expectedShifts));
+        assertEquals(String.format("Shift was: %s; expected: %s", shift.get(), expectedShifts), expectedShifts, shift.get());
         assertEquals((int) list.get(list.size() + index), value);
     }
 
@@ -94,17 +93,17 @@ public class TimeNodeTest {
         final AtomicInteger shift = new AtomicInteger(0);
         final List<Integer> list = Arrays.asList(1, 2, 3, 4);
         final int value = timeNode.getValueFromList(list, index, shift);
-        assertEquals(expectedShifts, shift.get(), String.format("Shift was: %s; expected: %s", shift.get(), expectedShifts));
+        assertEquals(String.format("Shift was: %s; expected: %s", shift.get(), expectedShifts), expectedShifts, shift.get());
         assertEquals((int) list.get(index), value);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testGetValueFromListWithEmptyList() {
-        assertThrows(IllegalArgumentException.class, () -> timeNode.getValueFromList(new ArrayList<>(), 0, new AtomicInteger(0)));
+        timeNode.getValueFromList(new ArrayList<>(), 0, new AtomicInteger(0));
     }
 
     private void assertResult(final int value, final int shift, final NearestValue nearestValue) {
-        assertEquals(value, nearestValue.getValue(), String.format("Values do not match! Expected: %s Found: %s", value, nearestValue.getValue()));
-        assertEquals(shift, nearestValue.getShifts(), String.format("Shifts do not match! Expected: %s Found: %s", shift, nearestValue.getShifts()));
+        assertEquals(String.format("Values do not match! Expected: %s Found: %s", value, nearestValue.getValue()), value, nearestValue.getValue());
+        assertEquals(String.format("Shifts do not match! Expected: %s Found: %s", shift, nearestValue.getShifts()), shift, nearestValue.getShifts());
     }
 }
diff --git a/src/test/java/com/cronutils/model/time/generator/AlwaysFieldValueGeneratorTest.java b/src/test/java/com/cronutils/model/time/generator/AlwaysFieldValueGeneratorTest.java
index 811dc47..8813f08 100755
--- a/src/test/java/com/cronutils/model/time/generator/AlwaysFieldValueGeneratorTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/AlwaysFieldValueGeneratorTest.java
@@ -18,19 +18,19 @@ import com.cronutils.model.field.CronFieldName;
 import com.cronutils.model.field.constraint.FieldConstraintsBuilder;
 import com.cronutils.model.field.expression.Always;
 import com.cronutils.model.field.expression.FieldExpression;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.List;
 import java.util.Random;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 
 public class AlwaysFieldValueGeneratorTest {
     private AlwaysFieldValueGenerator fieldValueGenerator;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         fieldValueGenerator = new AlwaysFieldValueGenerator(
                 new CronField(CronFieldName.HOUR, FieldExpression.always(), FieldConstraintsBuilder.instance().createConstraintsInstance()));
@@ -71,10 +71,9 @@ public class AlwaysFieldValueGeneratorTest {
         assertFalse(fieldValueGenerator.matchesFieldExpressionClass(mock(FieldExpression.class)));
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testConstructorNotMatchesAlways() {
-        assertThrows(IllegalArgumentException.class,
-                () -> new AlwaysFieldValueGenerator(
-                        new CronField(CronFieldName.HOUR, mock(FieldExpression.class), FieldConstraintsBuilder.instance().createConstraintsInstance())));
+        new AlwaysFieldValueGenerator(
+                new CronField(CronFieldName.HOUR, mock(FieldExpression.class), FieldConstraintsBuilder.instance().createConstraintsInstance()));
     }
 }
diff --git a/src/test/java/com/cronutils/model/time/generator/AndFieldValueGeneratorTest.java b/src/test/java/com/cronutils/model/time/generator/AndFieldValueGeneratorTest.java
index b2de429..f61f2ad 100755
--- a/src/test/java/com/cronutils/model/time/generator/AndFieldValueGeneratorTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/AndFieldValueGeneratorTest.java
@@ -21,12 +21,12 @@ import com.cronutils.model.field.expression.And;
 import com.cronutils.model.field.expression.FieldExpression;
 import com.cronutils.model.field.expression.On;
 import com.cronutils.model.field.value.IntegerFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 
 public class AndFieldValueGeneratorTest {
@@ -39,7 +39,7 @@ public class AndFieldValueGeneratorTest {
 
     private static final int NOT_CONSIDERED_VALUE = 7;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         constraints = FieldConstraintsBuilder.instance().createConstraintsInstance();
         fieldValueGenerator =
@@ -54,20 +54,20 @@ public class AndFieldValueGeneratorTest {
                 );
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGenerateNextValue() throws NoSuchValueException {
         assertEquals(VALUE0, fieldValueGenerator.generateNextValue(VALUE0 - 1));
         assertEquals(VALUE1, fieldValueGenerator.generateNextValue(VALUE1 - 1));
         assertEquals(VALUE2, fieldValueGenerator.generateNextValue(VALUE2 - 1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generateNextValue(VALUE2));
+        fieldValueGenerator.generateNextValue(VALUE2);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGeneratePreviousValue() throws NoSuchValueException {
         assertEquals(VALUE2, fieldValueGenerator.generatePreviousValue(VALUE2 + 1));
         assertEquals(VALUE1, fieldValueGenerator.generatePreviousValue(VALUE1 + 1));
         assertEquals(VALUE0, fieldValueGenerator.generatePreviousValue(VALUE0 + 1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generatePreviousValue(VALUE0));
+        fieldValueGenerator.generatePreviousValue(VALUE0);
     }
 
     @Test
@@ -91,8 +91,8 @@ public class AndFieldValueGeneratorTest {
         assertFalse(fieldValueGenerator.matchesFieldExpressionClass(mock(FieldExpression.class)));
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testConstructorNotMatchesAnd() {
-        assertThrows(IllegalArgumentException.class, () -> new AndFieldValueGenerator(new CronField(CronFieldName.HOUR, mock(FieldExpression.class), constraints)));
+        new AndFieldValueGenerator(new CronField(CronFieldName.HOUR, mock(FieldExpression.class), constraints));
     }
 }
diff --git a/src/test/java/com/cronutils/model/time/generator/BetweenDayOfWeekValueGeneratorTest.java b/src/test/java/com/cronutils/model/time/generator/BetweenDayOfWeekValueGeneratorTest.java
index ce019b1..69a71a3 100755
--- a/src/test/java/com/cronutils/model/time/generator/BetweenDayOfWeekValueGeneratorTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/BetweenDayOfWeekValueGeneratorTest.java
@@ -19,11 +19,11 @@ import com.cronutils.model.field.CronFieldName;
 import com.cronutils.model.field.constraint.FieldConstraintsBuilder;
 import com.cronutils.model.field.expression.Between;
 import com.cronutils.model.field.value.IntegerFieldValue;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertTrue;
 
 public class BetweenDayOfWeekValueGeneratorTest {
 
@@ -44,7 +44,7 @@ public class BetweenDayOfWeekValueGeneratorTest {
 
     private void validateInterval(final int start, final int end, final List<Integer> values) {
         for (int j = start; j < end + 1; j++) {
-            assertTrue(values.contains(j), String.format("%s not contained in values", j));
+            assertTrue(String.format("%s not contained in values", j), values.contains(j));
         }
     }
 }
diff --git a/src/test/java/com/cronutils/model/time/generator/BetweenFieldValueGeneratorTest.java b/src/test/java/com/cronutils/model/time/generator/BetweenFieldValueGeneratorTest.java
index f3403bb..7a78023 100755
--- a/src/test/java/com/cronutils/model/time/generator/BetweenFieldValueGeneratorTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/BetweenFieldValueGeneratorTest.java
@@ -20,12 +20,12 @@ import com.cronutils.model.field.constraint.FieldConstraintsBuilder;
 import com.cronutils.model.field.expression.Between;
 import com.cronutils.model.field.expression.FieldExpression;
 import com.cronutils.model.field.value.IntegerFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 
 public class BetweenFieldValueGeneratorTest {
@@ -35,27 +35,27 @@ public class BetweenFieldValueGeneratorTest {
     private static final int TO = 2;
     private static final int OUT_OF_RANGE = 7;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         constraints = FieldConstraintsBuilder.instance().createConstraintsInstance();
         fieldValueGenerator = new BetweenFieldValueGenerator(
                 new CronField(CronFieldName.HOUR, new Between(new IntegerFieldValue(FROM), new IntegerFieldValue(TO)), constraints));
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGenerateNextValue() throws NoSuchValueException {
-        for (int j = FROM - 1; j < TO; j++) {
+        for (int j = FROM - 1; j < (TO + 1); j++) {
             assertEquals(j + 1L, fieldValueGenerator.generateNextValue(j));
         }
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generateNextValue(TO));
+        fieldValueGenerator.generateNextValue(TO);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGeneratePreviousValue() throws NoSuchValueException {
-        for (int j = TO + 1; j > FROM; j--) {
+        for (int j = TO + 1; j > (FROM - 1); j--) {
             assertEquals(j - 1L, fieldValueGenerator.generatePreviousValue(j));
         }
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generatePreviousValue(FROM));
+        fieldValueGenerator.generatePreviousValue(FROM);
     }
 
     @Test
@@ -83,8 +83,8 @@ public class BetweenFieldValueGeneratorTest {
         assertFalse(fieldValueGenerator.matchesFieldExpressionClass(mock(FieldExpression.class)));
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testConstructorNotMatchesBetween() {
-        assertThrows(IllegalArgumentException.class, () -> new BetweenFieldValueGenerator(new CronField(CronFieldName.HOUR, mock(FieldExpression.class), constraints)));
+        new BetweenFieldValueGenerator(new CronField(CronFieldName.HOUR, mock(FieldExpression.class), constraints));
     }
 }
diff --git a/src/test/java/com/cronutils/model/time/generator/EveryDayOfWeekValueGeneratorTest.java b/src/test/java/com/cronutils/model/time/generator/EveryDayOfWeekValueGeneratorTest.java
index f05ceba..4f1dec1 100644
--- a/src/test/java/com/cronutils/model/time/generator/EveryDayOfWeekValueGeneratorTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/EveryDayOfWeekValueGeneratorTest.java
@@ -22,8 +22,8 @@ import com.cronutils.model.field.expression.Between;
 import com.cronutils.model.field.expression.Every;
 import com.cronutils.model.field.expression.FieldExpression;
 import com.cronutils.model.field.value.IntegerFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.time.DayOfWeek;
 import java.time.LocalDate;
@@ -33,7 +33,7 @@ import java.util.EnumSet;
 import java.util.List;
 import java.util.Set;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 
 public class EveryDayOfWeekValueGeneratorTest {
@@ -42,7 +42,7 @@ public class EveryDayOfWeekValueGeneratorTest {
     private int month = 10;
     private Set<DayOfWeek> validDow;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         FieldConstraints constraints = FieldConstraintsBuilder.instance().createConstraintsInstance();
         // every 2 days between 1-5
diff --git a/src/test/java/com/cronutils/model/time/generator/EveryFieldValueGeneratorTest.java b/src/test/java/com/cronutils/model/time/generator/EveryFieldValueGeneratorTest.java
index 2180352..5dde051 100755
--- a/src/test/java/com/cronutils/model/time/generator/EveryFieldValueGeneratorTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/EveryFieldValueGeneratorTest.java
@@ -20,13 +20,13 @@ import com.cronutils.model.field.constraint.FieldConstraintsBuilder;
 import com.cronutils.model.field.expression.Every;
 import com.cronutils.model.field.expression.FieldExpression;
 import com.cronutils.model.field.value.IntegerFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.List;
 import java.util.Random;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 
 public class EveryFieldValueGeneratorTest {
@@ -35,7 +35,7 @@ public class EveryFieldValueGeneratorTest {
 
     private static final int TIME = 7;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         constraints = FieldConstraintsBuilder.instance().createConstraintsInstance();
         fieldValueGenerator = new EveryFieldValueGenerator(new CronField(CronFieldName.HOUR, new Every(new IntegerFieldValue(TIME)), constraints));
@@ -78,8 +78,8 @@ public class EveryFieldValueGeneratorTest {
         assertFalse(fieldValueGenerator.matchesFieldExpressionClass(mock(FieldExpression.class)));
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testConstructorNotMatchesEvery() {
-        assertThrows(IllegalArgumentException.class, () -> new EveryFieldValueGenerator(new CronField(CronFieldName.HOUR, mock(FieldExpression.class), constraints)));
+        new EveryFieldValueGenerator(new CronField(CronFieldName.HOUR, mock(FieldExpression.class), constraints));
     }
 }
diff --git a/src/test/java/com/cronutils/model/time/generator/ExecutionTimeUnixIntegrationTest.java b/src/test/java/com/cronutils/model/time/generator/ExecutionTimeUnixIntegrationTest.java
index 403629e..c34ec3e 100755
--- a/src/test/java/com/cronutils/model/time/generator/ExecutionTimeUnixIntegrationTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/ExecutionTimeUnixIntegrationTest.java
@@ -19,12 +19,12 @@ import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.time.ExecutionTime;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.*;
 import java.util.*;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 
 public class ExecutionTimeUnixIntegrationTest {
 
diff --git a/src/test/java/com/cronutils/model/time/generator/FieldValueGeneratorFactoryTest.java b/src/test/java/com/cronutils/model/time/generator/FieldValueGeneratorFactoryTest.java
index acaee54..f11ae75 100755
--- a/src/test/java/com/cronutils/model/time/generator/FieldValueGeneratorFactoryTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/FieldValueGeneratorFactoryTest.java
@@ -20,19 +20,18 @@ import com.cronutils.model.field.expression.*;
 import com.cronutils.model.field.value.IntegerFieldValue;
 import com.cronutils.model.field.value.SpecialChar;
 import com.cronutils.model.field.value.SpecialCharFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 public class FieldValueGeneratorFactoryTest {
     private CronField mockCronField;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         mockCronField = mock(CronField.class);
     }
@@ -76,7 +75,7 @@ public class FieldValueGeneratorFactoryTest {
                 } catch (final RuntimeException e) {
                     gotException = true;
                 }
-                assertTrue(gotException, "Should get exception when asking for OnValueGenerator with special char");
+                assertTrue("Should get exception when asking for OnValueGenerator with special char", gotException);
             }
         }
     }
@@ -135,14 +134,14 @@ public class FieldValueGeneratorFactoryTest {
         return FieldValueGeneratorFactory.createDayOfMonthValueGeneratorInstance(mockCronField, 2015, 1);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testCreateDayOfMonthValueGeneratorInstanceBadCronFieldName() {
         when(mockCronField.getField()).thenReturn(CronFieldName.YEAR);
         final On mockOn = mock(On.class);
         when(mockOn.getSpecialChar()).thenReturn(new SpecialCharFieldValue(SpecialChar.L));//any value except NONE
         when(mockCronField.getExpression()).thenReturn(mockOn);
 
-        assertThrows(IllegalArgumentException.class, () -> FieldValueGeneratorFactory.createDayOfMonthValueGeneratorInstance(mockCronField, 2015, 1));
+        FieldValueGeneratorFactory.createDayOfMonthValueGeneratorInstance(mockCronField, 2015, 1);
     }
 
     @Test
@@ -176,10 +175,10 @@ public class FieldValueGeneratorFactoryTest {
         );
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testCreateDayOfWeekValueGeneratorInstanceBadCronFieldName() {
         when(mockCronField.getField()).thenReturn(CronFieldName.YEAR);
         when(mockCronField.getExpression()).thenReturn(mock(On.class));
-        assertThrows(IllegalArgumentException.class, () -> FieldValueGeneratorFactory.createDayOfWeekValueGeneratorInstance(mockCronField, 2015, 1, new WeekDay(1, false)));
+        FieldValueGeneratorFactory.createDayOfWeekValueGeneratorInstance(mockCronField, 2015, 1, new WeekDay(1, false));
     }
 }
diff --git a/src/test/java/com/cronutils/model/time/generator/FieldValueGeneratorTest.java b/src/test/java/com/cronutils/model/time/generator/FieldValueGeneratorTest.java
index be0f239..aedf12d 100755
--- a/src/test/java/com/cronutils/model/time/generator/FieldValueGeneratorTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/FieldValueGeneratorTest.java
@@ -17,18 +17,18 @@ import com.cronutils.model.field.CronField;
 import com.cronutils.model.field.CronFieldName;
 import com.cronutils.model.field.constraint.FieldConstraints;
 import com.cronutils.model.field.expression.FieldExpression;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 
 public class FieldValueGeneratorTest {
     private FieldValueGenerator fieldValueGenerator;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         fieldValueGenerator = new MockFieldValueGenerator(new CronField(CronFieldName.HOUR, mock(FieldExpression.class), mock(FieldConstraints.class)));
     }
diff --git a/src/test/java/com/cronutils/model/time/generator/NullFieldValueGeneratorTest.java b/src/test/java/com/cronutils/model/time/generator/NullFieldValueGeneratorTest.java
index 96f8cd9..befd593 100755
--- a/src/test/java/com/cronutils/model/time/generator/NullFieldValueGeneratorTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/NullFieldValueGeneratorTest.java
@@ -15,32 +15,32 @@ package com.cronutils.model.time.generator;
 
 import com.cronutils.model.field.CronField;
 import com.cronutils.model.field.expression.FieldExpression;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.Random;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 
 public class NullFieldValueGeneratorTest {
     private NullFieldValueGenerator fieldValueGenerator;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         fieldValueGenerator = new NullFieldValueGenerator(mock(CronField.class));
     }
 
-    @Test
-    public void testGenerateNextValue() {
+    @Test(expected = NoSuchValueException.class)
+    public void testGenerateNextValue() throws NoSuchValueException {
         final Random random = new Random();
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generateNextValue(random.nextInt(10)));
+        fieldValueGenerator.generateNextValue(random.nextInt(10));
     }
 
-    @Test
-    public void testGeneratePreviousValue() {
+    @Test(expected = NoSuchValueException.class)
+    public void testGeneratePreviousValue() throws NoSuchValueException {
         final Random random = new Random();
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generatePreviousValue(random.nextInt(10)));
+        fieldValueGenerator.generatePreviousValue(random.nextInt(10));
     }
 
     @Test
diff --git a/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorLTest.java b/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorLTest.java
index 51787b3..f846ad6 100755
--- a/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorLTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorLTest.java
@@ -20,13 +20,13 @@ import com.cronutils.model.field.constraint.FieldConstraintsBuilder;
 import com.cronutils.model.field.expression.On;
 import com.cronutils.model.field.value.SpecialChar;
 import com.cronutils.model.field.value.SpecialCharFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.time.LocalDate;
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 
 public class OnDayOfMonthValueGeneratorLTest {
     private OnDayOfMonthValueGenerator fieldValueGenerator;
@@ -34,23 +34,23 @@ public class OnDayOfMonthValueGeneratorLTest {
     private static final int MONTH = 2;
     private final int lastDayInMonth = LocalDate.of(2015, 2, 1).lengthOfMonth();
 
-    @BeforeEach
+    @Before
     public void setUp() {
         final FieldConstraints constraints = FieldConstraintsBuilder.instance().addLSupport().createConstraintsInstance();
         fieldValueGenerator = new OnDayOfMonthValueGenerator(
                 new CronField(CronFieldName.DAY_OF_MONTH, new On(new SpecialCharFieldValue(SpecialChar.L)), constraints), YEAR, MONTH);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGenerateNextValue() throws NoSuchValueException {
         assertEquals(lastDayInMonth, fieldValueGenerator.generateNextValue(1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generateNextValue(lastDayInMonth));
+        fieldValueGenerator.generateNextValue(lastDayInMonth);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGeneratePreviousValue() throws NoSuchValueException {
         assertEquals(lastDayInMonth, fieldValueGenerator.generatePreviousValue(lastDayInMonth + 1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generatePreviousValue(lastDayInMonth));
+        fieldValueGenerator.generatePreviousValue(lastDayInMonth);
     }
 
     @Test
diff --git a/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorLWTest.java b/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorLWTest.java
index 9761a90..5e9e0b2 100755
--- a/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorLWTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorLWTest.java
@@ -20,12 +20,12 @@ import com.cronutils.model.field.constraint.FieldConstraintsBuilder;
 import com.cronutils.model.field.expression.On;
 import com.cronutils.model.field.value.SpecialChar;
 import com.cronutils.model.field.value.SpecialCharFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 
 public class OnDayOfMonthValueGeneratorLWTest {
     private FieldConstraints constraints;
@@ -43,39 +43,39 @@ public class OnDayOfMonthValueGeneratorLWTest {
 
     private static final int OUT_OF_SCOPE_VALUE = 31;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         constraints = FieldConstraintsBuilder.instance().addLWSupport().createConstraintsInstance();
     }
 
-    @Test
-    public void testGenerateNextValueSundayValue() {
-        assertThrows(NoSuchValueException.class, () -> testGenerateNextValue(SUNDAY_VALUE_MONTH, SUNDAY_VALUE_WEEKDAY));
+    @Test(expected = NoSuchValueException.class)
+    public void testGenerateNextValueSundayValue() throws NoSuchValueException {
+        testGenerateNextValue(SUNDAY_VALUE_MONTH, SUNDAY_VALUE_WEEKDAY);
     }
 
-    @Test
-    public void testGenerateNextValueSaturdayValue() {
-        assertThrows(NoSuchValueException.class, () -> testGenerateNextValue(SATURDAY_VALUE_MONTH, SATURDAY_VALUE_WEEKDAY));
+    @Test(expected = NoSuchValueException.class)
+    public void testGenerateNextValueSaturdayValue() throws NoSuchValueException {
+        testGenerateNextValue(SATURDAY_VALUE_MONTH, SATURDAY_VALUE_WEEKDAY);
     }
 
-    @Test
-    public void testGenerateNextValueFridayValue() {
-        assertThrows(NoSuchValueException.class, () -> testGenerateNextValue(FRIDAY_VALUE_MONTH, FRIDAY_VALUE_WEEKDAY));
+    @Test(expected = NoSuchValueException.class)
+    public void testGenerateNextValueFridayValue() throws NoSuchValueException {
+        testGenerateNextValue(FRIDAY_VALUE_MONTH, FRIDAY_VALUE_WEEKDAY);
     }
 
-    @Test
-    public void testGeneratePreviousValueSundayValue() {
-        assertThrows(NoSuchValueException.class, () -> testGeneratePreviousValue(SUNDAY_VALUE_MONTH, SUNDAY_VALUE_WEEKDAY));
+    @Test(expected = NoSuchValueException.class)
+    public void testGeneratePreviousValueSundayValue() throws NoSuchValueException {
+        testGeneratePreviousValue(SUNDAY_VALUE_MONTH, SUNDAY_VALUE_WEEKDAY);
     }
 
-    @Test
-    public void testGeneratePreviousValueSaturdayValue() {
-        assertThrows(NoSuchValueException.class, () -> testGeneratePreviousValue(SATURDAY_VALUE_MONTH, SATURDAY_VALUE_WEEKDAY));
+    @Test(expected = NoSuchValueException.class)
+    public void testGeneratePreviousValueSaturdayValue() throws NoSuchValueException {
+        testGeneratePreviousValue(SATURDAY_VALUE_MONTH, SATURDAY_VALUE_WEEKDAY);
     }
 
-    @Test
-    public void testGeneratePreviousValueFridayValue() {
-        assertThrows(NoSuchValueException.class, () -> testGeneratePreviousValue(FRIDAY_VALUE_MONTH, FRIDAY_VALUE_WEEKDAY));
+    @Test(expected = NoSuchValueException.class)
+    public void testGeneratePreviousValueFridayValue() throws NoSuchValueException {
+        testGeneratePreviousValue(FRIDAY_VALUE_MONTH, FRIDAY_VALUE_WEEKDAY);
     }
 
     @Test
diff --git a/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorTest.java b/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorTest.java
index dd20a4f..3b52d7d 100755
--- a/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorTest.java
@@ -20,14 +20,13 @@ import com.cronutils.model.field.constraint.FieldConstraintsBuilder;
 import com.cronutils.model.field.expression.FieldExpression;
 import com.cronutils.model.field.expression.On;
 import com.cronutils.model.field.value.IntegerFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.Random;
 
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 
 public class OnDayOfMonthValueGeneratorTest {
@@ -37,7 +36,7 @@ public class OnDayOfMonthValueGeneratorTest {
     private static final int MONTH = 2;
     private final Random random = new Random();
 
-    @BeforeEach
+    @Before
     public void setUp() {
         constraints = FieldConstraintsBuilder.instance().createConstraintsInstance();
         fieldValueGenerator =
@@ -48,14 +47,14 @@ public class OnDayOfMonthValueGeneratorTest {
                         YEAR, MONTH);
     }
 
-    @Test
-    public void testGenerateNextValue() {
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generateNextValue(randomNumber()));
+    @Test(expected = NoSuchValueException.class)
+    public void testGenerateNextValue() throws NoSuchValueException {
+        fieldValueGenerator.generateNextValue(randomNumber());
     }
 
-    @Test
-    public void testGeneratePreviousValue() {
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generatePreviousValue(randomNumber()));
+    @Test(expected = NoSuchValueException.class)
+    public void testGeneratePreviousValue() throws NoSuchValueException {
+        fieldValueGenerator.generatePreviousValue(randomNumber());
     }
 
     @Test
@@ -64,9 +63,9 @@ public class OnDayOfMonthValueGeneratorTest {
         assertFalse(fieldValueGenerator.matchesFieldExpressionClass(mock(FieldExpression.class)));
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testConstructorNotMatchesOn() {
-        assertThrows(IllegalArgumentException.class, () -> new OnDayOfMonthValueGenerator(new CronField(CronFieldName.YEAR, mock(FieldExpression.class), constraints), YEAR, MONTH));
+        new OnDayOfMonthValueGenerator(new CronField(CronFieldName.YEAR, mock(FieldExpression.class), constraints), YEAR, MONTH);
     }
 
     private int randomNumber() {
diff --git a/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorWTest.java b/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorWTest.java
index 3a7ccad..0fcc7cd 100755
--- a/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorWTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/OnDayOfMonthValueGeneratorWTest.java
@@ -21,12 +21,12 @@ import com.cronutils.model.field.expression.On;
 import com.cronutils.model.field.value.IntegerFieldValue;
 import com.cronutils.model.field.value.SpecialChar;
 import com.cronutils.model.field.value.SpecialCharFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 
 public class OnDayOfMonthValueGeneratorWTest {
     private FieldConstraints constraints;
@@ -46,39 +46,39 @@ public class OnDayOfMonthValueGeneratorWTest {
 
     private static final int OUT_OF_SCOPE_VALUE = 18;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         constraints = FieldConstraintsBuilder.instance().addWSupport().createConstraintsInstance();
     }
 
-    @Test
-    public void testGenerateNextValueSundayValue() {
-        assertThrows(NoSuchValueException.class, () -> testGenerateNextValue(SUNDAY_VALUE_MONTH, SUNDAY_VALUE_DAY, SUNDAY_VALUE_WEEKDAY));
+    @Test(expected = NoSuchValueException.class)
+    public void testGenerateNextValueSundayValue() throws NoSuchValueException {
+        testGenerateNextValue(SUNDAY_VALUE_MONTH, SUNDAY_VALUE_DAY, SUNDAY_VALUE_WEEKDAY);
     }
 
-    @Test
-    public void testGenerateNextValueSaturdayValue() {
-        assertThrows(NoSuchValueException.class, () -> testGenerateNextValue(SATURDAY_VALUE_MONTH, SATURDAY_VALUE_DAY, SATURDAY_VALUE_WEEKDAY));
+    @Test(expected = NoSuchValueException.class)
+    public void testGenerateNextValueSaturdayValue() throws NoSuchValueException {
+        testGenerateNextValue(SATURDAY_VALUE_MONTH, SATURDAY_VALUE_DAY, SATURDAY_VALUE_WEEKDAY);
     }
 
-    @Test
-    public void testGenerateNextValueFirstDaySaturdayValue() {
-        assertThrows(NoSuchValueException.class, () -> testGenerateNextValue(FIRST_DAY_SATURDAY_VALUE_MONTH, FIRST_DAY_SATURDAY_VALUE_DAY, FIRST_DAY_SATURDAY_VALUE_WEEKDAY));
+    @Test(expected = NoSuchValueException.class)
+    public void testGenerateNextValueFirstDaySaturdayValue() throws NoSuchValueException {
+        testGenerateNextValue(FIRST_DAY_SATURDAY_VALUE_MONTH, FIRST_DAY_SATURDAY_VALUE_DAY, FIRST_DAY_SATURDAY_VALUE_WEEKDAY);
     }
 
-    @Test
-    public void testGeneratePreviousValueSundayValue() {
-        assertThrows(NoSuchValueException.class, () -> testGeneratePreviousValue(SUNDAY_VALUE_MONTH, SUNDAY_VALUE_DAY, SUNDAY_VALUE_WEEKDAY));
+    @Test(expected = NoSuchValueException.class)
+    public void testGeneratePreviousValueSundayValue() throws NoSuchValueException {
+        testGeneratePreviousValue(SUNDAY_VALUE_MONTH, SUNDAY_VALUE_DAY, SUNDAY_VALUE_WEEKDAY);
     }
 
-    @Test
-    public void testGeneratePreviousValueSaturdayValue() {
-        assertThrows(NoSuchValueException.class, () -> testGeneratePreviousValue(SATURDAY_VALUE_MONTH, SATURDAY_VALUE_DAY, SATURDAY_VALUE_WEEKDAY));
+    @Test(expected = NoSuchValueException.class)
+    public void testGeneratePreviousValueSaturdayValue() throws NoSuchValueException {
+        testGeneratePreviousValue(SATURDAY_VALUE_MONTH, SATURDAY_VALUE_DAY, SATURDAY_VALUE_WEEKDAY);
     }
 
-    @Test
-    public void testGeneratePreviousValueFirstDaySaturdayValue() {
-        assertThrows(NoSuchValueException.class, () -> testGeneratePreviousValue(FIRST_DAY_SATURDAY_VALUE_MONTH, FIRST_DAY_SATURDAY_VALUE_DAY, FIRST_DAY_SATURDAY_VALUE_WEEKDAY));
+    @Test(expected = NoSuchValueException.class)
+    public void testGeneratePreviousValueFirstDaySaturdayValue() throws NoSuchValueException {
+        testGeneratePreviousValue(FIRST_DAY_SATURDAY_VALUE_MONTH, FIRST_DAY_SATURDAY_VALUE_DAY, FIRST_DAY_SATURDAY_VALUE_WEEKDAY);
     }
 
     @Test
diff --git a/src/test/java/com/cronutils/model/time/generator/OnDayOfWeekValueGeneratorHashTest.java b/src/test/java/com/cronutils/model/time/generator/OnDayOfWeekValueGeneratorHashTest.java
index af71d21..8eb40f3 100755
--- a/src/test/java/com/cronutils/model/time/generator/OnDayOfWeekValueGeneratorHashTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/OnDayOfWeekValueGeneratorHashTest.java
@@ -23,11 +23,11 @@ import com.cronutils.model.field.expression.On;
 import com.cronutils.model.field.value.IntegerFieldValue;
 import com.cronutils.model.field.value.SpecialChar;
 import com.cronutils.model.field.value.SpecialCharFieldValue;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 
 public class OnDayOfWeekValueGeneratorHashTest {
     FieldConstraints constraints = FieldConstraintsBuilder.instance().addHashSupport().createConstraintsInstance();
@@ -50,46 +50,46 @@ public class OnDayOfWeekValueGeneratorHashTest {
     private static final int FIRST_DAY_DOW_EQUALTO_REQUESTED_DOW_HASHVALUE = 3;
     private static final int FIRST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY = 15;//3rd Sunday of month (1#3) is 15
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGenerateNextValueLastDayDoWGreaterThanRequestedDoW() throws NoSuchValueException {
         fieldValueGenerator = createFieldValueGeneratorInstanceFirstDayDoWGreaterThanRequestedDoW();
         assertEquals(FIRST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY, fieldValueGenerator.generateNextValue(1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generateNextValue(FIRST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY));
+        fieldValueGenerator.generateNextValue(FIRST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGenerateNextValueLastDayDoWLessThanRequestedDoW() throws NoSuchValueException {
         fieldValueGenerator = createFieldValueGeneratorInstanceLastDayDoWLessThanRequestedDoW();
         assertEquals(FIRST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY, fieldValueGenerator.generateNextValue(1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generateNextValue(FIRST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY));
+        fieldValueGenerator.generateNextValue(FIRST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGenerateNextValueLastDayDoWEqualToRequestedDoW() throws NoSuchValueException {
         fieldValueGenerator = createFieldValueGeneratorInstanceLastDayDoWEqualToRequestedDoW();
         assertEquals(FIRST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY, fieldValueGenerator.generateNextValue(1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generateNextValue(FIRST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY));
+        fieldValueGenerator.generateNextValue(FIRST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGeneratePreviousValueLastDayDoWGreaterThanRequestedDoW() throws NoSuchValueException {
         fieldValueGenerator = createFieldValueGeneratorInstanceFirstDayDoWGreaterThanRequestedDoW();
         assertEquals(FIRST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY, fieldValueGenerator.generatePreviousValue(FIRST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY + 1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generatePreviousValue(FIRST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY));
+        fieldValueGenerator.generatePreviousValue(FIRST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGeneratePreviousValueLastDayDoWLessThanRequestedDoW() throws NoSuchValueException {
         fieldValueGenerator = createFieldValueGeneratorInstanceLastDayDoWLessThanRequestedDoW();
         assertEquals(FIRST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY, fieldValueGenerator.generatePreviousValue(FIRST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY + 1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generatePreviousValue(FIRST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY));
+        fieldValueGenerator.generatePreviousValue(FIRST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGeneratePreviousValueLastDayDoWEqualToRequestedDoW() throws NoSuchValueException {
         fieldValueGenerator = createFieldValueGeneratorInstanceLastDayDoWEqualToRequestedDoW();
         assertEquals(FIRST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY, fieldValueGenerator.generatePreviousValue(FIRST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY + 1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generatePreviousValue(FIRST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY));
+        fieldValueGenerator.generatePreviousValue(FIRST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY);
     }
 
     @Test
diff --git a/src/test/java/com/cronutils/model/time/generator/OnDayOfWeekValueGeneratorLTest.java b/src/test/java/com/cronutils/model/time/generator/OnDayOfWeekValueGeneratorLTest.java
index b702e08..583fe2e 100755
--- a/src/test/java/com/cronutils/model/time/generator/OnDayOfWeekValueGeneratorLTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/OnDayOfWeekValueGeneratorLTest.java
@@ -23,11 +23,11 @@ import com.cronutils.model.field.expression.On;
 import com.cronutils.model.field.value.IntegerFieldValue;
 import com.cronutils.model.field.value.SpecialChar;
 import com.cronutils.model.field.value.SpecialCharFieldValue;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 
 public class OnDayOfWeekValueGeneratorLTest {
     private final FieldConstraints constraints = FieldConstraintsBuilder.instance().addLSupport().createConstraintsInstance();
@@ -47,46 +47,46 @@ public class OnDayOfWeekValueGeneratorLTest {
     private static final int LAST_DAY_DOW_EQUALTO_REQUESTED_DOW_VALUE = 6;
     private static final int LAST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY = 31;
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGenerateNextValueLastDayDoWGreaterThanRequestedDoW() throws NoSuchValueException {
         fieldValueGenerator = createFieldValueGeneratorInstanceLastDayDoWGreaterThanRequestedDoW();
         assertEquals(LAST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY, fieldValueGenerator.generateNextValue(1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generateNextValue(LAST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY));
+        fieldValueGenerator.generateNextValue(LAST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGenerateNextValueLastDayDoWLessThanRequestedDoW() throws NoSuchValueException {
         fieldValueGenerator = createFieldValueGeneratorInstanceLastDayDoWLessThanRequestedDoW();
         assertEquals(LAST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY, fieldValueGenerator.generateNextValue(1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generateNextValue(LAST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY));
+        fieldValueGenerator.generateNextValue(LAST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGenerateNextValueLastDayDoWEqualToRequestedDoW() throws NoSuchValueException {
         fieldValueGenerator = createFieldValueGeneratorInstanceLastDayDoWEqualToRequestedDoW();
         assertEquals(LAST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY, fieldValueGenerator.generateNextValue(1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generateNextValue(LAST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY));
+        fieldValueGenerator.generateNextValue(LAST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGeneratePreviousValueLastDayDoWGreaterThanRequestedDoW() throws NoSuchValueException {
         fieldValueGenerator = createFieldValueGeneratorInstanceLastDayDoWGreaterThanRequestedDoW();
         assertEquals(LAST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY, fieldValueGenerator.generatePreviousValue(LAST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY + 1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generatePreviousValue(LAST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY));
+        fieldValueGenerator.generatePreviousValue(LAST_DAY_DOW_GREATER_THAN_REQUESTED_DOW_DAY);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGeneratePreviousValueLastDayDoWLessThanRequestedDoW() throws NoSuchValueException {
         fieldValueGenerator = createFieldValueGeneratorInstanceLastDayDoWLessThanRequestedDoW();
         assertEquals(LAST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY, fieldValueGenerator.generatePreviousValue(LAST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY + 1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generatePreviousValue(LAST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY));
+        fieldValueGenerator.generatePreviousValue(LAST_DAY_DOW_LESS_THAN_REQUESTED_DOW_DAY);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGeneratePreviousValueLastDayDoWEqualToRequestedDoW() throws NoSuchValueException {
         fieldValueGenerator = createFieldValueGeneratorInstanceLastDayDoWEqualToRequestedDoW();
         assertEquals(LAST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY, fieldValueGenerator.generatePreviousValue(LAST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY + 1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generatePreviousValue(LAST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY));
+        fieldValueGenerator.generatePreviousValue(LAST_DAY_DOW_EQUALTO_REQUESTED_DOW_DAY);
     }
 
     @Test
diff --git a/src/test/java/com/cronutils/model/time/generator/OnDayOfWeekValueGeneratorTest.java b/src/test/java/com/cronutils/model/time/generator/OnDayOfWeekValueGeneratorTest.java
index 2b74f64..5578d95 100755
--- a/src/test/java/com/cronutils/model/time/generator/OnDayOfWeekValueGeneratorTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/OnDayOfWeekValueGeneratorTest.java
@@ -21,12 +21,11 @@ import com.cronutils.model.field.constraint.FieldConstraintsBuilder;
 import com.cronutils.model.field.expression.FieldExpression;
 import com.cronutils.model.field.expression.On;
 import com.cronutils.model.field.value.IntegerFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 
 public class OnDayOfWeekValueGeneratorTest {
@@ -36,7 +35,7 @@ public class OnDayOfWeekValueGeneratorTest {
     private static final int YEAR = 2015;
     private static final int MONTH = 2;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         constraints = FieldConstraintsBuilder.instance().createConstraintsInstance();
         mondayDoWValue = new WeekDay(1, false);
@@ -50,8 +49,8 @@ public class OnDayOfWeekValueGeneratorTest {
         assertFalse(fieldValueGenerator.matchesFieldExpressionClass(mock(FieldExpression.class)));
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testConstructorNotMatchesOnDayOfWeekValueGenerator() {
-        assertThrows(IllegalArgumentException.class, () -> new OnDayOfWeekValueGenerator(new CronField(CronFieldName.YEAR, mock(FieldExpression.class), constraints), YEAR, MONTH, mondayDoWValue));
+        new OnDayOfWeekValueGenerator(new CronField(CronFieldName.YEAR, mock(FieldExpression.class), constraints), YEAR, MONTH, mondayDoWValue);
     }
 }
diff --git a/src/test/java/com/cronutils/model/time/generator/OnFieldValueGeneratorTest.java b/src/test/java/com/cronutils/model/time/generator/OnFieldValueGeneratorTest.java
index c5c105e..1a0982c 100755
--- a/src/test/java/com/cronutils/model/time/generator/OnFieldValueGeneratorTest.java
+++ b/src/test/java/com/cronutils/model/time/generator/OnFieldValueGeneratorTest.java
@@ -19,19 +19,19 @@ import com.cronutils.model.field.constraint.FieldConstraintsBuilder;
 import com.cronutils.model.field.expression.FieldExpression;
 import com.cronutils.model.field.expression.On;
 import com.cronutils.model.field.value.IntegerFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 
 public class OnFieldValueGeneratorTest {
     private OnFieldValueGenerator fieldValueGenerator;
     private static final int DAY = 3;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         fieldValueGenerator =
                 new OnFieldValueGenerator(
@@ -43,16 +43,16 @@ public class OnFieldValueGeneratorTest {
                 );
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGenerateNextValue() throws NoSuchValueException {
         assertEquals(DAY, fieldValueGenerator.generateNextValue(1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generateNextValue(DAY));
+        fieldValueGenerator.generateNextValue(DAY);
     }
 
-    @Test
+    @Test(expected = NoSuchValueException.class)
     public void testGeneratePreviousValue() throws NoSuchValueException {
         assertEquals(DAY, fieldValueGenerator.generatePreviousValue(DAY + 1));
-        assertThrows(NoSuchValueException.class, () -> fieldValueGenerator.generatePreviousValue(DAY));
+        fieldValueGenerator.generatePreviousValue(DAY);
     }
 
     @Test
@@ -74,8 +74,8 @@ public class OnFieldValueGeneratorTest {
         assertFalse(fieldValueGenerator.matchesFieldExpressionClass(mock(FieldExpression.class)));
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testConstructorNotMatchesOn() {
-        assertThrows(IllegalArgumentException.class, () -> new OnFieldValueGenerator(mock(CronField.class)));
+        new OnFieldValueGenerator(mock(CronField.class));
     }
 }
diff --git a/src/test/java/com/cronutils/parser/CronParserCron4JIntegrationTest.java b/src/test/java/com/cronutils/parser/CronParserCron4JIntegrationTest.java
index 2b1ab9d..4428d0a 100755
--- a/src/test/java/com/cronutils/parser/CronParserCron4JIntegrationTest.java
+++ b/src/test/java/com/cronutils/parser/CronParserCron4JIntegrationTest.java
@@ -17,16 +17,16 @@ import com.cronutils.model.Cron;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
 
 public class CronParserCron4JIntegrationTest {
     private CronParser cron4jParser;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         final CronDefinition cronDefinition = CronDefinitionBuilder.instanceDefinitionFor(CronType.CRON4J);
         cron4jParser = new CronParser(cronDefinition);
@@ -50,17 +50,17 @@ public class CronParserCron4JIntegrationTest {
         cron4jParser.parse(cronExpr);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testParseStrictRangeEnforced02() {
         final String cronExpr = "* 1 5-2 * 4";
-        assertThrows(IllegalArgumentException.class, () -> cron4jParser.parse(cronExpr));
+        cron4jParser.parse(cronExpr);
     }
 
     @Test
     public void testParseLastDayOfMonth() {
         final String cronExpr = "* * L * *";
         final Cron cron = cron4jParser.parse(cronExpr);
-        assertEquals("* * L * *", cron.asString());
+        assertThat(cron.asString(), is("* * L * *"));
     }
 
     @Test //issue 202
diff --git a/src/test/java/com/cronutils/parser/CronParserFieldTest.java b/src/test/java/com/cronutils/parser/CronParserFieldTest.java
index 380d9cf..2b7cb1f 100755
--- a/src/test/java/com/cronutils/parser/CronParserFieldTest.java
+++ b/src/test/java/com/cronutils/parser/CronParserFieldTest.java
@@ -17,63 +17,59 @@ import com.cronutils.model.field.CronField;
 import com.cronutils.model.field.CronFieldName;
 import com.cronutils.model.field.constraint.FieldConstraints;
 import com.cronutils.model.field.expression.FieldExpression;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
 import org.mockito.Matchers;
 import org.mockito.Mock;
-import org.mockito.MockedConstruction;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
 
 import java.util.UUID;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-@Disabled
+@Ignore
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({ CronParserField.class, CronParser.class })
 public class CronParserFieldTest {
 
     private CronFieldName testFieldName;
     @Mock
     private FieldConstraints mockConstraints;
+    @Mock
     private FieldParser mockParser;
-    private MockedConstruction<FieldParser> mockedConstruction;
     @Mock
     private FieldExpression mockParseResponse;
 
     private CronParserField cronParserField;
 
-    @BeforeEach
+    @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
         testFieldName = CronFieldName.SECOND;
 
-        mockedConstruction = Mockito.mockConstruction(FieldParser.class, (mock, context) -> {
-            Mockito.when(mock.parse(Matchers.anyString())).thenReturn(mockParseResponse);
-            mockParser = mock;
-        });
+        Mockito.when(mockParser.parse(Matchers.anyString())).thenReturn(mockParseResponse);
+        PowerMockito.whenNew(FieldParser.class)
+                .withArguments(Matchers.any(FieldConstraints.class)).thenReturn(mockParser);
 
         cronParserField = new CronParserField(testFieldName, mockConstraints);
     }
 
-    @AfterEach
-    public void tearDown() {
-        mockedConstruction.close();
-    }
-
     @Test
     public void testGetField() {
-        assertEquals(testFieldName, cronParserField.getField());
+        Assert.assertEquals(testFieldName, cronParserField.getField());
     }
 
     @Test
     public void testParse() {
         final String cron = UUID.randomUUID().toString();
         final CronField result = cronParserField.parse(cron);
-        assertEquals(mockParseResponse, result.getExpression());
-        assertEquals(testFieldName, result.getField());
+        Assert.assertEquals(mockParseResponse, result.getExpression());
+        Assert.assertEquals(testFieldName, result.getField());
         Mockito.verify(mockParser).parse(cron);
     }
 
@@ -84,8 +80,8 @@ public class CronParserFieldTest {
         Mockito.when(mockConstraints.getStringMappingValue("1")).thenReturn(null);
 
         final CronField result = cronParserField.parse("1L");
-        assertEquals(mockParseResponse, result.getExpression());
-        assertEquals(CronFieldName.DAY_OF_WEEK, result.getField());
+        Assert.assertEquals(mockParseResponse, result.getExpression());
+        Assert.assertEquals(CronFieldName.DAY_OF_WEEK, result.getField());
 
         Mockito.verify(mockConstraints).getStringMappingValue("1");
         Mockito.verify(mockParser).parse("1L");
@@ -98,20 +94,20 @@ public class CronParserFieldTest {
         Mockito.when(mockConstraints.getStringMappingValue("MON")).thenReturn(1);
 
         final CronField result = cronParserField.parse("MONL");
-        assertEquals(mockParseResponse, result.getExpression());
-        assertEquals(CronFieldName.DAY_OF_WEEK, result.getField());
+        Assert.assertEquals(mockParseResponse, result.getExpression());
+        Assert.assertEquals(CronFieldName.DAY_OF_WEEK, result.getField());
 
         Mockito.verify(mockConstraints).getStringMappingValue("MON");
         Mockito.verify(mockParser).parse("1L");
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorNameNull() {
-        assertThrows(NullPointerException.class, () -> new CronParserField(null, Mockito.mock(FieldConstraints.class)));
+        new CronParserField(null, Mockito.mock(FieldConstraints.class));
     }
 
-    @Test
+    @Test(expected = NullPointerException.class)
     public void testConstructorConstraintsNull() {
-        assertThrows(NullPointerException.class, () -> new CronParserField(testFieldName, null));
+        new CronParserField(testFieldName, null);
     }
 }
diff --git a/src/test/java/com/cronutils/parser/CronParserQuartzIntegrationTest.java b/src/test/java/com/cronutils/parser/CronParserQuartzIntegrationTest.java
index 05125a8..0b71b16 100755
--- a/src/test/java/com/cronutils/parser/CronParserQuartzIntegrationTest.java
+++ b/src/test/java/com/cronutils/parser/CronParserQuartzIntegrationTest.java
@@ -20,21 +20,28 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.model.field.expression.FieldExpressionFactory;
 import com.cronutils.model.time.ExecutionTime;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.hamcrest.core.StringEndsWith;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
 
 import java.time.ZonedDateTime;
 import java.util.Locale;
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
+import static org.junit.internal.matchers.ThrowableMessageMatcher.hasMessage;
 
 public class CronParserQuartzIntegrationTest {
 
     private static final String LAST_EXECUTION_NOT_PRESENT_ERROR = "last execution was not present";
     private CronParser parser;
 
-    @BeforeEach
+    @Rule
+    public ExpectedException thrown = ExpectedException.none();
+
+    @Before
     public void setUp() {
         parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ));
     }
@@ -47,24 +54,24 @@ public class CronParserQuartzIntegrationTest {
      * we receive: NumberFormatException
      * Expected: throw IllegalArgumentException notifying invalid char was used
      */
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testInvalidCharsDetected() {
-        assertThrows(IllegalArgumentException.class, () -> parser.parse("* * * * $ ?"));
+        parser.parse("* * * * $ ?");
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testInvalidCharsDetectedWithSingleSpecialChar() {
-        assertThrows(IllegalArgumentException.class, () -> parser.parse("* * * * $W ?"));
+        parser.parse("* * * * $W ?");
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testInvalidCharsDetectedWithHashExpression1() {
-        assertThrows(IllegalArgumentException.class, () -> parser.parse("* * * * $#3 ?"));
+        parser.parse("* * * * $#3 ?");
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testInvalidCharsDetectedWithHashExpression2() {
-        assertThrows(IllegalArgumentException.class, () -> parser.parse("* * * * 3#$ ?"));
+        parser.parse("* * * * 3#$ ?");
     }
 
     /**
@@ -78,9 +85,9 @@ public class CronParserQuartzIntegrationTest {
     /**
      * Issue #15: we should support L in range (ex.: L-3), but not other special chars
      */
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testLSupportedInRange() {
-        assertThrows(IllegalArgumentException.class, () -> parser.parse("* * * W-3 * ?"));
+        parser.parse("* * * W-3 * ?");
     }
 
     @Test
@@ -177,9 +184,9 @@ public class CronParserQuartzIntegrationTest {
     /**
      * Issue #63: Parser exception when parsing cron.
      */
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testDoMAndDoWParametersInvalidForQuartz() {
-        assertThrows(IllegalArgumentException.class, () -> parser.parse("0 30 17 4 1 * 2016"));
+        parser.parse("0 30 17 4 1 * 2016");
     }
 
     /**
@@ -219,9 +226,9 @@ public class CronParserQuartzIntegrationTest {
      */
     @Test
     public void testRegressionDifferentMessageForException() {
-        IllegalArgumentException e =
-                assertThrows(IllegalArgumentException.class, () -> assertNotNull(ExecutionTime.forCron(parser.parse("* * * * $ ?"))));
-        assertTrue(e.getMessage().contains("Invalid chars in expression! Expression: $ Invalid chars: $"));
+        thrown.expect(IllegalArgumentException.class);
+        thrown.expectMessage("Invalid chars in expression! Expression: $ Invalid chars: $");
+        assertNotNull(ExecutionTime.forCron(parser.parse("* * * * $ ?")));
     }
 
     /**
@@ -229,9 +236,10 @@ public class CronParserQuartzIntegrationTest {
      */
     @Test
     public void testReportedErrorContainsSameExpressionAsProvided() {
-        IllegalArgumentException e =
-                assertThrows(IllegalArgumentException.class, () -> assertNotNull(ExecutionTime.forCron(parser.parse("0/1 * * * * *"))));
-        assertTrue(e.getMessage().contains("Invalid cron expression: 0/1 * * * * *. Both, a day-of-week AND a day-of-month parameter, are not supported."));
+        thrown.expect(IllegalArgumentException.class);
+        thrown.expectMessage(
+                "Invalid cron expression: 0/1 * * * * *. Both, a day-of-week AND a day-of-month parameter, are not supported.");
+        assertNotNull(ExecutionTime.forCron(parser.parse("0/1 * * * * *")));
     }
 
     /**
@@ -240,10 +248,10 @@ public class CronParserQuartzIntegrationTest {
      */
     @Test
     public void testMissingExpressionAndInvalidCharsInErrorMessage() {
+        thrown.expect(IllegalArgumentException.class);
         final String cronexpression = "* * -1 * * ?";
-        IllegalArgumentException e =
-                assertThrows(IllegalArgumentException.class, () -> ExecutionTime.forCron(parser.parse(cronexpression)));
-        assertTrue(e.getMessage().endsWith("Invalid expression! Expression: -1 does not describe a range. Negative numbers are not allowed."));
+        thrown.expect(hasMessage(StringEndsWith.endsWith("Invalid expression! Expression: -1 does not describe a range. Negative numbers are not allowed.")));
+        assertNotNull(ExecutionTime.forCron(parser.parse(cronexpression)));
     }
 
     /**
@@ -262,7 +270,8 @@ public class CronParserQuartzIntegrationTest {
 
     @Test
     public void testRejectIllegalMonthArgument() {
-        assertThrows(IllegalArgumentException.class, () -> CronBuilder.cron(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ)).withMonth(FieldExpressionFactory.on(0)));
+        thrown.expect(IllegalArgumentException.class);
+        CronBuilder.cron(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ)).withMonth(FieldExpressionFactory.on(0));
     }
 
     /**
@@ -304,16 +313,16 @@ public class CronParserQuartzIntegrationTest {
 
     @Test
     public void testErrorAbout2Parts() {
-        IllegalArgumentException e =
-                assertThrows(IllegalArgumentException.class, () -> ExecutionTime.forCron(parser.parse("* *")));
-        assertEquals("Cron expression contains 2 parts but we expect one of [6, 7]", e.getMessage());
+        thrown.expect(IllegalArgumentException.class);
+        thrown.expectMessage("Cron expression contains 2 parts but we expect one of [6, 7]");
+        assertNotNull(ExecutionTime.forCron(parser.parse("* *")));
     }
 
     @Test
     public void testErrorAboutMissingSteps() {
-        IllegalArgumentException e =
-                assertThrows(IllegalArgumentException.class, () -> ExecutionTime.forCron(parser.parse("*/ * * * * ?")));
-        assertTrue(e.getMessage().contains("Missing steps for expression: */"));
+        thrown.expect(IllegalArgumentException.class);
+        thrown.expectMessage("Missing steps for expression: */");
+        assertNotNull(ExecutionTime.forCron(parser.parse("*/ * * * * ?")));
     }
 
     /**
diff --git a/src/test/java/com/cronutils/parser/CronParserSpringIntegrationTest.java b/src/test/java/com/cronutils/parser/CronParserSpringIntegrationTest.java
index 1afeb57..8e8c8a6 100644
--- a/src/test/java/com/cronutils/parser/CronParserSpringIntegrationTest.java
+++ b/src/test/java/com/cronutils/parser/CronParserSpringIntegrationTest.java
@@ -2,13 +2,13 @@ package com.cronutils.parser;
 
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 import org.springframework.scheduling.support.CronExpression;
 
 public class CronParserSpringIntegrationTest {
     private CronParser parser;
-    @BeforeEach
+    @Before
     public void setUp() {
         parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.SPRING));
     }
diff --git a/src/test/java/com/cronutils/parser/CronParserTest.java b/src/test/java/com/cronutils/parser/CronParserTest.java
index 08aa4e9..00f1c13 100755
--- a/src/test/java/com/cronutils/parser/CronParserTest.java
+++ b/src/test/java/com/cronutils/parser/CronParserTest.java
@@ -21,8 +21,10 @@ import com.cronutils.model.definition.TestCronDefinitionsFactory;
 import com.cronutils.model.field.CronFieldName;
 import com.cronutils.model.field.constraint.FieldConstraintsBuilder;
 import com.cronutils.model.field.definition.FieldDefinition;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
@@ -30,38 +32,40 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.mockito.Mockito.when;
 
 public class CronParserTest {
+    @Rule
+    public ExpectedException expectedException = ExpectedException.none();
+
     @Mock
     private CronDefinition definition;
 
     private CronParser parser;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testParseEmptyExpression() {
         when(definition.getFieldDefinitions()).thenReturn(Collections.emptySet());
         parser = new CronParser(definition);
 
-        assertThrows(IllegalArgumentException.class, () -> parser.parse(""));
+        parser.parse("");
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testParseNoMatchingExpression() {
         final Set<FieldDefinition> set =
                 Collections.singleton(new FieldDefinition(CronFieldName.SECOND, FieldConstraintsBuilder.instance().createConstraintsInstance()));
         when(definition.getFieldDefinitions()).thenReturn(set);
         parser = new CronParser(definition);
 
-        assertThrows(IllegalArgumentException.class, () -> parser.parse("* *"));
+        parser.parse("* *");
     }
 
     @Test
@@ -76,29 +80,29 @@ public class CronParserTest {
         parser.parse(expression);
     }
 
-    @Test // issue #368
+    @Test(expected = IllegalArgumentException.class) // issue #368
     public void testTrailingCommaListCron4j(){
-        assertThrows(IllegalArgumentException.class, () -> validateExpression(CronType.CRON4J, "1, * * * *"));
+        validateExpression(CronType.CRON4J, "1, * * * *");
     }
 
-    @Test // issue #368
+    @Test(expected = IllegalArgumentException.class) // issue #368
     public void testTrailingCommaListQuartz(){
-        assertThrows(IllegalArgumentException.class, () -> validateExpression(CronType.QUARTZ, "1, * * * * ?"));
+        validateExpression(CronType.QUARTZ, "1, * * * * ?");
     }
 
-    @Test // issue #368
+    @Test(expected = IllegalArgumentException.class) // issue #368
     public void testTrailingCommaListSpring(){
-        assertThrows(IllegalArgumentException.class, () -> validateExpression(CronType.SPRING, "1,2, * * * * ?"));
+        validateExpression(CronType.SPRING, "1,2, * * * * ?");
     }
 
-    @Test // issue #368
+    @Test(expected = IllegalArgumentException.class) // issue #368
     public void testTrailingCommaListUnix(){
-        assertThrows(IllegalArgumentException.class, () -> validateExpression(CronType.UNIX, "1, * * * *"));
+        validateExpression(CronType.UNIX, "1, * * * *");
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testHashListUnix(){
-        assertThrows(IllegalArgumentException.class, () -> validateExpression(CronType.UNIX, "0 0 0 ? * #"));
+        validateExpression(CronType.UNIX, "0 0 0 ? * #");
     }
 
     @Test // issue #369
@@ -117,8 +121,10 @@ public class CronParserTest {
         when(definition.getFieldDefinitions()).thenReturn(set);
         parser = new CronParser(definition);
 
-        IllegalArgumentException e = assertThrows(IllegalArgumentException.class, () -> parser.parse(expression));
-        assertTrue(e.getMessage().contains(expectedMessage));
+        expectedException.expect(IllegalArgumentException.class);
+        expectedException.expectMessage(expectedMessage);
+
+        assertNotNull(parser.parse(expression));
     }
 
     /**
@@ -165,19 +171,19 @@ public class CronParserTest {
         parser.parse("0/59 0/59 0/23 1/30 1/11 ? 2017/3");
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testRejectionOfZeroPeriod() {
         final CronDefinition quartzDefinition = CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ);
         parser = new CronParser(quartzDefinition);
 
-        assertThrows(IllegalArgumentException.class, () -> parser.parse("0/0 0 0 1 1 ? 2017/3"));
+        parser.parse("0/0 0 0 1 1 ? 2017/3");
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testRejectionOfPeriodUpperLimitExceedance() {
         final CronDefinition quartzDefinition = CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ);
         parser = new CronParser(quartzDefinition);
-        assertThrows(IllegalArgumentException.class, () -> parser.parse("0/60 0 0 1 1 ? 2017/3"));
+        parser.parse("0/60 0 0 1 1 ? 2017/3");
     }
 
     @Test
@@ -215,9 +221,9 @@ public class CronParserTest {
         assertEquals(multicron, cron.asString());
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void testParseQuartzCronWithHash() {
         parser = new CronParser(TestCronDefinitionsFactory.withDayOfYearDefinitionWhereYearAndDoYOptionals());
-        assertThrows(IllegalArgumentException.class, () -> parser.parse("0 0 0 ? * #"));
+        parser.parse("0 0 0 ? * #");
     }
 }
diff --git a/src/test/java/com/cronutils/utils/CronFrequencyComparatorTest.java b/src/test/java/com/cronutils/utils/CronFrequencyComparatorTest.java
index 38a10aa..c2ac801 100644
--- a/src/test/java/com/cronutils/utils/CronFrequencyComparatorTest.java
+++ b/src/test/java/com/cronutils/utils/CronFrequencyComparatorTest.java
@@ -5,14 +5,14 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.Assert.*;
 
 public class CronFrequencyComparatorTest {
     private CronFrequencyComparator comparator;
@@ -20,7 +20,7 @@ public class CronFrequencyComparatorTest {
     private Cron cron1;
     private Cron cron2;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         ZonedDateTime date1 = LocalDateTime.of(2018, 11, 5, 0, 0, 0).atZone(ZoneId.of("UTC"));
         ZonedDateTime date2 = LocalDateTime.of(2018, 11, 11, 0, 0, 0).atZone(ZoneId.of("UTC"));
@@ -47,4 +47,4 @@ public class CronFrequencyComparatorTest {
         Cron cronx = parser.parse("0 0 9-17 * * MON-FRI");//on the hour nine-to-five weekdays -> 9 executions per day, five times a week -> 45 executions per week
         assertEquals(0, comparator.compare(cron1, cronx));
     }
-}
+}
\ No newline at end of file
diff --git a/src/test/java/com/cronutils/utils/DateUtilsTest.java b/src/test/java/com/cronutils/utils/DateUtilsTest.java
index c2e7dc6..813965f 100644
--- a/src/test/java/com/cronutils/utils/DateUtilsTest.java
+++ b/src/test/java/com/cronutils/utils/DateUtilsTest.java
@@ -1,6 +1,6 @@
 package com.cronutils.utils;
 
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 import java.time.LocalDate;
 import java.time.LocalTime;
@@ -10,7 +10,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class DateUtilsTest {
 
@@ -53,4 +53,4 @@ public class DateUtilsTest {
         int daysToWorkday = DateUtils.workdaysCount(start, end, holidays, policy);
         assertEquals(21, daysToWorkday);
     }
-}
+}
\ No newline at end of file
diff --git a/src/test/java/com/cronutils/utils/StringUtilsTest.java b/src/test/java/com/cronutils/utils/StringUtilsTest.java
index 192a508..b95142d 100644
--- a/src/test/java/com/cronutils/utils/StringUtilsTest.java
+++ b/src/test/java/com/cronutils/utils/StringUtilsTest.java
@@ -1,9 +1,9 @@
 package com.cronutils.utils;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
 
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
 public class StringUtilsTest {
 
diff --git a/src/test/java/com/cronutils/utils/descriptor/CronDescriptorCron4jIntegrationTest.java b/src/test/java/com/cronutils/utils/descriptor/CronDescriptorCron4jIntegrationTest.java
index e262a03..7f5ba37 100755
--- a/src/test/java/com/cronutils/utils/descriptor/CronDescriptorCron4jIntegrationTest.java
+++ b/src/test/java/com/cronutils/utils/descriptor/CronDescriptorCron4jIntegrationTest.java
@@ -17,12 +17,12 @@ import com.cronutils.descriptor.CronDescriptor;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.Locale;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class CronDescriptorCron4jIntegrationTest {
 
@@ -30,7 +30,7 @@ public class CronDescriptorCron4jIntegrationTest {
     private CronDescriptor descriptor;
     private CronParser parser;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         descriptor = CronDescriptor.instance(Locale.UK);
         parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.CRON4J));
diff --git a/src/test/java/com/cronutils/utils/descriptor/CronDescriptorCron4jIntegrationZhTest.java b/src/test/java/com/cronutils/utils/descriptor/CronDescriptorCron4jIntegrationZhTest.java
index dc20bdc..7aee0e8 100755
--- a/src/test/java/com/cronutils/utils/descriptor/CronDescriptorCron4jIntegrationZhTest.java
+++ b/src/test/java/com/cronutils/utils/descriptor/CronDescriptorCron4jIntegrationZhTest.java
@@ -17,12 +17,12 @@ import com.cronutils.descriptor.CronDescriptor;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.Locale;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 /**
  * https://github.com/jmrozanec/cron-utils/issues/230
@@ -33,7 +33,7 @@ public class CronDescriptorCron4jIntegrationZhTest {
     private CronDescriptor descriptor;
     private CronParser parser;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         descriptor = CronDescriptor.instance(Locale.CHINESE);
         parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.CRON4J));
diff --git a/src/test/java/com/cronutils/utils/descriptor/CronDescriptorQuartzIntegrationTest.java b/src/test/java/com/cronutils/utils/descriptor/CronDescriptorQuartzIntegrationTest.java
index 0fbab82..52af0b7 100755
--- a/src/test/java/com/cronutils/utils/descriptor/CronDescriptorQuartzIntegrationTest.java
+++ b/src/test/java/com/cronutils/utils/descriptor/CronDescriptorQuartzIntegrationTest.java
@@ -17,18 +17,18 @@ import com.cronutils.descriptor.CronDescriptor;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.Locale;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class CronDescriptorQuartzIntegrationTest {
     private CronDescriptor descriptor;
     private CronParser parser;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         descriptor = CronDescriptor.instance(Locale.UK);
         parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ));
diff --git a/src/test/java/com/cronutils/utils/descriptor/CronDescriptorTest.java b/src/test/java/com/cronutils/utils/descriptor/CronDescriptorTest.java
index b7c08da..e31a1ef 100755
--- a/src/test/java/com/cronutils/utils/descriptor/CronDescriptorTest.java
+++ b/src/test/java/com/cronutils/utils/descriptor/CronDescriptorTest.java
@@ -27,8 +27,8 @@ import com.cronutils.model.field.expression.On;
 import com.cronutils.model.field.value.IntegerFieldValue;
 import com.cronutils.model.field.value.SpecialChar;
 import com.cronutils.model.field.value.SpecialCharFieldValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
@@ -37,8 +37,8 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Locale;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 public class CronDescriptorTest {
     private CronDescriptor descriptor;
@@ -46,7 +46,7 @@ public class CronDescriptorTest {
     @Mock
     private CronDefinition mockDefinition;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         descriptor = CronDescriptor.instance(Locale.UK);
diff --git a/src/test/java/com/cronutils/utils/descriptor/Issue227Test.java b/src/test/java/com/cronutils/utils/descriptor/Issue227Test.java
index bbb73a3..03017ef 100755
--- a/src/test/java/com/cronutils/utils/descriptor/Issue227Test.java
+++ b/src/test/java/com/cronutils/utils/descriptor/Issue227Test.java
@@ -18,12 +18,12 @@ import com.cronutils.model.Cron;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.util.Locale;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class Issue227Test {
 
@@ -32,7 +32,7 @@ public class Issue227Test {
      */
     private CronParser parser;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ));
     }
diff --git a/src/test/java/com/cronutils/utils/descriptor/Issue281Test.java b/src/test/java/com/cronutils/utils/descriptor/Issue281Test.java
index b0e73d1..91bcb60 100644
--- a/src/test/java/com/cronutils/utils/descriptor/Issue281Test.java
+++ b/src/test/java/com/cronutils/utils/descriptor/Issue281Test.java
@@ -18,40 +18,39 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
 
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.hamcrest.MatcherAssert.assertThat;
 
 public class Issue281Test {
 
     @Test
     public void shouldAcceptLastMonth() {
         final Cron cron = buildCron("0 0 0 24 1/12 ?");
-        assertNotNull(cron, "cron is not null");
+        assertThat("cron is not null", cron != null);
     }
 
     @Test
     public void shouldAcceptFirstMonth() {
         final Cron cron = buildCron("0 0 0 24/1 1/12 ?");
-        assertNotNull(cron, "cron is not null");
+        assertThat("cron is not null", cron != null);
     }
 
     @Test
     public void shouldAcceptLastDayOfMonth() {
         final Cron cron = buildCron("0 0 0 1/31 7 ?");
-        assertNotNull(cron, "cron is not null");
+        assertThat("cron is not null", cron != null);
     }
 
     @Test
     public void shouldAcceptFirstDayOfMonth() {
         final Cron cron = buildCron("0 0 0 24/1 1/12 ?");
-        assertNotNull(cron, "cron is not null");
+        assertThat("cron is not null", cron != null);
     }
 
-    @Test
+    @Test(expected = IllegalArgumentException.class)
     public void shouldThrowExceptionWhenMonthExceeded() {
-        assertThrows(IllegalArgumentException.class, () -> buildCron("0 0 0 24 1/13 ?"));
+        buildCron("0 0 0 24 1/13 ?");
     }
 
     private Cron buildCron(String expression) {
diff --git a/src/test/java/com/cronutils/utils/descriptor/Issue343Test.java b/src/test/java/com/cronutils/utils/descriptor/Issue343Test.java
index 51a9546..9cbfdf8 100644
--- a/src/test/java/com/cronutils/utils/descriptor/Issue343Test.java
+++ b/src/test/java/com/cronutils/utils/descriptor/Issue343Test.java
@@ -5,58 +5,61 @@ import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinition;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
+import org.hamcrest.core.IsEqual;
+import org.junit.Assert;
+import org.junit.runners.Parameterized.Parameters;
 
 import java.util.Locale;
-import java.util.stream.Stream;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
 
 /**
  *  Issue 334 - Getting exception {@link IllegalArgumentException} "Both, a day-of-week AND a day-of-month parameter, are not supported."
  *  when trying to get description for valid cron expression with {@link CronDefinition} of {@link CronType#SPRING} type.
- *
- **/
+ *  
+ **/ 
+//@RunWith(Parameterized.class)
 public class Issue343Test {
-
+	
 	/**
 	 * Cron expressions from spring docs <a href="https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/support/CronSequenceGenerator.html">Class CronSequenceGenerator</a>
-	 **/
-	public static Stream<Expr> expressions() {
-		return Stream.of(
+	 **/ 
+	@Parameters
+	public static Object[] expressions() {
+		return new Object[] {
 				new Expr("0 0 * * * *", "every hour"),
 				new Expr("*/10 * * * * *", "every 10 seconds"),
 				new Expr("0 0 8-10 * * *", "every hour between 8 and 10"),
 				new Expr("0 0 6,19 * * *", "at 6 and 19 hours"),
 				new Expr("0 0/30 8-10 * * *", "every 30 minutes every hour between 8 and 10"),
 				new Expr("0 0 9-17 * * MON-FRI", "every hour between 9 and 17 every day between Monday and Friday")
-		);
+		};
 	}
-
-	@ParameterizedTest
-	@MethodSource("expressions")
-	public void test(Expr expressionToTest) {
+	
+	private Expr expressionToTest;
+	
+	public Issue343Test(Expr expressionToTest) {
+		this.expressionToTest = expressionToTest;
+	}
+	
+	//@Test
+	public void test() {
 		CronParser pareser = new CronParser( CronDefinitionBuilder.instanceDefinitionFor(CronType.SPRING) );
-
+		
 		String actualDescription = CronDescriptor.instance(Locale.ENGLISH)
 				.describe(pareser.parse(expressionToTest.getExpression()));
-
-		assertEquals(expressionToTest.getExpectedDescription(), actualDescription);
+		
+		Assert.assertThat(actualDescription, IsEqual.equalTo(expressionToTest.getExpectedDescription()));
 	}
-
-	@ParameterizedTest
-	@MethodSource("expressions")
-	public void workaround(Expr expressionToTest) {
+	
+	//@Test
+	public void workaround() {
 		CronParser pareser = new CronParser( workingSpringCronDefinition() );
-
+		
 		String actualDescription = CronDescriptor.instance(Locale.ENGLISH)
 				.describe(pareser.parse(expressionToTest.getExpression()));
-
-		assertEquals(expressionToTest.getExpectedDescription(), actualDescription);
+		
+		Assert.assertThat(actualDescription, IsEqual.equalTo(expressionToTest.getExpectedDescription()));
 	}
-
+	
 	private static CronDefinition workingSpringCronDefinition() {
         return CronDefinitionBuilder.defineCron()
                 .withSeconds().and()
@@ -68,12 +71,12 @@ public class Issue343Test {
 //                .withCronValidation(CronConstraintsFactory.ensureEitherDayOfWeekOrDayOfMonth())
                 .instance();
     }
-
-
+	
+	
 	private static class Expr {
 		private final String expression;
 		private final String expectedDescription;
-
+		
 		public Expr(String expression, String expectedDescription) {
 			super();
 			this.expression = expression;
diff --git a/src/test/java/com/cronutils/utils/descriptor/TestDescriptor.java b/src/test/java/com/cronutils/utils/descriptor/TestDescriptor.java
index 7e5e090..939ac2d 100644
--- a/src/test/java/com/cronutils/utils/descriptor/TestDescriptor.java
+++ b/src/test/java/com/cronutils/utils/descriptor/TestDescriptor.java
@@ -1,12 +1,12 @@
 package com.cronutils.utils.descriptor;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 import java.util.Locale;
 import java.util.ResourceBundle;
 
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
+import org.junit.Ignore;
+import org.junit.Test;
 
 import com.cronutils.descriptor.CronDescriptor;
 import com.cronutils.descriptor.refactor.TimeDescriptor;
@@ -31,7 +31,7 @@ public class TestDescriptor {
 	// every 2 days starting on the 9th,
 	// every 2 months starting in October,
 	// every 2 years starting in 2017
-	@Disabled
+	@Ignore
 	@Test
 	public void testFull() {
 		final Cron cron = getCron("3/4 5/6 7/8 9/2 10/2 ? 2017");
@@ -132,7 +132,7 @@ public class TestDescriptor {
 		assertEquals(descriptor.describe(cron), descriptor.describe(otherCron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtSecondEveryMinute() {
 		final Cron cron = getCron("1 * * * * ? *");
@@ -141,7 +141,7 @@ public class TestDescriptor {
 		assertEquals("at second 15 of every minute", descriptor.describe(otherCron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtSecondEveryMinuteWithoutYear() {
 		final Cron cron = getCron("1 * * * * ?");
@@ -150,7 +150,7 @@ public class TestDescriptor {
 		assertEquals("at second 15 of every minute", descriptor.describe(otherCron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testEverySecondDuringMinuteOfEveryHour() {
 		final Cron cron = getCron("* 1 * * * ? *");
@@ -159,7 +159,7 @@ public class TestDescriptor {
 		assertEquals("every second during minute 15 of every hour", descriptor.describe(otherCron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testEverySecondDuringMinuteOfEveryHourWithoutYear() {
 		final Cron cron = getCron("* 1 * * * ?");
@@ -168,7 +168,7 @@ public class TestDescriptor {
 		assertEquals("every second during minute 15 of every hour", descriptor.describe(otherCron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testEverySecondOnTheDayEveryMonth() {
 		final Cron first = getCron("* * * 1 * ? *");
@@ -181,7 +181,7 @@ public class TestDescriptor {
 		assertEquals("every second, on the 15th day, every month", descriptor.describe(otherCron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testEverySecondOnTheDayEveryMonthWithoutYear() {
 		final Cron first = getCron("* * * 1 * ?");
@@ -194,7 +194,7 @@ public class TestDescriptor {
 		assertEquals("every second, on the 15th day, every month", descriptor.describe(otherCron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testEverySecondEveryDayInMonth() {
 		final Cron cron = getCron("* * * * 1 ? *");
@@ -203,7 +203,7 @@ public class TestDescriptor {
 		assertEquals("every second, every day, in December", descriptor.describe(otherCron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testEverySecondEveryDayInMonthWithoutYear() {
 		final Cron cron = getCron("* * * * 1 ?");
@@ -212,7 +212,7 @@ public class TestDescriptor {
 		assertEquals("every second, every day, in December", descriptor.describe(otherCron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testEverySecondEveryDayInYear() {
 		final Cron cron = getCron("* * * * * ? 2017");
@@ -222,63 +222,63 @@ public class TestDescriptor {
 		assertEquals("every second, every day, in 2018", descriptor.describe(otherCron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeEveryDay() {
 		final Cron cron = getCron("0 0 0 * * ? *");
 		assertEquals("at 00:00:00am every day", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeEveryDay2() {
 		final Cron cron = getCron("00 00 16 * * ? *");
 		assertEquals("at 16:00:00pm every day", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtMultipleTimesEveryDay() {
 		final Cron cron = getCron("00 00 8,16 * * ? *");
 		assertEquals("at second 00, at minute 00, at 08am and 16pm, of every day", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOfDayEveryMonth() {
 		final Cron cron = getCron("0 0 16 1 * ? *");
 		assertEquals("at 16:00:00pm, on the first day, every month", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOfMultipleDaysEveryMonth() {
 		final Cron cron = getCron("0 0 16 1,5,26 * ? *");
 		assertEquals("at 16:00:00pm on the 1st, 5th and 26th day, every month", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOfEveryDayInMonth() {
 		final Cron cron = getCron("0 0 16 * 3 ? *");
 		assertEquals("at 16:00:00pm, every day, in March", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOfEveryDayInMultipleMonth() {
 		final Cron cron = getCron("0 0 16 * 1,5,12 ? *");
 		assertEquals("at 16:00:00pm, every day in January, May and December", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOfEveryDayBetweenMonths() {
 		final Cron cron = getCron("0 0 16 * 3-7 ? *");
 		assertEquals("at 16:00:00pm, every day between March and July", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOfEveryDayBetweenMultipleMonths() {
 		final Cron cron = getCron("0 0 16 * 3-7,10-12 ? *");
@@ -286,42 +286,42 @@ public class TestDescriptor {
 				descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOfFirstInMultipleMonths() {
 		final Cron cron = getCron("0 0 16 1 3,5,12 ? *");
 		assertEquals("at 16:00:00pm, on the 1st day in March, May and December", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOfSecondInMultipleMonths() {
 		final Cron cron = getCron("0 0 16 2 3,5,12 ? *");
 		assertEquals("at 16:00:00pm, on the 2nd day in March, May and December", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOfThirdInMultipleMonths() {
 		final Cron cron = getCron("0 0 16 3 3,5,12 ? *");
 		assertEquals("at 16:00:00pm, on the 3rd day in March, May and December", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOfSpecificDayInMultipleMonths() {
 		final Cron cron = getCron("0 0 16 15 3,5,12 ? *");
 		assertEquals("at 16:00:00pm, on the 15th day in March, May and December", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOfSpecificDayBetweenMonths() {
 		final Cron cron = getCron("0 0 16 15 3-7 ? *");
 		assertEquals("at 16:00:00pm, on the 15th day every month between March and July", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOfSpecificDayBetweenMultipleMonths() {
 		final Cron cron = getCron("0 0 16 15 3-7,10-12 ? *");
@@ -330,56 +330,56 @@ public class TestDescriptor {
 				descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOnLastDayOfMonth() {
 		final Cron cron = getCron("0 0 16 L * ? *");
 		assertEquals("at 16:00:00pm, on the last day of the month, every month", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOnLastDayOfSpecificMonth() {
 		final Cron cron = getCron("0 0 16 L 3 ? *");
 		assertEquals("at 16:00:00pm, on the last day of the month, in March", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOnThirdLastDayOfMonth() {
 		final Cron cron = getCron("0 0 16 L-3 * ? *");
 		assertEquals("at 16:00:00pm, 3 days before the end of the month, every month", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOnNthSpecificWeekdayOfMonth() {
 		final Cron cron = getCron("0 0 16 ? * 5#2 *");
 		assertEquals("at 16:00:00pm, on the 2nd Thursday of the month, every month", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeOnLastSpecificWeekdayOfMonth() {
 		final Cron cron = getCron("0 0 16 ? * 2L *");
 		assertEquals("at 16:00:00pm, on the last Monday of the month, every month", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeEverySpecificWeekdayOfMonth() {
 		final Cron cron = getCron("0 0 16 ? * 2 *");
 		assertEquals("at 16:00:00pm, every Monday of the month, every month", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeEverySpecificWeekdayOfSpecificMonth() {
 		final Cron cron = getCron("0 0 16 ? 5 3 *");
 		assertEquals("at 16:00:00pm, every Tuesday of the month, in May", descriptor.describe(cron));
 	}
 
-	@Disabled
+	@Ignore
 	@Test
 	public void testAtTimeMultipleWeekdaysOfMultipleSpecificMonths() {
 		final Cron cron = getCron("0 0 16 ? 1,5,12 2,5,7 *");
diff --git a/src/test/java/com/cronutils/validation/CronValidatorTest.java b/src/test/java/com/cronutils/validation/CronValidatorTest.java
index 49ba158..1f5b728 100644
--- a/src/test/java/com/cronutils/validation/CronValidatorTest.java
+++ b/src/test/java/com/cronutils/validation/CronValidatorTest.java
@@ -1,9 +1,9 @@
 package com.cronutils.validation;
 
 import com.cronutils.model.CronType;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.Arguments;
-import org.junit.jupiter.params.provider.MethodSource;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -11,37 +11,45 @@ import javax.validation.ConstraintViolation;
 import javax.validation.Validation;
 import javax.validation.Validator;
 import java.util.Set;
-import java.util.stream.Stream;
 
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
+@RunWith(Parameterized.class)
 public class CronValidatorTest {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(CronValidatorTest.class);
 
     private final Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
 
-    public static Stream<Arguments> expressions() {
-        return Stream.of(
-                Arguments.of("0 0 * * * *", true),
-                Arguments.of("*/10 * * * * *", true),
-                Arguments.of("0 0 8-10 * * *", true),
-                Arguments.of("0 0 6,19 * * *", true),
-                Arguments.of("0 0/30 8-10 * * *", true),
-                Arguments.of("0 0 9-17 * * MON-FRI", true),
-                Arguments.of("0 0 0 25 12 ?", true),
-                Arguments.of("0 0 0 L 12 ?", false),
-                Arguments.of("1,2, * * * * *", false),
-                Arguments.of("1- * * * * *", false),
+    private final String expression;
+    private final boolean valid;
+
+    public CronValidatorTest(String expression, boolean valid) {
+        this.expression = expression;
+        this.valid = valid;
+    }
+
+    @Parameterized.Parameters(name = "{0} ")
+    public static Object[] expressions() {
+        return new Object[][]{
+                {"0 0 * * * *", true},
+                {"*/10 * * * * *", true},
+                {"0 0 8-10 * * *", true},
+                {"0 0 6,19 * * *", true},
+                {"0 0/30 8-10 * * *", true},
+                {"0 0 9-17 * * MON-FRI", true},
+                {"0 0 0 25 12 ?", true},
+                {"0 0 0 L 12 ?", false},
+                {"1,2, * * * * *", false},
+                {"1- * * * * *", false},
                 // Verification for RCE security vulnerability fix: https://github.com/jmrozanec/cron-utils/issues/461
-                Arguments.of("java.lang.Runtime.getRuntime().exec('touch /tmp/pwned'); // 4 5 [${''.getClass().forName('javax.script.ScriptEngineManager').newInstance().getEngineByName('js').eval(validatedValue)}]", false)
-        );
+                {"java.lang.Runtime.getRuntime().exec('touch /tmp/pwned'); // 4 5 [${''.getClass().forName('javax.script.ScriptEngineManager').newInstance().getEngineByName('js').eval(validatedValue)}]", false}
+        };
     }
 
-    @ParameterizedTest(name = "{0} ")
-    @MethodSource("expressions")
-    public void validateExamples(String expression, boolean valid) {
+    @Test
+    public void validateExamples() {
         TestPojo testPojo = new TestPojo(expression);
         Set<ConstraintViolation<TestPojo>> violations = validator.validate(testPojo);
         violations.stream().map(ConstraintViolation::getMessage).forEach(LOGGER::info);
@@ -66,4 +74,4 @@ public class CronValidatorTest {
         }
 
     }
-}
+}
\ No newline at end of file
diff --git a/src/test/java/com/cronutils/validator/CronValidatorQuartzIntegrationTest.java b/src/test/java/com/cronutils/validator/CronValidatorQuartzIntegrationTest.java
index fc665b4..e089c91 100755
--- a/src/test/java/com/cronutils/validator/CronValidatorQuartzIntegrationTest.java
+++ b/src/test/java/com/cronutils/validator/CronValidatorQuartzIntegrationTest.java
@@ -16,19 +16,19 @@ package com.cronutils.validator;
 import com.cronutils.model.CronType;
 import com.cronutils.model.definition.CronDefinitionBuilder;
 import com.cronutils.parser.CronParser;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.Locale;
 
-import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.Assert.assertNotNull;
 
 public class CronValidatorQuartzIntegrationTest {
     private CronParser parser;
 
-    @BeforeEach
+    @Before
     public void setUp() {
         parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ));
     }