diff --git a/.travis.yml b/.travis.yml
index c38ff44..830b934 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,7 +10,7 @@ addons:
token:
secure: $SONAR_TOKEN
jdk:
- - oraclejdk8
+ - oraclejdk11
before_install:
- if [ ! -z "$GPG_SECRET_KEYS" ]; then echo $GPG_SECRET_KEYS | base64 --decode | $GPG_EXECUTABLE --import; fi
- if [ ! -z "$GPG_OWNERTRUST" ]; then echo $GPG_OWNERTRUST | base64 --decode | $GPG_EXECUTABLE --import-ownertrust; fi
diff --git a/pom.xml b/pom.xml
index 4a25ae0..636783b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,10 +37,10 @@
UTF-8
1.7
1.7
- 3.3.2
- 2.4.0
- 4.12
- 1.7.22
+ 3.5
+ 4.3.1
+ 4.13.1
+ 2.0.7
@@ -85,8 +85,8 @@
org.mockito
- mockito-all
- 1.9.5
+ mockito-core
+ 5.3.1
test
diff --git a/src/main/java/ru/sbtqa/tag/qautils/cucumber/CucumberUtils.java b/src/main/java/ru/sbtqa/tag/qautils/cucumber/CucumberUtils.java
index 263c200..d84c3b5 100644
--- a/src/main/java/ru/sbtqa/tag/qautils/cucumber/CucumberUtils.java
+++ b/src/main/java/ru/sbtqa/tag/qautils/cucumber/CucumberUtils.java
@@ -2,10 +2,14 @@
import cucumber.api.Scenario;
import cucumber.runtime.io.MultiLoader;
-import cucumber.runtime.model.CucumberFeature;
-import java.util.ArrayList;
-import java.util.List;
+
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Locale;
+
+import gherkin.AstBuilder;
+import gherkin.Parser;
+import gherkin.ast.GherkinDocument;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -18,14 +22,12 @@ private CucumberUtils() {
}
public static Locale getLocale(Scenario scenario) {
- List scenarioPaths = new ArrayList<>();
- scenarioPaths.add(scenario.getUri());
-
MultiLoader multiLoader = new MultiLoader(ClassLoader.getSystemClassLoader());
String language = DEFAULT_LANGUAGE;
try {
- CucumberFeature cucumberFeature = CucumberFeature.load(multiLoader, scenarioPaths).get(0);
- language = cucumberFeature.getGherkinFeature().getFeature().getLanguage();
+ String content = new String(Files.readAllBytes(Paths.get(scenario.getUri())));
+ GherkinDocument gherkinDocument = new Parser<>(new AstBuilder()).parse(content);
+ language = gherkinDocument.getFeature().getLanguage();
} catch (Exception e) {
LOG.warn("Error while reading feature with uri {}. Using default language {} as fallback", scenario.getUri(), DEFAULT_LANGUAGE, e);
}
diff --git a/src/test/java/ru/sbtqa/tag/qautils/cucumber/CucumberUtilsTest.java b/src/test/java/ru/sbtqa/tag/qautils/cucumber/CucumberUtilsTest.java
index 92ed582..c12c598 100644
--- a/src/test/java/ru/sbtqa/tag/qautils/cucumber/CucumberUtilsTest.java
+++ b/src/test/java/ru/sbtqa/tag/qautils/cucumber/CucumberUtilsTest.java
@@ -1,7 +1,6 @@
package ru.sbtqa.tag.qautils.cucumber;
import cucumber.api.Scenario;
-import cucumber.runtime.ScenarioImpl;
import java.util.Locale;
import org.junit.Assert;
import org.junit.Test;
@@ -12,7 +11,7 @@ public class CucumberUtilsTest {
@Test
public void returnCorrectLanguageLocaleTest() {
- Scenario scenario = mock(ScenarioImpl.class);
+ Scenario scenario = mock(Scenario.class);
when(scenario.getUri()).thenReturn("src/test/resources/features/Correct.feature");
Locale expectedLocale = new Locale("ru");
@@ -23,7 +22,7 @@ public void returnCorrectLanguageLocaleTest() {
@Test
public void fallbackToDefaultLanguageTest() {
- Scenario scenario = mock(ScenarioImpl.class);
+ Scenario scenario = mock(Scenario.class);
when(scenario.getUri()).thenReturn("src/test/resources/features/Incorrect.feature");
Locale expectedLocale = new Locale("en");
diff --git a/src/test/java/ru/sbtqa/tag/qautils/i18n/I18NTest.java b/src/test/java/ru/sbtqa/tag/qautils/i18n/I18NTest.java
index 2ed66c1..471ecdd 100644
--- a/src/test/java/ru/sbtqa/tag/qautils/i18n/I18NTest.java
+++ b/src/test/java/ru/sbtqa/tag/qautils/i18n/I18NTest.java
@@ -1,7 +1,6 @@
package ru.sbtqa.tag.qautils.i18n;
import cucumber.api.Scenario;
-import cucumber.runtime.ScenarioImpl;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
@@ -59,7 +58,7 @@ public void getI18nReverseTest() {
@Test
public void getI18nViaScenarioTest() {
- Scenario scenario = mock(ScenarioImpl.class);
+ Scenario scenario = mock(Scenario.class);
when(scenario.getUri()).thenReturn("src/test/resources/features/Correct.feature");
I18N i18n = I18N.getI18n(I18NTest.class, scenario);