=> propose true|false
public void testValueHintForBooleans() {
- assertThat(completionProvider.complete("http --use-ssl=", 1),
- hasItems(Proposals.proposalThat(is("http --use-ssl=true")), Proposals.proposalThat(is("http --use-ssl=false"))));
+ assertThat(completionProvider.complete("http --use-ssl=", 1)).has(Proposals.proposalThatHasAll("http --use-ssl=true", "http --use-ssl=false"));
}
@Test
// .. foo --enum-value= => propose enum values
public void testValueHintForEnums() {
- assertThat(completionProvider.complete("http | filter --expresso=", 1),
- hasItems(Proposals.proposalThat(is("http | filter --expresso=SINGLE")),
- Proposals.proposalThat(is("http | filter --expresso=DOUBLE"))));
+ assertThat(completionProvider.complete("http | filter --expresso=", 1)).has(Proposals.proposalThatHasAll("http | filter --expresso=SINGLE","http | filter --expresso=DOUBLE"));
}
@Test
public void testUnrecognizedPrefixesDontBlowUp() {
- assertThat(completionProvider.complete("foo", 1), empty());
- assertThat(completionProvider.complete("foo --", 1), empty());
- assertThat(completionProvider.complete("http --notavalidoption", 1), empty());
- assertThat(completionProvider.complete("http --notavalidoption=", 1), empty());
- assertThat(completionProvider.complete("foo --some-option", 1), empty());
- assertThat(completionProvider.complete("foo --some-option=", 1), empty());
- assertThat(completionProvider.complete("foo --some-option=prefix", 1), empty());
+ assertThat(completionProvider.complete("foo", 1)).isEmpty();
+ assertThat(completionProvider.complete("foo --", 1)).isEmpty();
+ assertThat(completionProvider.complete("http --notavalidoption", 1)).isEmpty();
+ assertThat(completionProvider.complete("http --notavalidoption=", 1)).isEmpty();
+ assertThat(completionProvider.complete("foo --some-option", 1)).isEmpty();
+ assertThat(completionProvider.complete("foo --some-option=", 1)).isEmpty();
+ assertThat(completionProvider.complete("foo --some-option=prefix", 1)).isEmpty();
assertThat(
completionProvider.complete(
- "http | filter --port=12 --expression=something " + "--expresso=not-a-valid-prefix", 1),
- empty());
+ "http | filter --port=12 --expression=something " + "--expresso=not-a-valid-prefix", 1)
+ ).isEmpty();
}
/*
@@ -198,8 +181,7 @@ public void testUnrecognizedPrefixesDontBlowUp() {
*/
@Test
public void testClosedSetValuesShouldBeExclusive() {
- assertThat(completionProvider.complete("http --use-ssl=tr", 1),
- not(hasItems(Proposals.proposalThat(startsWith("http --use-ssl=tr --port")))));
+ assertThat(completionProvider.complete("http --use-ssl=tr", 1)).doNotHave(Proposals.proposalThatStartsWith("http --use-ssl=tr --port"));
}
}
diff --git a/spring-cloud-dataflow-completion/src/test/java/org/springframework/cloud/dataflow/completion/TaskCompletionProviderTests.java b/spring-cloud-dataflow-completion/src/test/java/org/springframework/cloud/dataflow/completion/TaskCompletionProviderTests.java
index 08db8a78c5..938b7cde20 100644
--- a/spring-cloud-dataflow-completion/src/test/java/org/springframework/cloud/dataflow/completion/TaskCompletionProviderTests.java
+++ b/spring-cloud-dataflow-completion/src/test/java/org/springframework/cloud/dataflow/completion/TaskCompletionProviderTests.java
@@ -16,21 +16,15 @@
package org.springframework.cloud.dataflow.completion;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+
+import org.assertj.core.api.Condition;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.dataflow.configuration.metadata.ApplicationConfigurationMetadataResolver;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import static org.hamcrest.Matchers.empty;
-import static org.hamcrest.Matchers.hasItems;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.not;
-import static org.hamcrest.Matchers.startsWith;
-import static org.junit.Assert.assertThat;
+import static org.assertj.core.api.Assertions.assertThat;
/**
* Integration tests for TaskCompletionProvider.
*
@@ -43,9 +37,10 @@
* @author Eric Bottard
* @author Mark Fisher
* @author Andy Clement
+ * @author Corneil du Plessis
*/
@SuppressWarnings("unchecked")
-@RunWith(SpringRunner.class)
+
@SpringBootTest(classes = { CompletionConfiguration.class, CompletionTestsMocks.class }, properties = {
"spring.main.allow-bean-definition-overriding=true" })
public class TaskCompletionProviderTests {
@@ -56,77 +51,71 @@ public class TaskCompletionProviderTests {
@Test
// => basic,plum,etc
public void testEmptyStartShouldProposeSourceApps() {
- assertThat(completionProvider.complete("", 1), hasItems(Proposals.proposalThat(is("basic")), Proposals.proposalThat(is("plum"))));
- assertThat(completionProvider.complete("", 1), not(hasItems(Proposals.proposalThat(is("log")))));
+ assertThat(completionProvider.complete("", 1)).has(Proposals.proposalThatHasAll("basic", "plum"));
+ assertThat(completionProvider.complete("", 1)).doNotHave(Proposals.proposalThatIs("log"));
}
@Test
// b => basic
public void testUnfinishedAppNameShouldReturnCompletions() {
- assertThat(completionProvider.complete("b", 1), hasItems(Proposals.proposalThat(is("basic"))));
- assertThat(completionProvider.complete("ba", 1), hasItems(Proposals.proposalThat(is("basic"))));
- assertThat(completionProvider.complete("pl", 1), not(hasItems(Proposals.proposalThat(is("basic")))));
+ assertThat(completionProvider.complete("b", 1)).have(Proposals.proposalThatIs("basic"));
+ assertThat(completionProvider.complete("ba", 1)).have(Proposals.proposalThatIs("basic"));
+ assertThat(completionProvider.complete("pl", 1)).doNotHave(Proposals.proposalThatIs("basic"));
}
@Test
// basic => basic --foo=, etc
public void testValidTaskDefinitionShouldReturnAppOptions() {
- assertThat(completionProvider.complete("basic ", 1),
- hasItems(Proposals.proposalThat(is("basic --expression=")), Proposals.proposalThat(is("basic --expresso="))));
+ assertThat(completionProvider.complete("basic ", 1)).has(Proposals.proposalThatHasAny("basic --expression=", "basic --expresso="));
// Same as above, no final space
- assertThat(completionProvider.complete("basic", 1),
- hasItems(Proposals.proposalThat(is("basic --expression=")), Proposals.proposalThat(is("basic --expresso="))));
+ assertThat(completionProvider.complete("basic", 1)).has(Proposals.proposalThatHasAll("basic --expression=", "basic --expresso="));
}
@Test
// file | filter - => file | filter --foo,etc
public void testOneDashShouldReturnTwoDashes() {
- assertThat(completionProvider.complete("basic -", 1),
- hasItems(Proposals.proposalThat(is("basic --expression=")), Proposals.proposalThat(is("basic --expresso="))));
+ assertThat(completionProvider.complete("basic -", 1)).has(Proposals.proposalThatHasAll("basic --expression=", "basic --expresso="));
}
@Test
// basic -- => basic --foo,etc
public void testTwoDashesShouldReturnOptions() {
- assertThat(completionProvider.complete("basic --", 1),
- hasItems(Proposals.proposalThat(is("basic --expression=")), Proposals.proposalThat(is("basic --expresso="))));
+ assertThat(completionProvider.complete("basic --", 1)).has(Proposals.proposalThatHasAll("basic --expression=", "basic --expresso="));
}
@Test
// file --p => file --preventDuplicates=, file --pattern=
public void testUnfinishedOptionNameShouldComplete() {
- assertThat(completionProvider.complete("basic --foo", 1), hasItems(Proposals.proposalThat(is("basic --fooble="))));
+ assertThat(completionProvider.complete("basic --foo", 1)).have(Proposals.proposalThatIs("basic --fooble="));
}
@Test
// file | counter --name= => nothing
public void testInGenericOptionValueCantProposeAnything() {
- assertThat(completionProvider.complete("basic --expression=", 1), empty());
+ assertThat(completionProvider.complete("basic --expression=", 1)).isEmpty();
}
@Test
// plum --use-ssl= => propose true|false
public void testValueHintForBooleans() {
- assertThat(completionProvider.complete("plum --use-ssl=", 1),
- hasItems(Proposals.proposalThat(is("plum --use-ssl=true")), Proposals.proposalThat(is("plum --use-ssl=false"))));
+ assertThat(completionProvider.complete("plum --use-ssl=", 1)).has(Proposals.proposalThatHasAll("plum --use-ssl=true", "plum --use-ssl=false"));
}
@Test
// basic --enum-value= => propose enum values
public void testValueHintForEnums() {
- assertThat(completionProvider.complete("basic --expresso=", 1),
- hasItems(Proposals.proposalThat(is("basic --expresso=SINGLE")), Proposals.proposalThat(is("basic --expresso=DOUBLE"))));
+ assertThat(completionProvider.complete("basic --expresso=", 1)).has(Proposals.proposalThatHasAll("basic --expresso=SINGLE", "basic --expresso=DOUBLE"));
}
@Test
public void testUnrecognizedPrefixesDontBlowUp() {
- assertThat(completionProvider.complete("foo", 1), empty());
- assertThat(completionProvider.complete("foo --", 1), empty());
- assertThat(completionProvider.complete("http --notavalidoption", 1), empty());
- assertThat(completionProvider.complete("http --notavalidoption=", 1), empty());
- assertThat(completionProvider.complete("foo --some-option", 1), empty());
- assertThat(completionProvider.complete("foo --some-option=", 1), empty());
- assertThat(completionProvider.complete("foo --some-option=prefix", 1), empty());
+ assertThat(completionProvider.complete("foo", 1)).isEmpty();
+ assertThat(completionProvider.complete("foo --", 1)).isEmpty();
+ assertThat(completionProvider.complete("http --notavalidoption", 1)).isEmpty();
+ assertThat(completionProvider.complete("http --notavalidoption=", 1)).isEmpty();
+ assertThat(completionProvider.complete("foo --some-option", 1)).isEmpty();
+ assertThat(completionProvider.complete("foo --some-option=", 1)).isEmpty();
+ assertThat(completionProvider.complete("foo --some-option=prefix", 1)).isEmpty();
}
/*
@@ -135,7 +124,7 @@ public void testUnrecognizedPrefixesDontBlowUp() {
*/
@Test
public void testClosedSetValuesShouldBeExclusive() {
- assertThat(completionProvider.complete("basic --expresso=s", 1),
- not(hasItems(Proposals.proposalThat(startsWith("basic --expresso=s --fooble")))));
+ assertThat(completionProvider
+ .complete("basic --expresso=s", 1)).doNotHave(Proposals.proposalThatStartsWith("basic --expresso=s --fooble"));
}
}
diff --git a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationJobIncrementerTests.java b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationJobIncrementerTests.java
index 42b5f77cc1..84efa92f0c 100644
--- a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationJobIncrementerTests.java
+++ b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationJobIncrementerTests.java
@@ -17,8 +17,6 @@
package org.springframework.cloud.dataflow.composedtaskrunner;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobParameters;
@@ -29,17 +27,15 @@
import org.springframework.cloud.common.security.CommonSecurityAutoConfiguration;
import org.springframework.cloud.dataflow.composedtaskrunner.configuration.DataFlowTestConfiguration;
import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import org.springframework.util.Assert;
/**
* @author Glenn Renfro
*/
-@ExtendWith(SpringExtension.class)
-@ContextConfiguration(classes={EmbeddedDataSourceConfiguration.class,
- DataFlowTestConfiguration.class,StepBeanDefinitionRegistrar.class,
+@SpringJUnitConfig(classes = {EmbeddedDataSourceConfiguration.class,
+ DataFlowTestConfiguration.class, StepBeanDefinitionRegistrar.class,
ComposedTaskRunnerConfiguration.class,
StepBeanDefinitionRegistrar.class})
@EnableAutoConfiguration(exclude = { CommonSecurityAutoConfiguration.class})
diff --git a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationNoPropertiesTests.java b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationNoPropertiesTests.java
index 09d8d2b0af..ac9f0a2f55 100644
--- a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationNoPropertiesTests.java
+++ b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationNoPropertiesTests.java
@@ -20,7 +20,6 @@
import java.util.Collections;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecution;
@@ -36,9 +35,8 @@
import org.springframework.cloud.dataflow.rest.client.TaskOperations;
import org.springframework.context.ApplicationContext;
import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.util.Assert;
@@ -49,8 +47,7 @@
/**
* @author Glenn Renfro
*/
-@ExtendWith(SpringExtension.class)
-@ContextConfiguration(classes = {EmbeddedDataSourceConfiguration.class,
+@SpringJUnitConfig(classes = {EmbeddedDataSourceConfiguration.class,
DataFlowTestConfiguration.class, StepBeanDefinitionRegistrar.class,
ComposedTaskRunnerConfiguration.class,
StepBeanDefinitionRegistrar.class})
diff --git a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithAppArgumentsPropertiesTests.java b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithAppArgumentsPropertiesTests.java
index 337a36d652..e0e6dde04c 100644
--- a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithAppArgumentsPropertiesTests.java
+++ b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithAppArgumentsPropertiesTests.java
@@ -20,7 +20,6 @@
import java.util.Map;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecution;
@@ -35,17 +34,15 @@
import org.springframework.cloud.dataflow.composedtaskrunner.support.ComposedTaskRunnerTaskletTestUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import static org.assertj.core.api.Assertions.assertThat;
/**
* @author Janne Valkealahti
*/
-@ExtendWith(SpringExtension.class)
-@ContextConfiguration(classes={EmbeddedDataSourceConfiguration.class,
+@SpringJUnitConfig(classes = {EmbeddedDataSourceConfiguration.class,
DataFlowTestConfiguration.class, StepBeanDefinitionRegistrar.class,
ComposedTaskRunnerConfiguration.class})
@TestPropertySource(properties = {"graph=ComposedTest-AAA && ComposedTest-BBB && ComposedTest-CCC","max-wait-time=1010",
diff --git a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithPropertiesNoLabelTests.java b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithPropertiesNoLabelTests.java
index 6a5b75c50b..b0a35360b1 100644
--- a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithPropertiesNoLabelTests.java
+++ b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithPropertiesNoLabelTests.java
@@ -21,7 +21,6 @@
import java.util.Map;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecution;
@@ -36,9 +35,8 @@
import org.springframework.cloud.dataflow.composedtaskrunner.support.ComposedTaskRunnerTaskletTestUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import org.springframework.util.Assert;
import static org.assertj.core.api.Assertions.assertThat;
@@ -46,9 +44,8 @@
/**
* @author Glenn Renfro
*/
-@ExtendWith(SpringExtension.class)
-@ContextConfiguration(classes={EmbeddedDataSourceConfiguration.class,
- DataFlowTestConfiguration.class,StepBeanDefinitionRegistrar.class,
+@SpringJUnitConfig(classes = {EmbeddedDataSourceConfiguration.class,
+ DataFlowTestConfiguration.class, StepBeanDefinitionRegistrar.class,
ComposedTaskRunnerConfiguration.class})
@TestPropertySource(properties = {"graph=ComposedTest-AAA && ComposedTest-BBB && ComposedTest-CCC","max-wait-time=1010",
"skip-tls-certificate-verification=true",
diff --git a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithPropertiesTests.java b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithPropertiesTests.java
index 7a78b0aa0f..d1c8527773 100644
--- a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithPropertiesTests.java
+++ b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithPropertiesTests.java
@@ -22,7 +22,6 @@
import java.util.Map;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecution;
@@ -39,9 +38,8 @@
import org.springframework.cloud.task.configuration.TaskProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.util.Assert;
@@ -52,9 +50,8 @@
/**
* @author Glenn Renfro
*/
-@ExtendWith(SpringExtension.class)
-@ContextConfiguration(classes={EmbeddedDataSourceConfiguration.class,
- DataFlowTestConfiguration.class,StepBeanDefinitionRegistrar.class,
+@SpringJUnitConfig(classes = {EmbeddedDataSourceConfiguration.class,
+ DataFlowTestConfiguration.class, StepBeanDefinitionRegistrar.class,
ComposedTaskRunnerConfiguration.class,
StepBeanDefinitionRegistrar.class})
@TestPropertySource(properties = {"graph=ComposedTest-AAA && ComposedTest-BBB && ComposedTest-CCC","max-wait-time=1010",
diff --git a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithPropertiesWithLabelTests.java b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithPropertiesWithLabelTests.java
index ee33987a47..9f98bdfc4f 100644
--- a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithPropertiesWithLabelTests.java
+++ b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithPropertiesWithLabelTests.java
@@ -22,7 +22,6 @@
import java.util.Map;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,9 +38,8 @@
import org.springframework.cloud.dataflow.composedtaskrunner.support.ComposedTaskRunnerTaskletTestUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import org.springframework.util.Assert;
import static org.assertj.core.api.Assertions.assertThat;
@@ -49,10 +47,9 @@
/**
* @author Glenn Renfro
*/
-@ExtendWith(SpringExtension.class)
-@ContextConfiguration(classes={EmbeddedDataSourceConfiguration.class,
- DataFlowTestConfiguration.class,StepBeanDefinitionRegistrar.class,
- ComposedTaskRunnerConfiguration.class})
+@SpringJUnitConfig(classes = {EmbeddedDataSourceConfiguration.class,
+ DataFlowTestConfiguration.class, StepBeanDefinitionRegistrar.class,
+ ComposedTaskRunnerConfiguration.class})
@TestPropertySource(properties = {"graph=ComposedTest-l1 && ComposedTest-l2 && ComposedTest-l11","max-wait-time=1010",
"composed-task-app-properties.app.l1.AAA.format=yyyy",
"composed-task-app-properties.app.l11.AAA.format=yyyy",
diff --git a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithVersionPropertiesTests.java b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithVersionPropertiesTests.java
index 213de991f2..cbc9450956 100644
--- a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithVersionPropertiesTests.java
+++ b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerConfigurationWithVersionPropertiesTests.java
@@ -22,7 +22,6 @@
import java.util.Map;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecution;
@@ -37,18 +36,16 @@
import org.springframework.cloud.dataflow.composedtaskrunner.support.ComposedTaskRunnerTaskletTestUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import static org.assertj.core.api.Assertions.assertThat;
/**
* @author Janne Valkealahti
*/
-@ExtendWith(SpringExtension.class)
-@ContextConfiguration(classes={EmbeddedDataSourceConfiguration.class,
- DataFlowTestConfiguration.class,StepBeanDefinitionRegistrar.class,
+@SpringJUnitConfig(classes = {EmbeddedDataSourceConfiguration.class,
+ DataFlowTestConfiguration.class, StepBeanDefinitionRegistrar.class,
ComposedTaskRunnerConfiguration.class})
@TestPropertySource(properties = {"graph=ComposedTest-AAA && ComposedTest-BBB && ComposedTest-CCC","max-wait-time=1010",
"composed-task-properties=" + ComposedTaskRunnerConfigurationWithVersionPropertiesTests.COMPOSED_TASK_PROPS ,
diff --git a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerStepFactoryTests.java b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerStepFactoryTests.java
index 3218544f3c..9223a611c9 100644
--- a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerStepFactoryTests.java
+++ b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/ComposedTaskRunnerStepFactoryTests.java
@@ -16,12 +16,11 @@
package org.springframework.cloud.dataflow.composedtaskrunner;
-import javax.sql.DataSource;
-
import java.util.Collections;
+import javax.sql.DataSource;
+
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.StepExecutionListener;
@@ -37,8 +36,7 @@
import org.springframework.cloud.task.repository.TaskRepository;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import org.springframework.transaction.PlatformTransactionManager;
import static org.assertj.core.api.Assertions.assertThat;
@@ -48,8 +46,7 @@
* @author Glenn Renfro
* @author Corneil du Plessis
*/
-@ExtendWith(SpringExtension.class)
-@ContextConfiguration(classes = {org.springframework.cloud.dataflow.composedtaskrunner.ComposedTaskRunnerStepFactoryTests.StepFactoryConfiguration.class})
+@SpringJUnitConfig(classes = {org.springframework.cloud.dataflow.composedtaskrunner.ComposedTaskRunnerStepFactoryTests.StepFactoryConfiguration.class})
public class ComposedTaskRunnerStepFactoryTests {
@Autowired
diff --git a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/TaskLauncherTaskletTests.java b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/TaskLauncherTaskletTests.java
index 82f56d6497..024175b0d5 100644
--- a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/TaskLauncherTaskletTests.java
+++ b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/TaskLauncherTaskletTests.java
@@ -20,7 +20,6 @@
import java.util.Collections;
import java.util.Date;
import java.util.List;
-
import javax.sql.DataSource;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -30,7 +29,6 @@
import org.assertj.core.api.AssertionsForClassTypes;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.ArgumentMatchers;
import org.mockito.Mockito;
import org.slf4j.Logger;
@@ -80,8 +78,7 @@
import org.springframework.security.oauth2.client.endpoint.OAuth2ClientCredentialsGrantRequest;
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.web.client.ResourceAccessException;
@@ -95,8 +92,7 @@
/**
* @author Glenn Renfro
*/
-@ExtendWith(SpringExtension.class)
-@ContextConfiguration(classes={EmbeddedDataSourceConfiguration.class,
+@SpringJUnitConfig(classes = {EmbeddedDataSourceConfiguration.class,
org.springframework.cloud.dataflow.composedtaskrunner.TaskLauncherTaskletTests.TestConfiguration.class})
public class TaskLauncherTaskletTests {
private final static Logger logger = LoggerFactory.getLogger(TaskLauncherTaskletTests.class);
diff --git a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/support/OnOAuth2ClientCredentialsEnabledTests.java b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/support/OnOAuth2ClientCredentialsEnabledTests.java
index 707a96c31f..c6245cd01f 100644
--- a/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/support/OnOAuth2ClientCredentialsEnabledTests.java
+++ b/spring-cloud-dataflow-composed-task-runner/src/test/java/org/springframework/cloud/dataflow/composedtaskrunner/support/OnOAuth2ClientCredentialsEnabledTests.java
@@ -24,7 +24,7 @@
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
-import static org.hamcrest.Matchers.equalTo;
+import static org.assertj.core.api.Assertions.assertThat;
/**
* @author Gunnar Hillert
@@ -43,19 +43,19 @@ public void teardown() {
@Test
public void noPropertySet() throws Exception {
this.context = load(Config.class);
- org.hamcrest.MatcherAssert.assertThat(context.containsBean("myBean"), equalTo(false));
+ assertThat(context.containsBean("myBean")).isEqualTo(false);
}
@Test
public void propertyClientId() throws Exception {
this.context = load(Config.class, "oauth2-client-credentials-client-id:12345");
- org.hamcrest.MatcherAssert.assertThat(context.containsBean("myBean"), equalTo(true));
+ assertThat(context.containsBean("myBean")).isEqualTo(true);
}
@Test
public void clientIdOnlyWithNoValue() throws Exception {
this.context = load(Config.class, "oauth2-client-credentials-client-id:");
- org.hamcrest.MatcherAssert.assertThat(context.containsBean("myBean"), equalTo(false));
+ assertThat(context.containsBean("myBean")).isEqualTo(false);
}
private AnnotationConfigApplicationContext load(Class> config, String... env) {
diff --git a/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/configuration/metadata/ApplicationConfigurationMetadataResolverAutoConfigurationTest.java b/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/configuration/metadata/ApplicationConfigurationMetadataResolverAutoConfigurationTest.java
index a51a68fd20..b624bf698d 100644
--- a/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/configuration/metadata/ApplicationConfigurationMetadataResolverAutoConfigurationTest.java
+++ b/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/configuration/metadata/ApplicationConfigurationMetadataResolverAutoConfigurationTest.java
@@ -23,8 +23,7 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
@@ -41,9 +40,8 @@
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
-import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.RestTemplate;
@@ -57,8 +55,7 @@
/**
* @author Christian Tzolov
*/
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = ApplicationConfigurationMetadataResolverAutoConfigurationTest.TestConfig.class)
+@SpringJUnitConfig(classes = ApplicationConfigurationMetadataResolverAutoConfigurationTest.TestConfig.class)
@TestPropertySource(properties = {
".dockerconfigjson={\"auths\":{\"demo.repository.io\":{\"username\":\"testuser\",\"password\":\"testpassword\",\"auth\":\"YWRtaW46SGFyYm9yMTIzNDU=\"}" +
",\"demo2.repository.io\":{\"username\":\"testuser\",\"password\":\"testpassword\",\"auth\":\"YWRtaW46SGFyYm9yMTIzNDU=\"}}}",
diff --git a/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/configuration/metadata/BootApplicationConfigurationMetadataResolverTests.java b/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/configuration/metadata/BootApplicationConfigurationMetadataResolverTests.java
index eef755693c..8d7648c97a 100644
--- a/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/configuration/metadata/BootApplicationConfigurationMetadataResolverTests.java
+++ b/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/configuration/metadata/BootApplicationConfigurationMetadataResolverTests.java
@@ -23,9 +23,9 @@
import java.util.Map;
import java.util.Set;
-import org.hamcrest.Matcher;
-import org.junit.Before;
-import org.junit.Test;
+import org.assertj.core.api.Condition;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@@ -35,12 +35,7 @@
import org.springframework.core.io.ClassPathResource;
import org.springframework.util.StreamUtils;
-import static org.hamcrest.Matchers.containsInAnyOrder;
-import static org.hamcrest.Matchers.hasItem;
-import static org.hamcrest.Matchers.hasProperty;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.not;
-import static org.junit.Assert.assertThat;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
/**
@@ -57,7 +52,7 @@ public class BootApplicationConfigurationMetadataResolverTests {
private ApplicationConfigurationMetadataResolver resolver;
- @Before
+ @BeforeEach
public void init() {
MockitoAnnotations.initMocks(this);
resolver = new BootApplicationConfigurationMetadataResolver(containerImageMetadataResolver);
@@ -68,7 +63,7 @@ public void appDockerResourceEmptyLabels() {
when(containerImageMetadataResolver.getImageLabels("test/test:latest")).thenReturn(new HashMap<>());
List properties = resolver
.listProperties(new DockerResource("test/test:latest"));
- assertThat(properties.size(), is(0));
+ assertThat(properties).isEmpty();
}
@Test
@@ -82,7 +77,7 @@ public void appDockerResource() throws IOException {
new String(bytes)));
List properties = resolver
.listProperties(new DockerResource("test/test:latest"));
- assertThat(properties.size(), is(3));
+ assertThat(properties).hasSize(3);
}
@Test
@@ -94,24 +89,24 @@ public void appDockerResourceBrokenFormat() {
when(containerImageMetadataResolver.getImageLabels("test/test:latest")).thenReturn(result);
List properties = resolver
.listProperties(new DockerResource("test/test:latest"));
- assertThat(properties.size(), is(0));
+ assertThat(properties).isEmpty();
}
@Test
public void appSpecificVisiblePropsShouldBeVisible() {
List properties = resolver
.listProperties(new ClassPathResource("apps/filter-processor", getClass()));
- assertThat(properties, hasItem(configPropertyIdentifiedAs("filter.expression")));
- assertThat(properties, hasItem(configPropertyIdentifiedAs("some.other.property.included.prefix.expresso2")));
+ assertThat(properties).haveAtLeastOne(configPropertyIdentifiedAs("filter.expression"));
+ assertThat(properties).haveAtLeastOne(configPropertyIdentifiedAs("some.other.property.included.prefix.expresso2"));
}
@Test
public void otherPropertiesShouldOnlyBeVisibleInExtensiveCall() {
List properties = resolver
.listProperties(new ClassPathResource("apps/filter-processor", getClass()));
- assertThat(properties, not(hasItem(configPropertyIdentifiedAs("some.prefix.hidden.by.default.secret"))));
+ assertThat(properties).doNotHave(configPropertyIdentifiedAs("some.prefix.hidden.by.default.secret"));
properties = resolver.listProperties(new ClassPathResource("apps/filter-processor", getClass()), true);
- assertThat(properties, hasItem(configPropertyIdentifiedAs("some.prefix.hidden.by.default.secret")));
+ assertThat(properties).haveAtLeastOne(configPropertyIdentifiedAs("some.prefix.hidden.by.default.secret"));
}
@Test
@@ -120,8 +115,8 @@ public void shouldReturnEverythingWhenNoDescriptors() {
.listProperties(new ClassPathResource("apps/no-visible-properties", getClass()));
List full = resolver
.listProperties(new ClassPathResource("apps/no-visible-properties", getClass()), true);
- assertThat(properties.size(), is(0));
- assertThat(full.size(), is(3));
+ assertThat(properties).isEmpty();
+ assertThat(full).hasSize(3);
}
@Test
@@ -130,31 +125,31 @@ public void deprecatedErrorPropertiesShouldNotBeVisible() {
.listProperties(new ClassPathResource("apps/deprecated-error", getClass()));
List full = resolver
.listProperties(new ClassPathResource("apps/deprecated-error", getClass()), true);
- assertThat(properties.size(), is(0));
- assertThat(full.size(), is(2));
+ assertThat(properties).isEmpty();
+ assertThat(full).hasSize(2);
}
@Test
public void shouldReturnPortMappingProperties() {
Map> portNames = resolver.listPortNames(new ClassPathResource("apps/filter-processor", getClass()));
- assertThat(portNames.size(), is(2));
- assertThat(portNames.get("inbound").size(), is(3));
- assertThat(portNames.get("inbound"), containsInAnyOrder("in1", "in2", "in3"));
- assertThat(portNames.get("outbound").size(), is(2));
- assertThat(portNames.get("outbound"), containsInAnyOrder("out1", "out2"));
+ assertThat(portNames).hasSize(2);
+ assertThat(portNames.get("inbound")).hasSize(3);
+ assertThat(portNames.get("inbound")).containsExactlyInAnyOrder("in1", "in2", "in3");
+ assertThat(portNames.get("outbound")).hasSize(2);
+ assertThat(portNames.get("outbound")).containsExactlyInAnyOrder("out1", "out2");
}
@Test
public void shouldReturnOptionGroupsProperties() {
Map> optionGroups = resolver.listOptionGroups(new ClassPathResource("apps/filter-processor", getClass()));
- assertThat(optionGroups.size(), is(4));
- assertThat(optionGroups.get("g1").size(), is(3));
- assertThat(optionGroups.get("g1"), containsInAnyOrder("foo1.bar1", "foo1.bar2", "foo1.bar3"));
- assertThat(optionGroups.get("g2").size(), is(0));
- assertThat(optionGroups.get("g1.sb1").size(), is(1));
- assertThat(optionGroups.get("g1.sb1"), containsInAnyOrder("foo2.bar1"));
- assertThat(optionGroups.get("g1.sb2").size(), is(2));
- assertThat(optionGroups.get("g1.sb2"), containsInAnyOrder("foo3.bar1", "foo3.bar2"));
+ assertThat(optionGroups).hasSize(4);
+ assertThat(optionGroups.get("g1")).hasSize(3);
+ assertThat(optionGroups.get("g1")).containsExactlyInAnyOrder("foo1.bar1", "foo1.bar2", "foo1.bar3");
+ assertThat(optionGroups.get("g2")).isEmpty();
+ assertThat(optionGroups.get("g1.sb1")).hasSize(1);
+ assertThat(optionGroups.get("g1.sb1")).containsExactly("foo2.bar1");
+ assertThat(optionGroups.get("g1.sb2")).hasSize(2);
+ assertThat(optionGroups.get("g1.sb2")).containsExactlyInAnyOrder("foo3.bar1", "foo3.bar2");
}
@Test
@@ -164,15 +159,15 @@ public void appDockerResourceWithInboundOutboundPortMapping() {
result.put("configuration-properties.outbound-ports", "output1, output2");
when(this.containerImageMetadataResolver.getImageLabels("test/test:latest")).thenReturn(result);
Map> portNames = this.resolver.listPortNames(new DockerResource("test/test:latest"));
- assertThat(portNames.size(), is(2));
- assertThat(portNames.get("inbound").size(), is(3));
- assertThat(portNames.get("inbound"), containsInAnyOrder("input1", "input2", "input3"));
- assertThat(portNames.get("outbound").size(), is(2));
- assertThat(portNames.get("outbound"), containsInAnyOrder("output1", "output2"));
+ assertThat(portNames).hasSize(2);
+ assertThat(portNames.get("inbound")).hasSize(3);
+ assertThat(portNames.get("inbound")).containsExactlyInAnyOrder("input1", "input2", "input3");
+ assertThat(portNames.get("outbound")).hasSize(2);
+ assertThat(portNames.get("outbound")).containsExactlyInAnyOrder("output1", "output2");
}
- private Matcher configPropertyIdentifiedAs(String name) {
- return hasProperty("id", is(name));
+ private Condition configPropertyIdentifiedAs(String name) {
+ return new Condition<>(item -> item.getId().equals(name), "configPropertyIdentifiedAs");
}
}
diff --git a/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/DefaultContainerImageMetadataResolverTest.java b/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/DefaultContainerImageMetadataResolverTest.java
index 54004cad2c..9803c791a0 100644
--- a/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/DefaultContainerImageMetadataResolverTest.java
+++ b/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/DefaultContainerImageMetadataResolverTest.java
@@ -23,8 +23,9 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@@ -40,8 +41,8 @@
import org.springframework.web.util.UriComponents;
import org.springframework.web.util.UriComponentsBuilder;
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertThat;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.AssertionsForClassTypes.assertThatExceptionOfType;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyMap;
@@ -65,7 +66,7 @@ public class DefaultContainerImageMetadataResolverTest {
private ContainerRegistryService containerRegistryService;
- @Before
+ @BeforeEach
public void init() {
MockitoAnnotations.initMocks(this);
@@ -89,13 +90,15 @@ public void init() {
when(registryAuthorizer.getAuthorizationHeaders(any(ContainerImage.class), any())).thenReturn(new HttpHeaders());
this.containerRegistryService = new ContainerRegistryService(containerImageRestTemplateFactory,
- new ContainerImageParser(), registryConfigurationMap, Arrays.asList(registryAuthorizer));
+ new ContainerImageParser(), registryConfigurationMap, Collections.singletonList(registryAuthorizer));
}
- @Test(expected = ContainerRegistryException.class)
+ @Test
public void getImageLabelsInvalidImageName() {
- DefaultContainerImageMetadataResolver resolver = new MockedDefaultContainerImageMetadataResolver(this.containerRegistryService);
- resolver.getImageLabels(null);
+ assertThatExceptionOfType(ContainerRegistryException.class).isThrownBy(() -> {
+ DefaultContainerImageMetadataResolver resolver = new MockedDefaultContainerImageMetadataResolver(this.containerRegistryService);
+ resolver.getImageLabels(null);
+ });
}
@Test
@@ -110,8 +113,8 @@ public void getImageLabels() throws JsonProcessingException {
"registry-1.docker.io", null, "test/image", "123");
Map labels = resolver.getImageLabels("test/image:latest");
- assertThat(labels.size(), is(1));
- assertThat(labels.get("boza"), is("koza"));
+ assertThat(labels).hasSize(1);
+ assertThat(labels.get("boza")).isEqualTo("koza");
}
@Test
@@ -126,61 +129,69 @@ public void getImageLabelsFromPrivateRepository() throws JsonProcessingException
"my-private-repository.com", "5000", "test/image", "123");
Map labels = resolver.getImageLabels("my-private-repository.com:5000/test/image:latest");
- assertThat(labels.size(), is(1));
- assertThat(labels.get("boza"), is("koza"));
+ assertThat(labels).hasSize(1);
+ assertThat(labels.get("boza")).isEqualTo("koza");
}
- @Test(expected = ContainerRegistryException.class)
+ @Test
public void getImageLabelsMissingRegistryConfiguration() {
- DefaultContainerImageMetadataResolver resolver = new MockedDefaultContainerImageMetadataResolver(this.containerRegistryService);
- resolver.getImageLabels("somehost:8083/test/image:latest");
+ assertThatExceptionOfType(ContainerRegistryException.class).isThrownBy(() -> {
+ DefaultContainerImageMetadataResolver resolver = new MockedDefaultContainerImageMetadataResolver(this.containerRegistryService);
+ resolver.getImageLabels("somehost:8083/test/image:latest");
+ });
}
- @Test(expected = ContainerRegistryException.class)
+ @Test
public void getImageLabelsMissingRegistryAuthorizer() {
+ assertThatExceptionOfType(ContainerRegistryException.class).isThrownBy(() -> {
+ DefaultContainerImageMetadataResolver resolver = new MockedDefaultContainerImageMetadataResolver(
+ new ContainerRegistryService(containerImageRestTemplateFactory,
+ new ContainerImageParser(), registryConfigurationMap, Collections.emptyList()));
- DefaultContainerImageMetadataResolver resolver = new MockedDefaultContainerImageMetadataResolver(
- new ContainerRegistryService(containerImageRestTemplateFactory,
- new ContainerImageParser(), registryConfigurationMap, Collections.emptyList()));
-
- resolver.getImageLabels("test/image:latest");
+ resolver.getImageLabels("test/image:latest");
+ });
}
- @Test(expected = ContainerRegistryException.class)
+ @Test
public void getImageLabelsMissingAuthorizationHeader() {
- RegistryAuthorizer registryAuthorizer = mock(RegistryAuthorizer.class);
+ assertThatExceptionOfType(ContainerRegistryException.class).isThrownBy(() -> {
+ RegistryAuthorizer registryAuthorizer = mock(RegistryAuthorizer.class);
- when(registryAuthorizer.getType()).thenReturn(ContainerRegistryConfiguration.AuthorizationType.dockeroauth2);
- when(registryAuthorizer.getAuthorizationHeaders(any(ContainerImage.class), any())).thenReturn(null);
+ when(registryAuthorizer.getType()).thenReturn(ContainerRegistryConfiguration.AuthorizationType.dockeroauth2);
+ when(registryAuthorizer.getAuthorizationHeaders(any(ContainerImage.class), any())).thenReturn(null);
- DefaultContainerImageMetadataResolver resolver = new MockedDefaultContainerImageMetadataResolver(
- new ContainerRegistryService(containerImageRestTemplateFactory, new ContainerImageParser(), registryConfigurationMap, Arrays.asList(registryAuthorizer)));
+ DefaultContainerImageMetadataResolver resolver = new MockedDefaultContainerImageMetadataResolver(
+ new ContainerRegistryService(containerImageRestTemplateFactory, new ContainerImageParser(), registryConfigurationMap, Collections.singletonList(registryAuthorizer)));
- resolver.getImageLabels("test/image:latest");
+ resolver.getImageLabels("test/image:latest");
+ });
}
- @Test(expected = ContainerRegistryException.class)
+ @Test
public void getImageLabelsInvalidManifestResponse() {
+ assertThatExceptionOfType(ContainerRegistryException.class).isThrownBy(() -> {
+ DefaultContainerImageMetadataResolver resolver = new MockedDefaultContainerImageMetadataResolver(this.containerRegistryService);
- DefaultContainerImageMetadataResolver resolver = new MockedDefaultContainerImageMetadataResolver(this.containerRegistryService);
-
- Map manifestResponseWithoutConfig = Collections.emptyMap();
- mockManifestRestTemplateCall(manifestResponseWithoutConfig, "registry-1.docker.io",
- null, "test/image", "latest");
+ Map manifestResponseWithoutConfig = Collections.emptyMap();
+ mockManifestRestTemplateCall(manifestResponseWithoutConfig, "registry-1.docker.io",
+ null, "test/image", "latest");
- resolver.getImageLabels("test/image:latest");
+ resolver.getImageLabels("test/image:latest");
+ });
}
- @Test(expected = ContainerRegistryException.class)
+ @Test
public void getImageLabelsInvalidDigest() {
- DefaultContainerImageMetadataResolver resolver = new MockedDefaultContainerImageMetadataResolver(this.containerRegistryService);
+ assertThatExceptionOfType(ContainerRegistryException.class).isThrownBy(() -> {
+ DefaultContainerImageMetadataResolver resolver = new MockedDefaultContainerImageMetadataResolver(this.containerRegistryService);
- String emptyDigest = "";
- Map manifestResponse = Collections.singletonMap("config", Collections.singletonMap("digest", emptyDigest));
- mockManifestRestTemplateCall(manifestResponse, "registry-1.docker.io", null,
- "test/image", "latest");
+ String emptyDigest = "";
+ Map manifestResponse = Collections.singletonMap("config", Collections.singletonMap("digest", emptyDigest));
+ mockManifestRestTemplateCall(manifestResponse, "registry-1.docker.io", null,
+ "test/image", "latest");
- resolver.getImageLabels("test/image:latest");
+ resolver.getImageLabels("test/image:latest");
+ });
}
@Test
@@ -196,7 +207,7 @@ public void getImageLabelsWithInvalidLabels() throws JsonProcessingException {
"registry-1.docker.io", null, "test/image", "123");
Map labels = resolver.getImageLabels("test/image:latest");
- assertThat(labels.size(), is(0));
+ assertThat(labels).isEmpty();
}
private void mockManifestRestTemplateCall(Map mapToReturn, String registryHost,
diff --git a/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/DockerConfigJsonSecretToRegistryConfigurationConverterTest.java b/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/DockerConfigJsonSecretToRegistryConfigurationConverterTest.java
index fe1498931f..ee8f938bf1 100644
--- a/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/DockerConfigJsonSecretToRegistryConfigurationConverterTest.java
+++ b/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/DockerConfigJsonSecretToRegistryConfigurationConverterTest.java
@@ -21,8 +21,9 @@
import java.util.HashMap;
import java.util.Map;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@@ -37,9 +38,7 @@
import org.springframework.web.client.RestTemplate;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.nullValue;
-import static org.junit.Assert.assertThat;
+
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyMap;
@@ -59,7 +58,7 @@ public class DockerConfigJsonSecretToRegistryConfigurationConverterTest {
private DockerConfigJsonSecretToRegistryConfigurationConverter converter;
- @Before
+ @BeforeEach
public void init() {
MockitoAnnotations.initMocks(this);
when(containerImageRestTemplateFactory.getContainerRestTemplate(anyBoolean(), anyBoolean(), anyMap())).thenReturn(mockRestTemplate);
@@ -76,15 +75,15 @@ public void testConvertAnonymousRegistry() throws URISyntaxException {
String b = "{\"auths\":{\"demo.repository.io\":{}}}";
Map result = converter.convert(b);
- assertThat(result.size(), is(1));
+ assertThat(result).hasSize(1);
assertThat(result.containsKey("demo.repository.io")).isTrue();
ContainerRegistryConfiguration registryConfiguration = result.get("demo.repository.io");
- assertThat(registryConfiguration.getRegistryHost(), is("demo.repository.io"));
- assertThat(registryConfiguration.getUser(), nullValue());
- assertThat(registryConfiguration.getSecret(), nullValue());
- assertThat(registryConfiguration.getAuthorizationType(), is(ContainerRegistryConfiguration.AuthorizationType.anonymous));
+ assertThat(registryConfiguration.getRegistryHost()).isEqualTo("demo.repository.io");
+ assertThat(registryConfiguration.getUser()).isNull();
+ assertThat(registryConfiguration.getSecret()).isNull();
+ assertThat(registryConfiguration.getAuthorizationType()).isEqualTo(ContainerRegistryConfiguration.AuthorizationType.anonymous);
}
@Test
@@ -97,15 +96,15 @@ public void testConvertBasicAuthRegistry() throws URISyntaxException {
String b = "{\"auths\":{\"demo.repository.io\":{\"username\":\"testuser\",\"password\":\"testpassword\",\"auth\":\"YWRtaW46SGFyYm9yMTIzNDU=\"}}}";
Map result = converter.convert(b);
- assertThat(result.size(), is(1));
- assertThat(result.containsKey("demo.repository.io")).isTrue();
+ assertThat(result).hasSize(1);
+ assertThat(result).containsKey("demo.repository.io");
ContainerRegistryConfiguration registryConfiguration = result.get("demo.repository.io");
- assertThat(registryConfiguration.getRegistryHost(), is("demo.repository.io"));
- assertThat(registryConfiguration.getUser(), is("testuser"));
- assertThat(registryConfiguration.getSecret(), is("testpassword"));
- assertThat(registryConfiguration.getAuthorizationType(), is(ContainerRegistryConfiguration.AuthorizationType.basicauth));
+ assertThat(registryConfiguration.getRegistryHost()).isEqualTo("demo.repository.io");
+ assertThat(registryConfiguration.getUser()).isEqualTo("testuser");
+ assertThat(registryConfiguration.getSecret()).isEqualTo("testpassword");
+ assertThat(registryConfiguration.getAuthorizationType()).isEqualTo(ContainerRegistryConfiguration.AuthorizationType.basicauth);
}
@Test
@@ -122,17 +121,16 @@ public void testConvertDockerHubRegistry() throws URISyntaxException {
String b = "{\"auths\":{\"demo.repository.io\":{\"username\":\"testuser\",\"password\":\"testpassword\",\"auth\":\"YWRtaW46SGFyYm9yMTIzNDU=\"}}}";
Map result = converter.convert(b);
- assertThat(result.size(), is(1));
- assertThat(result.containsKey("demo.repository.io")).isTrue();
+ assertThat(result).hasSize(1);
+ assertThat(result).containsKey("demo.repository.io");
ContainerRegistryConfiguration registryConfiguration = result.get("demo.repository.io");
- assertThat(registryConfiguration.getRegistryHost(), is("demo.repository.io"));
- assertThat(registryConfiguration.getUser(), is("testuser"));
- assertThat(registryConfiguration.getSecret(), is("testpassword"));
- assertThat(registryConfiguration.getAuthorizationType(), is(ContainerRegistryConfiguration.AuthorizationType.dockeroauth2));
- assertThat(registryConfiguration.getExtra().get("registryAuthUri"),
- is("https://demo.repository.io/service/token?service=demo-registry&scope=repository:{repository}:pull"));
+ assertThat(registryConfiguration.getRegistryHost()).isEqualTo("demo.repository.io");
+ assertThat(registryConfiguration.getUser()).isEqualTo("testuser");
+ assertThat(registryConfiguration.getSecret()).isEqualTo("testpassword");
+ assertThat(registryConfiguration.getAuthorizationType()).isEqualTo(ContainerRegistryConfiguration.AuthorizationType.dockeroauth2);
+ assertThat(registryConfiguration.getExtra().get("registryAuthUri")).isEqualTo("https://demo.repository.io/service/token?service=demo-registry&scope=repository:{repository}:pull");
}
diff --git a/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/DropAuthorizationHeaderOnSignedS3RequestRedirectStrategyTest.java b/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/DropAuthorizationHeaderOnSignedS3RequestRedirectStrategyTest.java
index 0bcc0b49b7..b477ac3536 100644
--- a/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/DropAuthorizationHeaderOnSignedS3RequestRedirectStrategyTest.java
+++ b/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/DropAuthorizationHeaderOnSignedS3RequestRedirectStrategyTest.java
@@ -19,9 +19,10 @@
import java.util.Collections;
import java.util.Map;
-import org.junit.After;
-import org.junit.ClassRule;
-import org.junit.Test;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
import org.springframework.boot.test.autoconfigure.web.client.AutoConfigureWebClient;
import org.springframework.cloud.dataflow.configuration.metadata.ApplicationConfigurationMetadataResolverAutoConfiguration;
@@ -42,13 +43,13 @@
*/
public class DropAuthorizationHeaderOnSignedS3RequestRedirectStrategyTest {
- @ClassRule
+ @RegisterExtension
public final static S3SignedRedirectRequestServerResource s3SignedRedirectRequestServerResource =
new S3SignedRedirectRequestServerResource();
private AnnotationConfigApplicationContext context;
- @After
+ @AfterEach
public void clean() {
if (context != null) {
context.close();
diff --git a/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/S3SignedRedirectRequestServerResource.java b/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/S3SignedRedirectRequestServerResource.java
index 0ff2c01608..4401ec4f0e 100644
--- a/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/S3SignedRedirectRequestServerResource.java
+++ b/spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/S3SignedRedirectRequestServerResource.java
@@ -16,7 +16,10 @@
package org.springframework.cloud.dataflow.container.registry.authorization;
-import org.junit.rules.ExternalResource;
+
+import org.junit.jupiter.api.extension.AfterEachCallback;
+import org.junit.jupiter.api.extension.BeforeEachCallback;
+import org.junit.jupiter.api.extension.ExtensionContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -28,7 +31,7 @@
/**
* @author Adam J. Weigold
*/
-public class S3SignedRedirectRequestServerResource extends ExternalResource {
+public class S3SignedRedirectRequestServerResource implements BeforeEachCallback, AfterEachCallback {
private static final Logger logger = LoggerFactory.getLogger(S3SignedRedirectRequestServerResource.class);
@@ -36,12 +39,9 @@ public class S3SignedRedirectRequestServerResource extends ExternalResource {
private ConfigurableApplicationContext application;
- public S3SignedRedirectRequestServerResource() {
- super();
- }
- @Override
- protected void before() throws Throwable {
+ @Override
+ public void beforeEach(ExtensionContext context) throws Exception {
this.s3SignedRedirectServerPort = SocketUtils.findAvailableTcpPort();
@@ -56,9 +56,9 @@ protected void before() throws Throwable {
logger.info("S3 Signed Redirect Server Server is UP!");
}
- @Override
- protected void after() {
- application.stop();
+ @Override
+ public void afterEach(ExtensionContext context) throws Exception {
+ application.stop();
}
public int getS3SignedRedirectServerPort() {
diff --git a/spring-cloud-dataflow-container-registry/src/test/java/org/springframework/cloud/dataflow/container/registry/ContainerImageParserTests.java b/spring-cloud-dataflow-container-registry/src/test/java/org/springframework/cloud/dataflow/container/registry/ContainerImageParserTests.java
index a307dc434b..159872e5db 100644
--- a/spring-cloud-dataflow-container-registry/src/test/java/org/springframework/cloud/dataflow/container/registry/ContainerImageParserTests.java
+++ b/spring-cloud-dataflow-container-registry/src/test/java/org/springframework/cloud/dataflow/container/registry/ContainerImageParserTests.java
@@ -20,14 +20,14 @@
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.assertj.core.api.AssertionsForClassTypes.assertThatExceptionOfType;
/**
* @author Christian Tzolov
*/
public class ContainerImageParserTests {
- private ContainerImageParser containerImageNameParser =
+ private final ContainerImageParser containerImageNameParser =
new ContainerImageParser("test-domain.io", "tag654", "official-repo-name");
@@ -105,13 +105,13 @@ public void testParseWithDefaults() {
@Test
public void testInvalidRegistryHostName() {
- assertThrows(IllegalArgumentException.class, () ->
+ assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() ->
containerImageNameParser.parse("6666#.6:80/scdf/spring-image:123"));
}
@Test
public void testInvalidRegistryPart() {
- assertThrows(IllegalArgumentException.class, () ->
+ assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() ->
containerImageNameParser.parse("localhost:80bla/scdf/spring-image:123"));
}
}
diff --git a/spring-cloud-dataflow-container-registry/src/test/java/org/springframework/cloud/dataflow/container/registry/ContainerRegistryConfigurationPropertiesTest.java b/spring-cloud-dataflow-container-registry/src/test/java/org/springframework/cloud/dataflow/container/registry/ContainerRegistryConfigurationPropertiesTest.java
index 7d7a6b79ac..0a991dca62 100644
--- a/spring-cloud-dataflow-container-registry/src/test/java/org/springframework/cloud/dataflow/container/registry/ContainerRegistryConfigurationPropertiesTest.java
+++ b/spring-cloud-dataflow-container-registry/src/test/java/org/springframework/cloud/dataflow/container/registry/ContainerRegistryConfigurationPropertiesTest.java
@@ -19,7 +19,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
diff --git a/spring-cloud-dataflow-container-registry/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/DockerConfigJsonSecretToContainerRegistryConfigurationConverterTest.java b/spring-cloud-dataflow-container-registry/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/DockerConfigJsonSecretToContainerRegistryConfigurationConverterTest.java
index 7067da5387..bc4d2074e9 100644
--- a/spring-cloud-dataflow-container-registry/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/DockerConfigJsonSecretToContainerRegistryConfigurationConverterTest.java
+++ b/spring-cloud-dataflow-container-registry/src/test/java/org/springframework/cloud/dataflow/container/registry/authorization/DockerConfigJsonSecretToContainerRegistryConfigurationConverterTest.java
@@ -21,8 +21,8 @@
import java.util.HashMap;
import java.util.Map;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@@ -37,9 +37,7 @@
import org.springframework.web.client.RestTemplate;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.nullValue;
-import static org.junit.Assert.assertThat;
+
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyMap;
@@ -60,7 +58,7 @@ public class DockerConfigJsonSecretToContainerRegistryConfigurationConverterTest
private DockerConfigJsonSecretToRegistryConfigurationConverter converter;
- @Before
+ @BeforeEach
public void init() {
MockitoAnnotations.initMocks(this);
when(containerImageRestTemplateFactory.getContainerRestTemplate(anyBoolean(), anyBoolean(), anyMap())).thenReturn(mockRestTemplate);
@@ -77,15 +75,15 @@ public void testConvertAnonymousRegistry() throws URISyntaxException {
String b = "{\"auths\":{\"demo.repository.io\":{}}}";
Map result = converter.convert(b);
- assertThat(result.size(), is(1));
- assertThat(result.containsKey("demo.repository.io")).isTrue();
+ assertThat(result).hasSize(1);
+ assertThat(result).containsKey("demo.repository.io");
ContainerRegistryConfiguration registryConfiguration = result.get("demo.repository.io");
- assertThat(registryConfiguration.getRegistryHost(), is("demo.repository.io"));
- assertThat(registryConfiguration.getUser(), nullValue());
- assertThat(registryConfiguration.getSecret(), nullValue());
- assertThat(registryConfiguration.getAuthorizationType(), is(ContainerRegistryConfiguration.AuthorizationType.anonymous));
+ assertThat(registryConfiguration.getRegistryHost()).isEqualTo("demo.repository.io");
+ assertThat(registryConfiguration.getUser()).isNull();
+ assertThat(registryConfiguration.getSecret()).isNull();
+ assertThat(registryConfiguration.getAuthorizationType()).isEqualTo(ContainerRegistryConfiguration.AuthorizationType.anonymous);
}
@Test
@@ -98,15 +96,15 @@ public void testConvertBasicAuthRegistry() throws URISyntaxException {
String b = "{\"auths\":{\"demo.repository.io\":{\"username\":\"testuser\",\"password\":\"testpassword\",\"auth\":\"YWRtaW46SGFyYm9yMTIzNDU=\"}}}";
Map result = converter.convert(b);
- assertThat(result.size(), is(1));
- assertThat(result.containsKey("demo.repository.io")).isTrue();
+ assertThat(result).hasSize(1);
+ assertThat(result).containsKey("demo.repository.io");
ContainerRegistryConfiguration registryConfiguration = result.get("demo.repository.io");
- assertThat(registryConfiguration.getRegistryHost(), is("demo.repository.io"));
- assertThat(registryConfiguration.getUser(), is("testuser"));
- assertThat(registryConfiguration.getSecret(), is("testpassword"));
- assertThat(registryConfiguration.getAuthorizationType(), is(ContainerRegistryConfiguration.AuthorizationType.basicauth));
+ assertThat(registryConfiguration.getRegistryHost()).isEqualTo("demo.repository.io");
+ assertThat(registryConfiguration.getUser()).isEqualTo("testuser");
+ assertThat(registryConfiguration.getSecret()).isEqualTo("testpassword");
+ assertThat(registryConfiguration.getAuthorizationType()).isEqualTo(ContainerRegistryConfiguration.AuthorizationType.basicauth);
}
@Test
@@ -144,17 +142,16 @@ public void testConvertDockerHubRegistry() throws URISyntaxException {
String b = "{\"auths\":{\"demo.repository.io\":{\"username\":\"testuser\",\"password\":\"testpassword\",\"auth\":\"YWRtaW46SGFyYm9yMTIzNDU=\"}}}";
Map result = converter.convert(b);
- assertThat(result.size(), is(1));
+ assertThat(result).hasSize(1);
assertThat(result.containsKey("demo.repository.io")).isTrue();
ContainerRegistryConfiguration registryConfiguration = result.get("demo.repository.io");
- assertThat(registryConfiguration.getRegistryHost(), is("demo.repository.io"));
- assertThat(registryConfiguration.getUser(), is("testuser"));
- assertThat(registryConfiguration.getSecret(), is("testpassword"));
- assertThat(registryConfiguration.getAuthorizationType(), is(ContainerRegistryConfiguration.AuthorizationType.dockeroauth2));
- assertThat(registryConfiguration.getExtra().get("registryAuthUri"),
- is("https://demo.repository.io/service/token?service=demo-registry&scope=repository:{repository}:pull"));
+ assertThat(registryConfiguration.getRegistryHost()).isEqualTo("demo.repository.io");
+ assertThat(registryConfiguration.getUser()).isEqualTo("testuser");
+ assertThat(registryConfiguration.getSecret()).isEqualTo("testpassword");
+ assertThat(registryConfiguration.getAuthorizationType()).isEqualTo(ContainerRegistryConfiguration.AuthorizationType.dockeroauth2);
+ assertThat(registryConfiguration.getExtra().get("registryAuthUri")).isEqualTo("https://demo.repository.io/service/token?service=demo-registry&scope=repository:{repository}:pull");
}
diff --git a/spring-cloud-dataflow-core-dsl/pom.xml b/spring-cloud-dataflow-core-dsl/pom.xml
index e50ea570aa..ee700c931d 100644
--- a/spring-cloud-dataflow-core-dsl/pom.xml
+++ b/spring-cloud-dataflow-core-dsl/pom.xml
@@ -30,6 +30,16 @@
spring-boot-starter-test
test
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+ org.assertj
+ assertj-core
+ test
+
diff --git a/spring-cloud-dataflow-core-dsl/src/test/java/org/springframework/cloud/dataflow/core/dsl/NodeTests.java b/spring-cloud-dataflow-core-dsl/src/test/java/org/springframework/cloud/dataflow/core/dsl/NodeTests.java
index ff25f306d9..e861fa1443 100644
--- a/spring-cloud-dataflow-core-dsl/src/test/java/org/springframework/cloud/dataflow/core/dsl/NodeTests.java
+++ b/spring-cloud-dataflow-core-dsl/src/test/java/org/springframework/cloud/dataflow/core/dsl/NodeTests.java
@@ -17,20 +17,24 @@
import java.util.Collections;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
+
+import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
/**
* @author Oleg Zhurakousky
* @author Andy Clement
+ * @author Corneil du Plessis
*/
public class NodeTests {
@Test
public void testDestinationNodeDestinationName(){
DestinationNode node = new DestinationNode(0, 0, "foo.bar.bazz", null);
- assertEquals("foo.bar.bazz", node.getDestinationName());
+ assertThat(node.getDestinationName()).isEqualTo("foo.bar.bazz");
}
@Test
@@ -39,7 +43,7 @@ public void testDestinationNodeToString(){
ArgumentNode an2 = new ArgumentNode("abc", "'xyz'", 0, 4);
DestinationNode node = new DestinationNode(0, 4, "foo.bar.bazz", new ArgumentNode[]{an1, an2});
System.out.println(node.stringify());
- assertEquals(":foo.bar.bazz", node.toString());
+ assertThat(node.toString()).isEqualTo(":foo.bar.bazz");
}
@Test // see https://github.com/spring-cloud/spring-cloud-dataflow/issues/1568
@@ -53,6 +57,6 @@ public void testStreamNodesToString(){
DestinationNode sinkDNode = new DestinationNode(0, 0, "sink.bar.bazz", null);
SinkDestinationNode sink = new SinkDestinationNode(sinkDNode, 4);
StreamNode sNode = new StreamNode(null, "myStream", Collections.singletonList(appNode), source, sink);
- assertEquals("myStream = :source.bar.bazz > bar --foo=bar --abc='xyz' > :sink.bar.bazz", sNode.toString());
+ assertThat(sNode.toString()).isEqualTo("myStream = :source.bar.bazz > bar --foo=bar --abc='xyz' > :sink.bar.bazz");
}
}
diff --git a/spring-cloud-dataflow-core-dsl/src/test/java/org/springframework/cloud/dataflow/core/dsl/TaskParserTests.java b/spring-cloud-dataflow-core-dsl/src/test/java/org/springframework/cloud/dataflow/core/dsl/TaskParserTests.java
index 0638067930..3e987316c7 100644
--- a/spring-cloud-dataflow-core-dsl/src/test/java/org/springframework/cloud/dataflow/core/dsl/TaskParserTests.java
+++ b/spring-cloud-dataflow-core-dsl/src/test/java/org/springframework/cloud/dataflow/core/dsl/TaskParserTests.java
@@ -22,19 +22,16 @@
import java.util.Map;
import java.util.Set;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
import org.springframework.cloud.dataflow.core.dsl.graph.Graph;
import org.springframework.cloud.dataflow.core.dsl.graph.Link;
import org.springframework.cloud.dataflow.core.dsl.graph.Node;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.fail;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
/**
* Test the parser and visitor infrastructure. Check it accepts expected data and
@@ -45,6 +42,7 @@
* @author David Turanski
* @author Michael Minella
* @author Eric Bottard
+ * @author Corneil du Plessis
*/
public class TaskParserTests {
@@ -55,40 +53,40 @@ public class TaskParserTests {
@Test
public void oneApp() {
TaskNode taskNode = parse("foo");
- assertFalse(taskNode.isComposed());
+ assertThat(taskNode.isComposed()).isFalse();
TaskAppNode appNode = taskNode.getTaskApp();
- assertEquals("foo", appNode.getName());
- assertEquals(0, appNode.getArguments().length);
- assertEquals(0, appNode.startPos);
- assertEquals(3, appNode.endPos);
+ assertThat(appNode.getName()).isEqualTo("foo");
+ assertThat(appNode.getArguments().length).isEqualTo(0);
+ assertThat(appNode.startPos).isEqualTo(0);
+ assertThat(appNode.endPos).isEqualTo(3);
}
@Test
public void hyphenatedAppName() {
appNode = parse("gemfire-cq").getTaskApp();
- assertEquals("gemfire-cq:0>10", appNode.stringify(true));
+ assertThat(appNode.stringify(true)).isEqualTo("gemfire-cq:0>10");
}
@Test
public void oneAppWithParam() {
appNode = parse("foo --name=value").getTaskApp();
- assertEquals("foo --name=value:0>16", appNode.stringify(true));
+ assertThat(appNode.stringify(true)).isEqualTo("foo --name=value:0>16");
}
@Test
public void oneAppWithTwoParams() {
appNode = parse("foo --name=value --x=y").getTaskApp();
- assertEquals("foo", appNode.getName());
+ assertThat(appNode.getName()).isEqualTo("foo");
ArgumentNode[] args = appNode.getArguments();
- assertNotNull(args);
- assertEquals(2, args.length);
- assertEquals("name", args[0].getName());
- assertEquals("value", args[0].getValue());
- assertEquals("x", args[1].getName());
- assertEquals("y", args[1].getValue());
+ assertThat(args).isNotNull();
+ assertThat(args.length).isEqualTo(2);
+ assertThat(args[0].getName()).isEqualTo("name");
+ assertThat(args[0].getValue()).isEqualTo("value");
+ assertThat(args[1].getName()).isEqualTo("x");
+ assertThat(args[1].getValue()).isEqualTo("y");
- assertEquals("foo --name=value --x=y:0>22", appNode.stringify(true));
+ assertThat(appNode.stringify(true)).isEqualTo("foo --name=value --x=y:0>22");
}
@Test
@@ -96,31 +94,31 @@ public void testParameters() {
String module = "gemfire-cq --query='Select * from /Stocks where symbol=''VMW''' --regionName=foo --foo=bar";
TaskAppNode gemfireApp = parse(module).getTaskApp();
Map parameters = gemfireApp.getArgumentsAsMap();
- assertEquals(3, parameters.size());
- assertEquals("Select * from /Stocks where symbol='VMW'", parameters.get("query"));
- assertEquals("foo", parameters.get("regionName"));
- assertEquals("bar", parameters.get("foo"));
+ assertThat(parameters.size()).isEqualTo(3);
+ assertThat(parameters.get("query")).isEqualTo("Select * from /Stocks where symbol='VMW'");
+ assertThat(parameters.get("regionName")).isEqualTo("foo");
+ assertThat(parameters.get("foo")).isEqualTo("bar");
module = "test";
parameters = parse(module).getTaskApp().getArgumentsAsMap();
- assertEquals(0, parameters.size());
+ assertThat(parameters.size()).isEqualTo(0);
module = "foo --x=1 --y=two ";
parameters = parse(module).getTaskApp().getArgumentsAsMap();
- assertEquals(2, parameters.size());
- assertEquals("1", parameters.get("x"));
- assertEquals("two", parameters.get("y"));
+ assertThat(parameters.size()).isEqualTo(2);
+ assertThat(parameters.get("x")).isEqualTo("1");
+ assertThat(parameters.get("y")).isEqualTo("two");
module = "foo --x=1a2b --y=two ";
parameters = parse(module).getTaskApp().getArgumentsAsMap();
- assertEquals(2, parameters.size());
- assertEquals("1a2b", parameters.get("x"));
- assertEquals("two", parameters.get("y"));
+ assertThat(parameters.size()).isEqualTo(2);
+ assertThat(parameters.get("x")).isEqualTo("1a2b");
+ assertThat(parameters.get("y")).isEqualTo("two");
module = "foo --x=2";
parameters = parse(module).getTaskApp().getArgumentsAsMap();
- assertEquals(1, parameters.size());
- assertEquals("2", parameters.get("x"));
+ assertThat(parameters.size()).isEqualTo(1);
+ assertThat(parameters.get("x")).isEqualTo("2");
module = "--foo = bar";
try {
@@ -149,7 +147,7 @@ public void testInvalidApps() {
public void expressions_xd159() {
appNode = parse("transform --expression=--payload").getTaskApp();
Map props = appNode.getArgumentsAsMap();
- assertEquals("--payload", props.get("expression"));
+ assertThat(props.get("expression")).isEqualTo("--payload");
}
@Test
@@ -158,7 +156,7 @@ public void expressions_xd159_2() {
checkForParseError("transform --expression=new StringBuilder(payload).reverse()", DSLMessage.TASK_MORE_INPUT,
27);
appNode = parse("transform --expression='new StringBuilder(payload).reverse()'").getTaskApp();
- assertEquals("new StringBuilder(payload).reverse()", appNode.getArgumentsAsMap().get("expression"));
+ assertThat(appNode.getArgumentsAsMap().get("expression")).isEqualTo("new StringBuilder(payload).reverse()");
}
@Test
@@ -178,17 +176,17 @@ public void ensureTaskNamesValid_xd1344() {
public void expressions_xd159_3() {
appNode = parse("transform --expression='new StringBuilder(payload).reverse()'").getTaskApp();
Map props = appNode.getArgumentsAsMap();
- assertEquals("new StringBuilder(payload).reverse()", props.get("expression"));
+ assertThat(props.get("expression")).isEqualTo("new StringBuilder(payload).reverse()");
}
@Test
public void expressions_xd159_4() {
appNode = parse("transform --expression=\"'Hello, world!'\"").getTaskApp();
Map props = appNode.getArgumentsAsMap();
- assertEquals("'Hello, world!'", props.get("expression"));
+ assertThat(props.get("expression")).isEqualTo("'Hello, world!'");
appNode = parse("transform --expression='''Hello, world!'''").getTaskApp();
props = appNode.getArgumentsAsMap();
- assertEquals("'Hello, world!'", props.get("expression"));
+ assertThat(props.get("expression")).isEqualTo("'Hello, world!'");
// Prior to the change for XD-1613, this error should point to the comma:
// checkForParseError("foo | transform --expression=''Hello, world!'' | bar",
// DSLMessage.UNEXPECTED_DATA, 37);
@@ -200,21 +198,21 @@ public void expressions_xd159_4() {
public void expressions_gh1() {
appNode = parse("filter --expression=\"payload == 'foo'\"").getTaskApp();
Map props = appNode.getArgumentsAsMap();
- assertEquals("payload == 'foo'", props.get("expression"));
+ assertThat(props.get("expression")).isEqualTo("payload == 'foo'");
}
@Test
public void expressions_gh1_2() {
appNode = parse("filter --expression='new Foo()'").getTaskApp();
Map props = appNode.getArgumentsAsMap();
- assertEquals("new Foo()", props.get("expression"));
+ assertThat(props.get("expression")).isEqualTo("new Foo()");
}
@Test
public void errorCases01() {
checkForParseError(".", DSLMessage.EXPECTED_APPNAME, 0, ".");
- assertEquals("a-_", parse("foo", "a-_", true).getTaskApp().getName());
- assertEquals("a_b", parse("foo", "a_b", true).getTaskApp().getName());
+ assertThat(parse("foo", "a-_", true).getTaskApp().getName()).isEqualTo("a-_");
+ assertThat(parse("foo", "a_b", true).getTaskApp().getName()).isEqualTo("a_b");
checkForParseError(";", DSLMessage.EXPECTED_APPNAME, 0, ";");
}
@@ -272,10 +270,10 @@ public void testComposedOptionNameErros() {
@Test
public void testXD2416() {
appNode = parse("transform --expression='payload.replace(\"abc\", \"\")'").getTaskApp();
- assertEquals(appNode.getArgumentsAsMap().get("expression"), "payload.replace(\"abc\", \"\")");
+ assertThat(appNode.getArgumentsAsMap().get("expression")).isEqualTo("payload.replace(\"abc\", \"\")");
appNode = parse("transform --expression='payload.replace(\"abc\", '''')'").getTaskApp();
- assertEquals(appNode.getArgumentsAsMap().get("expression"), "payload.replace(\"abc\", '')");
+ assertThat(appNode.getArgumentsAsMap().get("expression")).isEqualTo("payload.replace(\"abc\", '')");
}
@Test
@@ -294,9 +292,9 @@ private void checkForIllegalTaskName(String taskName, String taskDef) {
fail("expected to fail but parsed " + appNode.stringify());
}
catch (ParseException e) {
- assertEquals(DSLMessage.ILLEGAL_TASK_NAME, e.getMessageCode());
- assertEquals(0, e.getPosition());
- assertEquals(taskName, e.getInserts()[0]);
+ assertThat(e.getMessageCode()).isEqualTo(DSLMessage.ILLEGAL_TASK_NAME);
+ assertThat(e.getPosition()).isEqualTo(0);
+ assertThat(e.getInserts()[0]).isEqualTo(taskName);
}
}
@@ -304,101 +302,91 @@ private void checkForIllegalTaskName(String taskName, String taskDef) {
public void executableDsl() {
TaskNode ctn = parse("foo", "appA && appB", true);
List taskApps = ctn.getTaskApps();
- assertEquals("appA", taskApps.get(0).getName());
- assertEquals("foo-appA", taskApps.get(0).getExecutableDSLName());
- assertEquals("appB", taskApps.get(1).getName());
- assertEquals("foo-appB", taskApps.get(1).getExecutableDSLName());
+ assertThat(taskApps.get(0).getName()).isEqualTo("appA");
+ assertThat(taskApps.get(0).getExecutableDSLName()).isEqualTo("foo-appA");
+ assertThat(taskApps.get(1).getName()).isEqualTo("appB");
+ assertThat(taskApps.get(1).getExecutableDSLName()).isEqualTo("foo-appB");
ctn = parse("bar", "appC && goo: appC", true);
taskApps = ctn.getTaskApps();
- assertEquals("appC", taskApps.get(0).getName());
- assertEquals("bar-appC", taskApps.get(0).getExecutableDSLName());
- assertEquals("appC", taskApps.get(1).getName());
- assertEquals("bar-goo", taskApps.get(1).getExecutableDSLName());
+ assertThat(taskApps.get(0).getName()).isEqualTo("appC");
+ assertThat(taskApps.get(0).getExecutableDSLName()).isEqualTo("bar-appC");
+ assertThat(taskApps.get(1).getName()).isEqualTo("appC");
+ assertThat(taskApps.get(1).getExecutableDSLName()).isEqualTo("bar-goo");
// flows
- assertEquals("foo-appA", parse("foo", "appA", true).toExecutableDSL());
- assertEquals("foo-appA && foo-appB", parse("foo", "appA && appB", true).toExecutableDSL());
- assertEquals("foo-appA && foo-appB && foo-appC", parse("foo", "appA && appB && appC", true).toExecutableDSL());
+ assertThat(parse("foo", "appA", true).toExecutableDSL()).isEqualTo("foo-appA");
+ assertThat(parse("foo", "appA && appB", true).toExecutableDSL()).isEqualTo("foo-appA && foo-appB");
+ assertThat(parse("foo", "appA && appB && appC", true).toExecutableDSL()).isEqualTo("foo-appA && foo-appB && foo-appC");
assertTaskApps("foo", "appA", "foo-appA");
assertTaskApps("foo", "appA && appB", "foo-appA", "foo-appB");
assertTaskApps("foo", "appA && appB && appC", "foo-appA", "foo-appB", "foo-appC");
// arguments
- assertEquals("foo-appA", parse("foo", "appA --p1=v1 --p2=v2", true).toExecutableDSL());
- assertEquals("foo-appA && foo-appB", parse("foo", "appA --p2=v2 && appB --p3=v3", true).toExecutableDSL());
+ assertThat(parse("foo", "appA --p1=v1 --p2=v2", true).toExecutableDSL()).isEqualTo("foo-appA");
+ assertThat(parse("foo", "appA --p2=v2 && appB --p3=v3", true).toExecutableDSL()).isEqualTo("foo-appA && foo-appB");
assertTaskApps("foo", "appA --p1=v2", "foo-appA:p1=v2");
assertTaskApps("foo", "appA --p1=v2 && goo: appB --p2=v2", "foo-appA:p1=v2", "foo-goo:p2=v2");
assertTaskApps("foo", "appA 0->x:appA --p1=v1", "foo-appA", "foo-x:p1=v1");
// labels
- assertEquals("bar-goo", parse("bar", "goo:appA", true).toExecutableDSL());
- assertEquals("fo-aaa && fo-bbb", parse("fo", "aaa: appA && bbb: appA", true).toExecutableDSL());
+ assertThat(parse("bar", "goo:appA", true).toExecutableDSL()).isEqualTo("bar-goo");
+ assertThat(parse("fo", "aaa: appA && bbb: appA", true).toExecutableDSL()).isEqualTo("fo-aaa && fo-bbb");
assertTaskApps("bar", "goo:appA", "bar-goo");
assertTaskApps("bar", "appA && goo: appA", "bar-appA", "bar-goo");
// transitions
- assertEquals("foo-appA 'c'->foo-appC && foo-appB",
- parse("foo", "appA 'c'->appC && appB", true).toExecutableDSL());
- assertEquals("foo-appA 'c'->foo-appC 'd'->foo-appD && foo-appB",
- parse("foo", "appA 'c'->appC 'd'->appD && " + "appB", true).toExecutableDSL());
- assertEquals("foo-appA 1->foo-appC 2->foo-appD && foo-appB",
- parse("foo", "appA 1->appC 2->appD && appB", true).toExecutableDSL());
- assertEquals("foo-aaa 1->foo-appC 2->:aaa", parse("foo", "aaa: appA 1->appC 2->:aaa", true).toExecutableDSL());
+ assertThat(parse("foo", "appA 'c'->appC && appB", true).toExecutableDSL()).isEqualTo("foo-appA 'c'->foo-appC && foo-appB");
+ assertThat(parse("foo", "appA 'c'->appC 'd'->appD && " + "appB", true).toExecutableDSL()).isEqualTo("foo-appA 'c'->foo-appC 'd'->foo-appD && foo-appB");
+ assertThat(parse("foo", "appA 1->appC 2->appD && appB", true).toExecutableDSL()).isEqualTo("foo-appA 1->foo-appC 2->foo-appD && foo-appB");
+ assertThat(parse("foo", "aaa: appA 1->appC 2->:aaa", true).toExecutableDSL()).isEqualTo("foo-aaa 1->foo-appC 2->:aaa");
// splits
- assertEquals("", parse("foo", "", true).toExecutableDSL());
- assertEquals("",
- parse("foo", "", true).toExecutableDSL());
- assertEquals("< || foo-appB>",
- parse("foo", "< || " + "appB>", true).toExecutableDSL());
- assertEquals("< || foo-appB>",
- parse("foo", "< || appB>", true).toExecutableDSL());
+ assertThat(parse("foo", "", true).toExecutableDSL()).isEqualTo("");
+ assertThat(parse("foo", "", true).toExecutableDSL()).isEqualTo("");
+ assertThat(parse("foo", "< || " + "appB>", true).toExecutableDSL()).isEqualTo("< || foo-appB>");
+ assertThat(parse("foo", "< || appB>", true).toExecutableDSL()).isEqualTo("< || foo-appB>");
// splits and flows
- assertEquals("foo-AAA && foo-FFF 'FAILED'->foo-EEE && && foo-DDD",
- parse("foo", "AAA && " + "FFF 'FAILED' -> EEE && && DDD", true).toExecutableDSL());
+ assertThat(parse("foo", "AAA && " + "FFF 'FAILED' -> EEE && && DDD", true).toExecutableDSL()).isEqualTo("foo-AAA && foo-FFF 'FAILED'->foo-EEE && && foo-DDD");
assertTaskApps("foo", "AAA && FFF 'FAILED' -> EEE && && DDD", "foo-AAA", "foo-FFF", "foo-EEE",
"foo-BBB", "foo-CCC", "foo-DDD");
- assertEquals(" && ", parse(" && ", true).toExecutableDSL());
- assertEquals(" && ",
- parse(" && ", true).toExecutableDSL());
- assertEquals(" && test-D", parse(" && D", true).toExecutableDSL());
- assertEquals(">", parse(">", true).toExecutableDSL());
- assertEquals(">", parse(">", true).toExecutableDSL());
+ assertThat(parse(" && ", true).toExecutableDSL()).isEqualTo(" && ");
+ assertThat(parse(" && ", true).toExecutableDSL()).isEqualTo(" && ");
+ assertThat(parse(" && D", true).toExecutableDSL()).isEqualTo(" && test-D");
+ assertThat(parse(">", true).toExecutableDSL()).isEqualTo(">");
+ assertThat(parse(">", true).toExecutableDSL()).isEqualTo(">");
ctn = parse("AAA 0->BBB");
- List transitions = ((TaskAppNode) ((FlowNode) ctn.getSequences().get(0)).getSeriesElement(0))
+ List transitions = ((TaskAppNode) ctn.getSequences().get(0).getSeriesElement(0))
.getTransitions();
- assertEquals("0", transitions.get(0).getStatusToCheckInDSLForm());
+ assertThat(transitions.get(0).getStatusToCheckInDSLForm()).isEqualTo("0");
ctn = parse("AAA '0'->BBB");
- transitions = ((TaskAppNode) ((FlowNode) ctn.getSequences().get(0)).getSeriesElement(0)).getTransitions();
- assertEquals("'0'", transitions.get(0).getStatusToCheckInDSLForm());
+ transitions = ((TaskAppNode) ctn.getSequences().get(0).getSeriesElement(0)).getTransitions();
+ assertThat(transitions.get(0).getStatusToCheckInDSLForm()).isEqualTo("'0'");
ctn = parse("AAA *->BBB '*'->CCC");
- transitions = ((TaskAppNode) ((FlowNode) ctn.getSequences().get(0)).getSeriesElement(0)).getTransitions();
- assertEquals("*", transitions.get(0).getStatusToCheckInDSLForm());
- assertEquals("'*'", transitions.get(1).getStatusToCheckInDSLForm());
+ transitions = ((TaskAppNode) ctn.getSequences().get(0).getSeriesElement(0)).getTransitions();
+ assertThat(transitions.get(0).getStatusToCheckInDSLForm()).isEqualTo("*");
+ assertThat(transitions.get(1).getStatusToCheckInDSLForm()).isEqualTo("'*'");
- assertEquals("test-AAA 'failed'->test-BBB *->test-CCC",
- parse("AAA 'failed' -> BBB * -> CCC").toExecutableDSL());
- assertEquals("test-AAA 'failed'->test-BBB '*'->test-CCC",
- parse("AAA 'failed' -> BBB '*' -> CCC").toExecutableDSL());
- assertEquals("test-AAA 1->test-BBB 2->test-CCC", parse("AAA 1 -> BBB 2 -> CCC").toExecutableDSL());
+ assertThat(parse("AAA 'failed' -> BBB * -> CCC").toExecutableDSL()).isEqualTo("test-AAA 'failed'->test-BBB *->test-CCC");
+ assertThat(parse("AAA 'failed' -> BBB '*' -> CCC").toExecutableDSL()).isEqualTo("test-AAA 'failed'->test-BBB '*'->test-CCC");
+ assertThat(parse("AAA 1 -> BBB 2 -> CCC").toExecutableDSL()).isEqualTo("test-AAA 1->test-BBB 2->test-CCC");
}
@Test
public void isComposedTask() {
ctn = parse("appA 'foo' -> appB");
- assertTrue(ctn.isComposed());
- assertNull(ctn.getTaskApp());
+ assertThat(ctn.isComposed()).isTrue();
+ assertThat(ctn.getTaskApp()).isNull();
assertGraph("[0:START][1:appA][2:appB][3:END][0-1][foo:1-2][1-3][2-3]", "appA 'foo' -> appB");
ctn = parse("appA");
- assertFalse(ctn.isComposed());
- assertNotNull(ctn.getTaskApp());
+ assertThat(ctn.isComposed()).isFalse();
+ assertThat(ctn.getTaskApp()).isNotNull();
}
@Test
@@ -432,35 +420,35 @@ public void tokenStreams() {
@Test
public void singleApp() {
ctn = parse("FooApp");
- assertEquals("FooApp", ctn.getTaskText());
- assertEquals(0, ctn.getStartPos());
- assertEquals(6, ctn.getEndPos());
- assertEquals("FooApp", ctn.stringify());
+ assertThat(ctn.getTaskText()).isEqualTo("FooApp");
+ assertThat(ctn.getStartPos()).isEqualTo(0);
+ assertThat(ctn.getEndPos()).isEqualTo(6);
+ assertThat(ctn.stringify()).isEqualTo("FooApp");
LabelledTaskNode node = ctn.getStart();
- assertFalse(node.isSplit());
- assertTrue(node.isFlow());
+ assertThat(node.isSplit()).isFalse();
+ assertThat(node.isFlow()).isTrue();
assertFlow(node, "FooApp");
- assertTrue(((FlowNode) node).getSeriesElement(0).isTaskApp());
+ assertThat(node.getSeriesElement(0).isTaskApp()).isTrue();
}
@Test
public void twoAppFlow() {
ctn = parse("FooApp && BarApp");
- assertEquals("FooApp && BarApp", ctn.getTaskText());
- assertEquals(0, ctn.getStartPos());
- assertEquals(18, ctn.getEndPos());
- assertEquals("FooApp && BarApp", ctn.stringify());
+ assertThat(ctn.getTaskText()).isEqualTo("FooApp && BarApp");
+ assertThat(ctn.getStartPos()).isEqualTo(0);
+ assertThat(ctn.getEndPos()).isEqualTo(18);
+ assertThat(ctn.stringify()).isEqualTo("FooApp && BarApp");
LabelledTaskNode node = ctn.getStart();
- assertFalse(node.isSplit());
- assertTrue(node.isFlow());
- assertFalse(node.isTaskApp());
+ assertThat(node.isSplit()).isFalse();
+ assertThat(node.isFlow()).isTrue();
+ assertThat(node.isTaskApp()).isFalse();
FlowNode flow = (FlowNode) node;
List series = flow.getSeries();
- assertEquals(2, series.size());
- assertEquals(2, flow.getSeriesLength());
+ assertThat(series.size()).isEqualTo(2);
+ assertThat(flow.getSeriesLength()).isEqualTo(2);
assertTaskApp(series.get(0), "FooApp");
assertTaskApp(flow.getSeriesElement(0), "FooApp");
assertTaskApp(series.get(1), "BarApp");
@@ -491,21 +479,21 @@ public void appsInTaskDef() {
public void oneAppSplit() {
ctn = parse("< FooApp>");
- assertEquals("< FooApp>", ctn.getTaskText());
- assertEquals(0, ctn.getStartPos());
- assertEquals(9, ctn.getEndPos());
- assertEquals("", ctn.stringify());
+ assertThat(ctn.getTaskText()).isEqualTo("< FooApp>");
+ assertThat(ctn.getStartPos()).isEqualTo(0);
+ assertThat(ctn.getEndPos()).isEqualTo(9);
+ assertThat(ctn.stringify()).isEqualTo("");
LabelledTaskNode node = ctn.getStart();
- assertTrue(node.isFlow());
- node = ((FlowNode) node).getSeriesElement(0);
- assertTrue(node.isSplit());
- assertFalse(node.isTaskApp());
+ assertThat(node.isFlow()).isTrue();
+ node = node.getSeriesElement(0);
+ assertThat(node.isSplit()).isTrue();
+ assertThat(node.isTaskApp()).isFalse();
SplitNode split = (SplitNode) node;
List series = split.getSeries();
- assertEquals(1, series.size());
- assertEquals(1, split.getSeriesLength());
+ assertThat(series.size()).isEqualTo(1);
+ assertThat(split.getSeriesLength()).isEqualTo(1);
assertFlow(series.get(0), "FooApp");
assertFlow(split.getSeriesElement(0), "FooApp");
}
@@ -514,21 +502,21 @@ public void oneAppSplit() {
public void twoAppSplit() {
ctn = parse("< FooApp || BarApp>");
- assertEquals("< FooApp || BarApp>", ctn.getTaskText());
- assertEquals(0, ctn.getStartPos());
- assertEquals(23, ctn.getEndPos());
- assertEquals("", ctn.stringify());
+ assertThat(ctn.getTaskText()).isEqualTo("< FooApp || BarApp>");
+ assertThat(ctn.getStartPos()).isEqualTo(0);
+ assertThat(ctn.getEndPos()).isEqualTo(23);
+ assertThat(ctn.stringify()).isEqualTo("");
LabelledTaskNode node = ctn.getStart();
- assertTrue(node.isFlow());
- node = ((FlowNode) node).getSeriesElement(0);
- assertTrue(node.isSplit());
- assertFalse(node.isTaskApp());
+ assertThat(node.isFlow()).isTrue();
+ node = node.getSeriesElement(0);
+ assertThat(node.isSplit()).isTrue();
+ assertThat(node.isTaskApp()).isFalse();
SplitNode split = (SplitNode) node;
List series = split.getSeries();
- assertEquals(2, series.size());
- assertEquals(2, split.getSeriesLength());
+ assertThat(series.size()).isEqualTo(2);
+ assertThat(split.getSeriesLength()).isEqualTo(2);
assertFlow(series.get(0), "FooApp");
assertFlow(split.getSeriesElement(0), "FooApp");
assertFlow(series.get(1), "BarApp");
@@ -538,93 +526,93 @@ public void twoAppSplit() {
@Test
public void appWithOneTransition() {
ctn = parse("App1 0->App2");
- assertEquals("test", ctn.getName());
- assertEquals("App1 0->App2", ctn.getTaskText());
- assertEquals(0, ctn.getStartPos());
- assertEquals(12, ctn.getEndPos());
- assertEquals("App1 0->App2", ctn.stringify());
+ assertThat(ctn.getName()).isEqualTo("test");
+ assertThat(ctn.getTaskText()).isEqualTo("App1 0->App2");
+ assertThat(ctn.getStartPos()).isEqualTo(0);
+ assertThat(ctn.getEndPos()).isEqualTo(12);
+ assertThat(ctn.stringify()).isEqualTo("App1 0->App2");
LabelledTaskNode firstNode = ctn.getStart();
- assertTrue(firstNode.isFlow());
- List transitions = ((TaskAppNode) ((FlowNode) firstNode).getSeriesElement(0)).getTransitions();
- assertEquals(1, transitions.size());
+ assertThat(firstNode.isFlow()).isTrue();
+ List transitions = ((TaskAppNode) firstNode.getSeriesElement(0)).getTransitions();
+ assertThat(transitions.size()).isEqualTo(1);
TransitionNode transition = transitions.get(0);
- assertEquals("0", transition.getStatusToCheck());
- assertEquals("App2", transition.getTargetDslText());
- assertEquals(5, transition.getStartPos());
- assertEquals(12, transition.getEndPos());
+ assertThat(transition.getStatusToCheck()).isEqualTo("0");
+ assertThat(transition.getTargetDslText()).isEqualTo("App2");
+ assertThat(transition.getStartPos()).isEqualTo(5);
+ assertThat(transition.getEndPos()).isEqualTo(12);
}
@Test
public void appWithTwoTransitions() {
ctn = parse("App1 0->App2 'abc' -> App3");
- assertEquals("App1 0->App2 'abc' -> App3", ctn.getTaskText());
- assertEquals(0, ctn.getStartPos());
- assertEquals(28, ctn.getEndPos());
- assertEquals("App1 0->App2 'abc'->App3", ctn.stringify());
+ assertThat(ctn.getTaskText()).isEqualTo("App1 0->App2 'abc' -> App3");
+ assertThat(ctn.getStartPos()).isEqualTo(0);
+ assertThat(ctn.getEndPos()).isEqualTo(28);
+ assertThat(ctn.stringify()).isEqualTo("App1 0->App2 'abc'->App3");
LabelledTaskNode node = ctn.getStart();
- assertTrue(node.isFlow());
- node = ((FlowNode) node).getSeriesElement(0);
+ assertThat(node.isFlow()).isTrue();
+ node = node.getSeriesElement(0);
List transitions = ((TaskAppNode) node).getTransitions();
- assertEquals(2, transitions.size());
+ assertThat(transitions.size()).isEqualTo(2);
TransitionNode transition = transitions.get(0);
- assertEquals("0", transition.getStatusToCheck());
- assertTrue(transition.isExitCodeCheck());
- assertEquals("App2", transition.getTargetDslText());
- assertEquals(5, transition.getStartPos());
- assertEquals(12, transition.getEndPos());
+ assertThat(transition.getStatusToCheck()).isEqualTo("0");
+ assertThat(transition.isExitCodeCheck()).isTrue();
+ assertThat(transition.getTargetDslText()).isEqualTo("App2");
+ assertThat(transition.getStartPos()).isEqualTo(5);
+ assertThat(transition.getEndPos()).isEqualTo(12);
transition = transitions.get(1);
- assertEquals("abc", transition.getStatusToCheck());
- assertFalse(transition.isExitCodeCheck());
- assertEquals("App3", transition.getTargetDslText());
- assertEquals(13, transition.getStartPos());
- assertEquals(28, transition.getEndPos());
+ assertThat(transition.getStatusToCheck()).isEqualTo("abc");
+ assertThat(transition.isExitCodeCheck()).isFalse();
+ assertThat(transition.getTargetDslText()).isEqualTo("App3");
+ assertThat(transition.getStartPos()).isEqualTo(13);
+ assertThat(transition.getEndPos()).isEqualTo(28);
}
@Test
public void appWithWildcardTransitions() {
ctn = parse("App1 *->App2 '*'->App3");
- assertEquals("App1 *->App2 '*'->App3", ctn.getTaskText());
- assertEquals(0, ctn.getStartPos());
- assertEquals(22, ctn.getEndPos());
- assertEquals("App1 *->App2 '*'->App3", ctn.stringify());
+ assertThat(ctn.getTaskText()).isEqualTo("App1 *->App2 '*'->App3");
+ assertThat(ctn.getStartPos()).isEqualTo(0);
+ assertThat(ctn.getEndPos()).isEqualTo(22);
+ assertThat(ctn.stringify()).isEqualTo("App1 *->App2 '*'->App3");
LabelledTaskNode node = ctn.getStart();
- node = ((FlowNode) node).getSeriesElement(0);
- assertTrue(node.isTaskApp());
+ node = node.getSeriesElement(0);
+ assertThat(node.isTaskApp()).isTrue();
List transitions = ((TaskAppNode) node).getTransitions();
- assertEquals(2, transitions.size());
+ assertThat(transitions.size()).isEqualTo(2);
TransitionNode transition = transitions.get(0);
- assertEquals("*", transition.getStatusToCheck());
- assertTrue(transition.isExitCodeCheck());
- assertEquals("App2", transition.getTargetDslText());
- assertEquals(5, transition.getStartPos());
- assertEquals(12, transition.getEndPos());
+ assertThat(transition.getStatusToCheck()).isEqualTo("*");
+ assertThat(transition.isExitCodeCheck()).isTrue();
+ assertThat(transition.getTargetDslText()).isEqualTo("App2");
+ assertThat(transition.getStartPos()).isEqualTo(5);
+ assertThat(transition.getEndPos()).isEqualTo(12);
transition = transitions.get(1);
- assertEquals("*", transition.getStatusToCheck());
- assertFalse(transition.isExitCodeCheck());
- assertEquals("App3", transition.getTargetDslText());
- assertEquals(13, transition.getStartPos());
- assertEquals(22, transition.getEndPos());
+ assertThat(transition.getStatusToCheck()).isEqualTo("*");
+ assertThat(transition.isExitCodeCheck()).isFalse();
+ assertThat(transition.getTargetDslText()).isEqualTo("App3");
+ assertThat(transition.getStartPos()).isEqualTo(13);
+ assertThat(transition.getEndPos()).isEqualTo(22);
}
@Test
public void appWithLabelReferenceTransition() {
ctn = parse("App1 'foo'->:something", false);
- assertEquals("App1 'foo'->:something", ctn.getTaskText());
- assertEquals(0, ctn.getStartPos());
- assertEquals(22, ctn.getEndPos());
- assertEquals("App1 'foo'->:something", ctn.stringify());
+ assertThat(ctn.getTaskText()).isEqualTo("App1 'foo'->:something");
+ assertThat(ctn.getStartPos()).isEqualTo(0);
+ assertThat(ctn.getEndPos()).isEqualTo(22);
+ assertThat(ctn.stringify()).isEqualTo("App1 'foo'->:something");
LabelledTaskNode firstNode = ctn.getStart();
assertFlow(firstNode, "App1");
- List transitions = ((TaskAppNode) ((FlowNode) firstNode).getSeriesElement(0)).getTransitions();
- assertEquals(1, transitions.size());
+ List transitions = ((TaskAppNode) firstNode.getSeriesElement(0)).getTransitions();
+ assertThat(transitions.size()).isEqualTo(1);
TransitionNode transition = transitions.get(0);
- assertEquals("foo", transition.getStatusToCheck());
- assertFalse(transition.isExitCodeCheck());
- assertEquals(":something", transition.getTargetDslText());
- assertEquals("something", transition.getTargetLabel());
- assertEquals(5, transition.getStartPos());
- assertEquals(22, transition.getEndPos());
+ assertThat(transition.getStatusToCheck()).isEqualTo("foo");
+ assertThat(transition.isExitCodeCheck()).isFalse();
+ assertThat(transition.getTargetDslText()).isEqualTo(":something");
+ assertThat(transition.getTargetLabel()).isEqualTo("something");
+ assertThat(transition.getStartPos()).isEqualTo(5);
+ assertThat(transition.getEndPos()).isEqualTo(22);
}
@Test
@@ -640,29 +628,29 @@ public void splitMainComposedTaskOverMultipleLines() {
ctn = parse("FooApp\n 0\n->:a\n 1->:b\n &&\nBarApp 2->:c 3->:d", false);
assertFlow(ctn.getStart(), "FooApp", "BarApp");
ctn = parse("");
- assertSplit(((FlowNode) ctn.getStart()).getSeriesElement(0), "FooApp", "BarApp");
+ assertSplit(ctn.getStart().getSeriesElement(0), "FooApp", "BarApp");
ctn = parse("<\nFooApp ||\nBarApp\n>");
- assertSplit(((FlowNode) ctn.getStart()).getSeriesElement(0), "FooApp", "BarApp");
+ assertSplit(ctn.getStart().getSeriesElement(0), "FooApp", "BarApp");
}
@Test
public void labelledElement() {
ctn = parse("foo: appA");
LabelledTaskNode start = ctn.getStart();
- assertEquals("foo", start.getLabelString());
+ assertThat(start.getLabelString()).isEqualTo("foo");
FlowNode f = (FlowNode) start;
- assertEquals("foo", f.getLabelString());
- assertEquals("appA", ((TaskAppNode) f.getSeriesElement(0)).getName());
+ assertThat(f.getLabelString()).isEqualTo("foo");
+ assertThat(((TaskAppNode) f.getSeriesElement(0)).getName()).isEqualTo("appA");
ctn = parse("foo: ");
start = ctn.getStart();
- assertEquals("foo", start.getLabelString());
- SplitNode s = (SplitNode) ((FlowNode) start).getSeriesElement(0);
+ assertThat(start.getLabelString()).isEqualTo("foo");
+ SplitNode s = (SplitNode) start.getSeriesElement(0);
assertSplit(s, "appA", "appB");
ctn = parse("foo: appA && appB");
start = ctn.getStart();
- assertEquals("foo", start.getLabelString());
+ assertThat(start.getLabelString()).isEqualTo("foo");
assertFlow(start, "appA", "appB");
}
@@ -704,7 +692,7 @@ public void twoReferencesToSecondarySequence() {
+ "[0-1][1-2][2-3][3-4][fail:1-9][fail2:2-9][9-10][10-4]", spec);
}
- @Ignore
+ @Disabled
@Test
public void transitionToSplit() {
String spec = "aa 'foo'->:split && bb && split: && ee";
@@ -718,18 +706,16 @@ public void transitionToNonResolvedLabel() {
String spec = "aa 'foo'->:split && bb && cc";
TaskNode ctn = parse(spec, false);
List validationProblems = ctn.validate();
- assertEquals(1, validationProblems.size());
- assertEquals(DSLMessage.TASK_VALIDATION_TRANSITION_TARGET_LABEL_UNDEFINED,
- validationProblems.get(0).getMessage());
- assertEquals(3, validationProblems.get(0).getOffset());
+ assertThat(validationProblems.size()).isEqualTo(1);
+ assertThat(validationProblems.get(0).getMessage()).isEqualTo(DSLMessage.TASK_VALIDATION_TRANSITION_TARGET_LABEL_UNDEFINED);
+ assertThat(validationProblems.get(0).getOffset()).isEqualTo(3);
spec = ":split && bb && cc || dd>";
ctn = parse(spec, false);
validationProblems = ctn.validate();
- assertEquals(1, validationProblems.size());
- assertEquals(DSLMessage.TASK_VALIDATION_TRANSITION_TARGET_LABEL_UNDEFINED,
- validationProblems.get(0).getMessage());
- assertEquals(4, validationProblems.get(0).getOffset());
+ assertThat(validationProblems.size()).isEqualTo(1);
+ assertThat(validationProblems.get(0).getMessage()).isEqualTo(DSLMessage.TASK_VALIDATION_TRANSITION_TARGET_LABEL_UNDEFINED);
+ assertThat(validationProblems.get(0).getOffset()).isEqualTo(4);
}
@Test
@@ -737,52 +723,50 @@ public void visitors() {
ctn = parse("appA");
TestVisitor tv = new TestVisitor();
ctn.accept(tv);
- assertEquals(">SN[0] >F =F >TA =TA[appA] SN[0] >F =F >TA =TA[appA] SN[foo: 0] >F =F[foo:] >TA =TA[foo: appA] SN[foo: 0] >F =F[foo:] >TA =TA[foo: appA] SN[0] >F =F >TA =TA[appA] TA =TA[appB] SN[0] >F =F >TA =TA[appA] TA =TA[appB] ");
tv.reset();
ctn.accept(tv);
- assertEquals(">SN[0] >F =F >S =S >F =F >TA =TA[appA] F =F >TA =TA[appB] SN[0] >F =F >S =S >F =F >TA =TA[appA] F =F >TA =TA[appB] ");
tv.reset();
ctn.accept(tv);
- assertEquals(">SN[0] >F =F >S =S >F =F >TA =TA[appA] TA =TA[appB] F =F >TA =TA[appC] SN[0] >F =F >S =S >F =F >TA =TA[appA] TA =TA[appB] F =F >TA =TA[appC] :foo", false);
tv.reset();
ctn.accept(tv);
- assertEquals(">SN[0] >F =F >TA =TA[appA] >T =T[0->:foo] SN[0] >F =F >TA =TA[appA] >T =T[0->:foo] appB");
tv.reset();
ctn.accept(tv);
- assertEquals(">SN[0] >F =F >TA =TA[appA] >T =T[0->appB] SN[0] >F =F >TA =TA[appA] >T =T[0->appB] SN[0] >F =F >TA =TA[appA] SN[1] >F =F >TA =TA[appB] SN[0] >F =F >TA =TA[appA] SN[1] >F =F >TA =TA[appB] :foo *->appC;foo: appD && appE", false);
assertApps(ctn.getTaskApps(), "appA", "appB", "appC", "foo:appD", "appE");
tv.reset();
ctn.accept(tv);
- assertEquals(">SN[0] >F =F >TA =TA[appA] TA =TA[appB] >T =T[0->:foo] T =T[*->appC] SN[foo: 1] >F =F[foo:] >TA =TA[foo: appD] TA =TA[appE] SN[0] >F =F >TA =TA[appA] TA =TA[appB] >T =T[0->:foo] T =T[*->appC] SN[foo: 1] >F =F[foo:] >TA =TA[foo: appD] TA =TA[appE] :foo\n *->appB\n && appE;foo: appC && appD");
LabelledTaskNode start = ctn.getStart(); // get the root of the AST starting appA
- assertNotNull(start);
+ assertThat(start).isNotNull();
List sequences = ctn.getSequences();
LabelledTaskNode labelledTaskNode = sequences.get(1);
- assertEquals("foo", labelledTaskNode.getLabelString());
+ assertThat(labelledTaskNode.getLabelString()).isEqualTo("foo");
LabelledTaskNode fooSequence = ctn.getSequenceWithLabel("foo"); // get the AST for foo: ...
- assertNotNull(fooSequence);
+ assertThat(fooSequence).isNotNull();
TestVisitor tv = new TestVisitor();
ctn.accept(tv);
- assertEquals(">SN[0] >F =F >TA =TA[appA] >T =T[0->:foo] T =T[*->appB] TA =TA[appE] SN[foo: 1] >F =F[foo:] >TA =TA[foo: appC] TA =TA[appD] SN[0] >F =F >TA =TA[appA] >T =T[0->:foo] T =T[*->appB] TA =TA[appE] SN[foo: 1] >F =F[foo:] >TA =TA[foo: appC] TA =TA[appD] problems = validator.getProblems();
- assertEquals(1, problems.size());
- assertEquals(DSLMessage.TASK_VALIDATION_SECONDARY_SEQUENCES_MUST_BE_NAMED, problems.get(0).getMessage());
- assertEquals(5, problems.get(0).getOffset());
- assertEquals("158E:(pos 5): secondary sequences must have labels or are unreachable",
- problems.get(0).toString());
- assertEquals("158E:(pos 5): secondary sequences must have labels or are unreachable\nappA;appB\n ^\n",
- problems.get(0).toStringWithContext());
+ assertThat(problems.size()).isEqualTo(1);
+ assertThat(problems.get(0).getMessage()).isEqualTo(DSLMessage.TASK_VALIDATION_SECONDARY_SEQUENCES_MUST_BE_NAMED);
+ assertThat(problems.get(0).getOffset()).isEqualTo(5);
+ assertThat(problems.get(0).toString()).isEqualTo("158E:(pos 5): secondary sequences must have labels or are unreachable");
+ assertThat(problems.get(0).toStringWithContext()).isEqualTo("158E:(pos 5): secondary sequences must have labels or are unreachable\nappA;appB\n ^\n");
validator.reset();
ctn = parse("appA;foo: appB");
ctn.accept(validator);
- assertFalse(validator.hasProblems());
+ assertThat(validator.hasProblems()).isFalse();
validator.reset();
ctn = parse("appA;foo: appB\nappC", false);
ctn.accept(validator);
problems = validator.getProblems();
- assertEquals(1, problems.size());
- assertEquals(DSLMessage.TASK_VALIDATION_SECONDARY_SEQUENCES_MUST_BE_NAMED, problems.get(0).getMessage());
- assertEquals(15, problems.get(0).getOffset());
- assertEquals("158E:(pos 15): secondary sequences must have labels or are unreachable",
- problems.get(0).toString());
- assertEquals("158E:(pos 15): secondary sequences must have labels or are unreachable\nappC\n^\n",
- problems.get(0).toStringWithContext());
+ assertThat(problems.size()).isEqualTo(1);
+ assertThat(problems.get(0).getMessage()).isEqualTo(DSLMessage.TASK_VALIDATION_SECONDARY_SEQUENCES_MUST_BE_NAMED);
+ assertThat(problems.get(0).getOffset()).isEqualTo(15);
+ assertThat(problems.get(0).toString()).isEqualTo("158E:(pos 15): secondary sequences must have labels or are unreachable");
+ assertThat(problems.get(0).toStringWithContext()).isEqualTo("158E:(pos 15): secondary sequences must have labels or are unreachable\nappC\n^\n");
validator.reset();
ctn = parse("appA && appA", false);
ctn.accept(validator);
problems = validator.getProblems();
- assertEquals(1, problems.size());
- assertEquals(DSLMessage.TASK_VALIDATION_APP_NAME_ALREADY_IN_USE, problems.get(0).getMessage());
- assertEquals(8, problems.get(0).getOffset());
+ assertThat(problems.size()).isEqualTo(1);
+ assertThat(problems.get(0).getMessage()).isEqualTo(DSLMessage.TASK_VALIDATION_APP_NAME_ALREADY_IN_USE);
+ assertThat(problems.get(0).getOffset()).isEqualTo(8);
validator.reset();
ctn = parse("appA 'foo' -> appA", false);
ctn.accept(validator);
problems = validator.getProblems();
- assertEquals(1, problems.size());
- assertEquals(DSLMessage.TASK_VALIDATION_APP_NAME_ALREADY_IN_USE, problems.get(0).getMessage());
- assertEquals(14, problems.get(0).getOffset());
+ assertThat(problems.size()).isEqualTo(1);
+ assertThat(problems.get(0).getMessage()).isEqualTo(DSLMessage.TASK_VALIDATION_APP_NAME_ALREADY_IN_USE);
+ assertThat(problems.get(0).getOffset()).isEqualTo(14);
validator.reset();
ctn = parse("appA 'foo' -> appA: appB", false);
ctn.accept(validator);
problems = validator.getProblems();
- assertEquals(1, problems.size());
- assertEquals(DSLMessage.TASK_VALIDATION_LABEL_CLASHES_WITH_TASKAPP_NAME, problems.get(0).getMessage());
- assertEquals(14, problems.get(0).getOffset());
+ assertThat(problems.size()).isEqualTo(1);
+ assertThat(problems.get(0).getMessage()).isEqualTo(DSLMessage.TASK_VALIDATION_LABEL_CLASHES_WITH_TASKAPP_NAME);
+ assertThat(problems.get(0).getOffset()).isEqualTo(14);
validator.reset();
ctn = parse("label1: appA 'foo' -> label1: appB", false);
ctn.accept(validator);
problems = validator.getProblems();
- assertEquals(1, problems.size());
- assertEquals(DSLMessage.TASK_VALIDATION_DUPLICATE_LABEL, problems.get(0).getMessage());
- assertEquals(22, problems.get(0).getOffset());
+ assertThat(problems.size()).isEqualTo(1);
+ assertThat(problems.get(0).getMessage()).isEqualTo(DSLMessage.TASK_VALIDATION_DUPLICATE_LABEL);
+ assertThat(problems.get(0).getOffset()).isEqualTo(22);
validator.reset();
ctn = parse("label1: appA 'foo' -> label1", false);
ctn.accept(validator);
problems = validator.getProblems();
- assertEquals(1, problems.size());
- assertEquals(DSLMessage.TASK_VALIDATION_APP_NAME_CLASHES_WITH_LABEL, problems.get(0).getMessage());
- assertEquals(22, problems.get(0).getOffset());
+ assertThat(problems.size()).isEqualTo(1);
+ assertThat(problems.get(0).getMessage()).isEqualTo(DSLMessage.TASK_VALIDATION_APP_NAME_CLASHES_WITH_LABEL);
+ assertThat(problems.get(0).getOffset()).isEqualTo(22);
}
@Test
@@ -884,30 +864,30 @@ public void labels() {
// basic task
ctn = parse("aaa: appA");
LabelledTaskNode flow = ctn.getStart();
- assertEquals("aaa", flow.getLabelString());
- TaskAppNode taskApp = (TaskAppNode) ((FlowNode) flow).getSeriesElement(0);
- assertEquals("aaa", taskApp.getLabelString());
+ assertThat(flow.getLabelString()).isEqualTo("aaa");
+ TaskAppNode taskApp = (TaskAppNode) flow.getSeriesElement(0);
+ assertThat(taskApp.getLabelString()).isEqualTo("aaa");
// flows
ctn = parse("aaa: appA && bbb: appB");
- taskApp = (TaskAppNode) ((FlowNode) ctn.getStart()).getSeriesElement(1);
- assertEquals("bbb", taskApp.getLabelString());
+ taskApp = (TaskAppNode) ctn.getStart().getSeriesElement(1);
+ assertThat(taskApp.getLabelString()).isEqualTo("bbb");
// splits
ctn = parse("outer:");
- flow = (FlowNode) ctn.getStart();
- assertEquals("outer", flow.getLabelString());
+ flow = ctn.getStart();
+ assertThat(flow.getLabelString()).isEqualTo("outer");
SplitNode s = (SplitNode) flow.getSeriesElement(0);
- assertEquals("outer", s.getLabelString());
- taskApp = (TaskAppNode) (((FlowNode) s.getSeriesElement(0)).getSeriesElement(0));
- assertEquals("aaa", taskApp.getLabelString());
- taskApp = (TaskAppNode) (((FlowNode) s.getSeriesElement(1)).getSeriesElement(0));
- assertEquals("bbb", taskApp.getLabelString());
+ assertThat(s.getLabelString()).isEqualTo("outer");
+ taskApp = (TaskAppNode) (s.getSeriesElement(0).getSeriesElement(0));
+ assertThat(taskApp.getLabelString()).isEqualTo("aaa");
+ taskApp = (TaskAppNode) (s.getSeriesElement(1).getSeriesElement(0));
+ assertThat(taskApp.getLabelString()).isEqualTo("bbb");
// parentheses
ctn = parse("(aaa: appA && appB)");
- taskApp = (TaskAppNode) ((FlowNode) ctn.getStart()).getSeriesElement(0);
- assertEquals("aaa", taskApp.getLabelString());
+ taskApp = (TaskAppNode) ctn.getStart().getSeriesElement(0);
+ assertThat(taskApp.getLabelString()).isEqualTo("aaa");
checkForParseError("aaa: (appA)", DSLMessage.TASK_NO_LABELS_ON_PARENS, 5);
checkForParseError("aaa: bbb: appA", DSLMessage.NO_DOUBLE_LABELS, 5);
@@ -937,7 +917,7 @@ public void graphToText_1712() {
graph.nodes.get(2).metadata = new HashMap<>();
graph.links.get(0).properties = new HashMap<>();
graph.links.get(1).properties = new HashMap<>();
- assertEquals("timestamp", graph.toDSLText());
+ assertThat(graph.toDSLText()).isEqualTo("timestamp");
}
@Test
@@ -950,17 +930,17 @@ public void graphToText_3667() {
TaskNode ctn = parse("t1: timestamp 'FAILED'->t2: timestamp && t3: timestamp");
Graph graph = ctn.toGraph();
- assertEquals("t1: timestamp 'FAILED'->t2: timestamp && t3: timestamp", graph.toDSLText());
+ assertThat(graph.toDSLText()).isEqualTo("t1: timestamp 'FAILED'->t2: timestamp && t3: timestamp");
ctn = parse("t1: timestamp --format=aabbcc 'FAILED'->t2: timestamp && t3: timestamp --format=gghhii");
graph = ctn.toGraph();
- assertEquals("t1: timestamp --format=aabbcc 'FAILED'->t2: timestamp && t3: timestamp --format=gghhii", graph.toDSLText());
+ assertThat(graph.toDSLText()).isEqualTo("t1: timestamp --format=aabbcc 'FAILED'->t2: timestamp && t3: timestamp --format=gghhii");
ctn = parse("t1: timestamp --format=aabbcc 'FAILED'->t2: timestamp --format=ddeeff && t3: timestamp --format=gghhii");
graph = ctn.toGraph();
Node node = graph.nodes.get(2);
- assertEquals("ddeeff",node.properties.get("format"));
- assertEquals("t1: timestamp --format=aabbcc 'FAILED'->t2: timestamp --format=ddeeff && t3: timestamp --format=gghhii", graph.toDSLText());
+ assertThat(node.properties.get("format")).isEqualTo("ddeeff");
+ assertThat(graph.toDSLText()).isEqualTo("t1: timestamp --format=aabbcc 'FAILED'->t2: timestamp --format=ddeeff && t3: timestamp --format=gghhii");
assertGraph("[0:START][1:eee:timestamp:format=ttt][2:QQQQQ:timestamp:format=NOT-IN-TEXT][3:ooo:timestamp:format=yyyy][4:END][0-1][FAILED:1-2][1-3][3-4][2-4]",
"eee: timestamp --format=ttt 'FAILED'->QQQQQ: timestamp --format=NOT-IN-TEXT && ooo: timestamp --format=yyyy");
@@ -974,22 +954,22 @@ public void graphToTextSingleAppInSplit() {
assertGraph("[0:START][1:AppA][2:END][0-1][1-2]","");
TaskNode ctn = parse("");
Graph graph = ctn.toGraph();
- assertEquals("AppA", graph.toDSLText());
+ assertThat(graph.toDSLText()).isEqualTo("AppA");
assertGraph("[0:START][1:AppA][2:AppB][3:END][0-1][1-2][2-3]"," && AppB");
ctn = parse(" && AppB");
graph = ctn.toGraph();
- assertEquals("AppA && AppB", graph.toDSLText());
+ assertThat(graph.toDSLText()).isEqualTo("AppA && AppB");
assertGraph("[0:START][1:AppA][2:AppC][3:AppB][4:END][0-1][99:1-2][1-3][2-3][3-4]"," AppC> && AppB");
ctn = parse("AppC> && AppB");
graph = ctn.toGraph();
- assertEquals("AppC> && AppB", graph.toDSLText());
+ assertThat(graph.toDSLText()).isEqualTo("AppC> && AppB");
// Check it still does the right thing when the split does have multple:
ctn = parse("AppC || AppD> && AppB");
graph = ctn.toGraph();
- assertEquals("AppC || AppD> && AppB", graph.toDSLText());
+ assertThat(graph.toDSLText()).isEqualTo("AppC || AppD> && AppB");
// This is the test specifically for issue 3263
ctn = parse("T2: timestamp 'Error'->T1: timestamp> && Backwards: timestamp");
@@ -998,7 +978,7 @@ public void graphToTextSingleAppInSplit() {
assertGraph("[0:START][1:Import:timestamp][2:T2:timestamp][3:T1:timestamp][4:Backwards:timestamp][5:END][0-1][Error2:1-2][Error:1-3][1-4][2-4][3-4][4-5]",
"T2: timestamp 'Error'->T1: timestamp> && Backwards: timestamp");
graph = ctn.toGraph();
- assertEquals("T2: timestamp 'Error'->T1: timestamp> && Backwards: timestamp", graph.toDSLText());
+ assertThat(graph.toDSLText()).isEqualTo("T2: timestamp 'Error'->T1: timestamp> && Backwards: timestamp");
// This is the variant of the above without the <...>
// Now notice the links from the transition nodes go direct to END
@@ -1006,7 +986,7 @@ public void graphToTextSingleAppInSplit() {
assertGraph("[0:START][1:Import:timestamp][2:T2:timestamp][3:T1:timestamp][4:Backwards:timestamp][5:END][0-1][Error2:1-2][Error:1-3][1-4][4-5][2-5][3-5]",
"Import: timestamp 'Error2'->T2: timestamp 'Error'->T1: timestamp && Backwards: timestamp");
graph = ctn.toGraph();
- assertEquals("Import: timestamp 'Error2'->T2: timestamp 'Error'->T1: timestamp && Backwards: timestamp", graph.toDSLText());
+ assertThat(graph.toDSLText()).isEqualTo("Import: timestamp 'Error2'->T2: timestamp 'Error'->T1: timestamp && Backwards: timestamp");
}
@Test
@@ -1088,16 +1068,16 @@ public void errorExpectDoubleOr() {
public void modeError() {
try {
new TaskParser("foo", "appA --p1=v1", false, true).parse();
- fail();
+ fail("");
}
catch (CheckPointedParseException cppe) {
- assertEquals(DSLMessage.TASK_ARGUMENTS_NOT_ALLOWED_UNLESS_IN_APP_MODE, cppe.message);
+ assertThat(cppe.message).isEqualTo(DSLMessage.TASK_ARGUMENTS_NOT_ALLOWED_UNLESS_IN_APP_MODE);
}
try {
new TaskParser("foo", "appA --p1=v1", true, true).parse();
}
catch (CheckPointedParseException cppe) {
- fail();
+ fail("");
}
}
@@ -1110,7 +1090,7 @@ public void unexpectedDoubleAnd() {
public void toDSLTextTransitions() {
// [SHOULD-VALIDATE] There is no real route to bbb
String spec = "aaa '*'->$END && bbb";
- assertEquals(spec, parse(spec).toDSL());
+ assertThat(parse(spec).toDSL()).isEqualTo(spec);
assertGraph("[0:START][1:aaa][2:$END][3:bbb][4:END]" + "[0-1][*:1-2][1-3][3-4]", spec);
checkDSLToGraphAndBackToDSL(spec);
}
@@ -1169,9 +1149,9 @@ public void toDSLTextManualSync() {
@Test
public void whitespace() {
- assertEquals("A && B", parse("A&&B").stringify());
- assertEquals("", parse("").stringify());
- assertEquals("", parse("").stringify());
+ assertThat(parse("A&&B").stringify()).isEqualTo("A && B");
+ assertThat(parse("").stringify()).isEqualTo("");
+ assertThat(parse("").stringify()).isEqualTo("");
}
@Test
@@ -1192,7 +1172,7 @@ public void missingQuotes() {
@Test
public void parentheses2() {
TaskNode ctn = parse("<(jobA && jobB && jobC) || boo: jobC>");
- assertEquals("", ctn.stringify());
+ assertThat(ctn.stringify()).isEqualTo("");
}
@Test
@@ -1208,53 +1188,52 @@ public void funnyJobNames() {
public void names() {
ctn = parse("aaaa: foo");
List sequences = ctn.getSequences();
- assertEquals("aaaa", sequences.get(0).getLabelString());
+ assertThat(sequences.get(0).getLabelString()).isEqualTo("aaaa");
ctn = parse("aaaa: foo && bar");
sequences = ctn.getSequences();
- assertEquals("aaaa", sequences.get(0).getLabelString());
+ assertThat(sequences.get(0).getLabelString()).isEqualTo("aaaa");
}
@Test
public void nestedSplit1() {
TaskNode ctn = parse("< || jobC>");
- assertEquals("< || jobC>", ctn.stringify());
+ assertThat(ctn.stringify()).isEqualTo("< || jobC>");
LabelledTaskNode start = ctn.getStart();
- assertTrue(start instanceof FlowNode);
- SplitNode split = (SplitNode) ((FlowNode) start).getSeriesElement(0);
- LabelledTaskNode seriesElement = ((FlowNode) split.getSeriesElement(0)).getSeriesElement(0);
- assertTrue(seriesElement instanceof SplitNode);
+ assertInstanceOf(FlowNode.class, start);
+ SplitNode split = (SplitNode) start.getSeriesElement(0);
+ LabelledTaskNode seriesElement = split.getSeriesElement(0).getSeriesElement(0);
+ assertInstanceOf(SplitNode.class, seriesElement);
SplitNode split2 = (SplitNode) seriesElement;
- assertEquals(2, split2.getSeriesLength());
+ assertThat(split2.getSeriesLength()).isEqualTo(2);
}
@Test
public void nestedSplit2() {
TaskNode ctn = parse(" || jobD>");
- assertEquals(" || jobD>", ctn.stringify());
+ assertThat(ctn.stringify()).isEqualTo(" || jobD>");
LabelledTaskNode start = ctn.getStart();
- assertTrue(start.isFlow());
- SplitNode split = (SplitNode) ((FlowNode) start).getSeriesElement(0);
- assertEquals(3, split.getSeriesLength());
+ assertThat(start.isFlow()).isTrue();
+ SplitNode split = (SplitNode) start.getSeriesElement(0);
+ assertThat(split.getSeriesLength()).isEqualTo(3);
LabelledTaskNode seriesElement = split.getSeriesElement(1);
- SplitNode splitSeriesElement = (SplitNode) ((FlowNode) seriesElement).getSeriesElement(0);
- assertTrue(splitSeriesElement.isSplit());
- assertEquals(2, splitSeriesElement.getSeriesLength());
- assertEquals("", splitSeriesElement.stringify());
- assertEquals("jobB",
- ((TaskAppNode) ((FlowNode) splitSeriesElement.getSeriesElement(0)).getSeriesElement(0)).getName());
+ SplitNode splitSeriesElement = (SplitNode) seriesElement.getSeriesElement(0);
+ assertThat(splitSeriesElement.isSplit()).isTrue();
+ assertThat(splitSeriesElement.getSeriesLength()).isEqualTo(2);
+ assertThat(splitSeriesElement.stringify()).isEqualTo("");
+ assertThat(((TaskAppNode) splitSeriesElement.getSeriesElement(0).getSeriesElement(0)).getName()).isEqualTo("jobB");
}
@Test
public void singleTransition() {
TaskNode ctn = parse("foo 'completed'->bar");
LabelledTaskNode start = ctn.getStart();
- start = ((FlowNode) start).getSeriesElement(0);
- assertTrue(start instanceof TaskAppNode);
+ start = start.getSeriesElement(0);
+ assertInstanceOf(TaskAppNode.class, start);
TaskAppNode ta = (TaskAppNode) start;
List transitions = ta.getTransitions();
- assertEquals(1, transitions.size());
- assertEquals("completed", transitions.get(0).getStatusToCheck());
- assertEquals("bar", transitions.get(0).getTargetApp().getName());
+ assertThat(transitions.size()).isEqualTo(1);
+ assertThat(transitions.get(0).getStatusToCheck()).isEqualTo("completed");
+ assertThat(transitions.get(0).getTargetApp().getName()).isEqualTo("bar");
}
@Test
@@ -1262,13 +1241,13 @@ public void doubleTransition() {
TaskNode ctn = parse("foo 'completed'->bar 'wibble'->wobble");
LabelledTaskNode start = ctn.getStart();
assertFlow(start, "foo");
- TaskAppNode ta = (TaskAppNode) ((FlowNode) start).getSeriesElement(0);
+ TaskAppNode ta = (TaskAppNode) start.getSeriesElement(0);
List transitions = ta.getTransitions();
- assertEquals(2, transitions.size());
- assertEquals("completed", transitions.get(0).getStatusToCheck());
- assertEquals("bar", transitions.get(0).getTargetApp().getName());
- assertEquals("wibble", transitions.get(1).getStatusToCheck());
- assertEquals("wobble", transitions.get(1).getTargetApp().getName());
+ assertThat(transitions.size()).isEqualTo(2);
+ assertThat(transitions.get(0).getStatusToCheck()).isEqualTo("completed");
+ assertThat(transitions.get(0).getTargetApp().getName()).isEqualTo("bar");
+ assertThat(transitions.get(1).getStatusToCheck()).isEqualTo("wibble");
+ assertThat(transitions.get(1).getTargetApp().getName()).isEqualTo("wobble");
}
@Test
@@ -1280,85 +1259,73 @@ public void moreSophisticatedScenarios_gh712_1a() {
// https://user-images.githubusercontent.com/1562654/38313990-27662f60-37da-11e8-9106-26688d631fae.png
LabelledTaskNode start = ctn.getStart();
FlowNode f1 = (FlowNode) start;
- assertEquals(1, f1.getSeriesLength());
+ assertThat(f1.getSeriesLength()).isEqualTo(1);
SplitNode s1 = (SplitNode) f1.getSeriesElement(0);
- assertEquals(2, s1.getSeriesLength());
+ assertThat(s1.getSeriesLength()).isEqualTo(2);
// This one is just spark-yarn
assertFlow(s1.getSeriesElement(1), "spark-yarn");
// This one is a flow of a split of jdbchdfs-local/spark-client and
// spark-cluster/spark-cluster and then timestamp
FlowNode f2 = (FlowNode) s1.getSeriesElement(0);
- assertEquals(2, f2.getSeriesLength());
- assertEquals("timestamp", ((TaskAppNode) f2.getSeriesElement(1)).getName());
+ assertThat(f2.getSeriesLength()).isEqualTo(2);
+ assertThat(((TaskAppNode) f2.getSeriesElement(1)).getName()).isEqualTo("timestamp");
SplitNode s2 = (SplitNode) f2.getSeriesElement(0);
- assertEquals(2, s2.getSeriesLength());
+ assertThat(s2.getSeriesLength()).isEqualTo(2);
FlowNode s2fa = (FlowNode) s2.getSeriesElement(0);
FlowNode s2fb = (FlowNode) s2.getSeriesElement(1);
assertFlow(s2fa, "jdbchdfs-local", "spark-client");
assertFlow(s2fb, "spark-cluster", "spark-cluster");
Graph graph = ctn.toGraph();
- assertEquals(
- "[0:START][1:jdbchdfs-local][2:spark-client][3:spark-cluster][4:two:spark-cluster][5:timestamp][6:spark-yarn][7:END]"+
- "[0-1][1-2][0-3][3-4][2-5][4-5][0-6][5-7][6-7]",
- graph.toVerboseString());
+ assertThat(graph.toVerboseString()).isEqualTo("[0:START][1:jdbchdfs-local][2:spark-client][3:spark-cluster][4:two:spark-cluster][5:timestamp][6:spark-yarn][7:END]" +
+ "[0-1][1-2][0-3][3-4][2-5][4-5][0-6][5-7][6-7]");
- assertEquals(
- "< && timestamp || spark-yarn>",
- graph.toDSLText());
+ assertThat(graph.toDSLText()).isEqualTo("< && timestamp || spark-yarn>");
}
@Test
public void moreSophisticatedScenarios_gh712_1b() {
TaskNode ctn = parse("< && CC || DD>");
Graph graph = ctn.toGraph();
- assertEquals(
- "[0:START][1:AA][2:BB][3:CC][4:DD][5:END]" +
- "[0-1][0-2][1-3][2-3][0-4][3-5][4-5]",
- graph.toVerboseString());
- assertEquals("< && CC || DD>", graph.toDSLText());
+ assertThat(graph.toVerboseString()).isEqualTo("[0:START][1:AA][2:BB][3:CC][4:DD][5:END]" +
+ "[0-1][0-2][1-3][2-3][0-4][3-5][4-5]");
+ assertThat(graph.toDSLText()).isEqualTo("< && CC || DD>");
}
@Test
public void moreSophisticatedScenarios_gh712_1c() {
TaskNode ctn = parse("< && CC && DD || EE>");
Graph graph = ctn.toGraph();
- assertEquals(
- "[0:START][1:AA][2:BB][3:CC][4:DD][5:EE][6:END]" +
- "[0-1][0-2][1-3][2-3][3-4][0-5][4-6][5-6]",
- graph.toVerboseString());
- assertEquals("< && CC && DD || EE>", graph.toDSLText());
+ assertThat(graph.toVerboseString()).isEqualTo("[0:START][1:AA][2:BB][3:CC][4:DD][5:EE][6:END]" +
+ "[0-1][0-2][1-3][2-3][3-4][0-5][4-6][5-6]");
+ assertThat(graph.toDSLText()).isEqualTo("< && CC && DD || EE>");
ctn = parse("< && CC && DD || EE>");
- assertEquals("< && CC && DD || EE>", ctn.toGraph().toDSLText());
+ assertThat(ctn.toGraph().toDSLText()).isEqualTo("< && CC && DD || EE>");
}
@Test
public void moreSophisticatedScenarios_gh712_1d() {
TaskNode ctn = parse("< && AG || AB>");
- assertEquals("< && AG || AB>", ctn.toGraph().toDSLText());
+ assertThat(ctn.toGraph().toDSLText()).isEqualTo("< && AG || AB>");
// Now include a transition
ctn = parse("< AH && AF> && AG || AB>");
Graph graph = ctn.toGraph();
- assertEquals(
- "[0:START][1:AC][2:AD][3:AE][4:AH][5:AF][6:AG][7:AB][8:END]" +
- "[0-1][1-2][0-3][jumpOut:3-4][3-5][2-6][5-6][4-6][0-7][6-8][7-8]",
- graph.toVerboseString());
+ assertThat(graph.toVerboseString()).isEqualTo("[0:START][1:AC][2:AD][3:AE][4:AH][5:AF][6:AG][7:AB][8:END]" +
+ "[0-1][1-2][0-3][jumpOut:3-4][3-5][2-6][5-6][4-6][0-7][6-8][7-8]");
// Key thing to observe above is the link from [4-6] which goes from
// the transition target AH to the end of the split AG
- assertEquals("<AH && AF> && AG || AB>", graph.toDSLText());
+ assertThat(graph.toDSLText()).isEqualTo("<AH && AF> && AG || AB>");
}
@Test
public void moreSophisticatedScenarios_gh712_1e() {
TaskNode ctn = parse("< && CC && DD || && GG || HH>");
Graph graph = ctn.toGraph();
- assertEquals(
- "[0:START][1:AA][2:BB][3:CC][4:DD][5:EE][6:FF][7:GG][8:HH][9:END]" +
- "[0-1][0-2][1-3][2-3][3-4][0-5][0-6][5-7][6-7][0-8][4-9][7-9][8-9]",
- graph.toVerboseString());
- assertEquals("< && CC && DD || && GG || HH>", graph.toDSLText());
+ assertThat(graph.toVerboseString()).isEqualTo("[0:START][1:AA][2:BB][3:CC][4:DD][5:EE][6:FF][7:GG][8:HH][9:END]" +
+ "[0-1][0-2][1-3][2-3][3-4][0-5][0-6][5-7][6-7][0-8][4-9][7-9][8-9]");
+ assertThat(graph.toDSLText()).isEqualTo("< && CC && DD || && GG || HH>");
}
@Test
@@ -1366,11 +1333,9 @@ public void moreSophisticatedScenarios_gh712_1f() {
// Multiple nested splits in parallel
TaskNode ctn = parse("< && CC || && FF && GG || HH>");
Graph graph = ctn.toGraph();
- assertEquals(
- "[0:START][1:AA][2:BB][3:CC][4:DD][5:EE][6:FF][7:GG][8:HH][9:END]"+
- "[0-1][0-2][1-3][2-3][0-4][0-5][4-6][5-6][6-7][0-8][3-9][7-9][8-9]",
- graph.toVerboseString());
- assertEquals("< && CC || && FF && GG || HH>", graph.toDSLText());
+ assertThat(graph.toVerboseString()).isEqualTo("[0:START][1:AA][2:BB][3:CC][4:DD][5:EE][6:FF][7:GG][8:HH][9:END]" +
+ "[0-1][0-2][1-3][2-3][0-4][0-5][4-6][5-6][6-7][0-8][3-9][7-9][8-9]");
+ assertThat(graph.toDSLText()).isEqualTo("< && CC || && FF && GG || HH>");
}
// Case2: expecting a validation error on the parse because the second spark-cluster
@@ -1379,14 +1344,14 @@ public void moreSophisticatedScenarios_gh712_1f() {
public void moreSophisticatedScenarios_gh712_2() {
try {
parse("< && timestamp || spark-yarn>");
- fail();
+ fail("");
}
catch (TaskValidationException tve) {
List validationProblems = tve.getValidationProblems();
- assertEquals(1, validationProblems.size());
+ assertThat(validationProblems.size()).isEqualTo(1);
TaskValidationProblem tvp = validationProblems.get(0);
- assertEquals(53, tvp.getOffset());
- assertEquals(DSLMessage.TASK_VALIDATION_APP_NAME_ALREADY_IN_USE, tvp.getMessage());
+ assertThat(tvp.getOffset()).isEqualTo(53);
+ assertThat(tvp.getMessage()).isEqualTo(DSLMessage.TASK_VALIDATION_APP_NAME_ALREADY_IN_USE);
}
}
@@ -1395,40 +1360,40 @@ public void moreSophisticatedScenarios_gh712_2() {
public void moreSophisticatedScenarios_gh712_3() {
try {
parse("<1: jdbchdfs-local && spark-client && timestamp || spark-cluster && spark-cluster && timestamp || spark-yarn>");
- fail();
+ fail("");
}
catch (TaskValidationException tve) {
System.out.println(tve);
List validationProblems = tve.getValidationProblems();
- assertEquals(2, validationProblems.size());
+ assertThat(validationProblems.size()).isEqualTo(2);
TaskValidationProblem tvp = validationProblems.get(0);
- assertEquals(68, tvp.getOffset());
- assertEquals(DSLMessage.TASK_VALIDATION_APP_NAME_ALREADY_IN_USE, tvp.getMessage());
+ assertThat(tvp.getOffset()).isEqualTo(68);
+ assertThat(tvp.getMessage()).isEqualTo(DSLMessage.TASK_VALIDATION_APP_NAME_ALREADY_IN_USE);
tvp = validationProblems.get(1);
- assertEquals(85, tvp.getOffset());
- assertEquals(DSLMessage.TASK_VALIDATION_APP_NAME_ALREADY_IN_USE, tvp.getMessage());
+ assertThat(tvp.getOffset()).isEqualTo(85);
+ assertThat(tvp.getMessage()).isEqualTo(DSLMessage.TASK_VALIDATION_APP_NAME_ALREADY_IN_USE);
}
}
@Test
public void wildcardTransition() {
ctn = parse("foo '*'->wibble");
- assertEquals("foo '*'->wibble", ctn.toDSL());
+ assertThat(ctn.toDSL()).isEqualTo("foo '*'->wibble");
ctn = parse("foo \"*\"->wibble");
- assertEquals("foo \"*\"->wibble", ctn.toDSL());
+ assertThat(ctn.toDSL()).isEqualTo("foo \"*\"->wibble");
}
@Test
public void splitWithTransition() {
String spec = "