Skip to content

Commit

Permalink
Merge branch '3.x'
Browse files Browse the repository at this point in the history
  • Loading branch information
christophd committed Apr 2, 2020
2 parents 2ca88c7 + b57f7ba commit 217d63f
Show file tree
Hide file tree
Showing 230 changed files with 2,396 additions and 977 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,20 @@

package com.consol.citrus.docker.config.annotation;

import com.consol.citrus.annotations.CitrusEndpointConfig;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import java.lang.annotation.*;
import com.consol.citrus.annotations.CitrusEndpointConfig;

/**
* @author Christoph Deppisch
* @since 2.5
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD })
@CitrusEndpointConfig(qualifier = "endpoint.parser.docker.client")
@CitrusEndpointConfig(qualifier = "docker.client")
public @interface DockerClientConfig {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,28 +16,20 @@

package com.consol.citrus.docker.config.annotation;

import com.consol.citrus.config.annotation.AbstractAnnotationConfigParser;
import com.consol.citrus.spi.ReferenceResolver;
import com.consol.citrus.config.annotation.AnnotationConfigParser;
import com.consol.citrus.docker.client.DockerClient;
import com.consol.citrus.docker.client.DockerClientBuilder;
import com.consol.citrus.spi.ReferenceResolver;
import org.springframework.util.StringUtils;

/**
* @author Christoph Deppisch
* @since 2.5
*/
public class DockerClientConfigParser extends AbstractAnnotationConfigParser<DockerClientConfig, DockerClient> {

/**
* Constructor matching super.
* @param referenceResolver
*/
public DockerClientConfigParser(ReferenceResolver referenceResolver) {
super(referenceResolver);
}
public class DockerClientConfigParser implements AnnotationConfigParser<DockerClientConfig, DockerClient> {

@Override
public DockerClient parse(DockerClientConfig annotation) {
public DockerClient parse(DockerClientConfig annotation, ReferenceResolver referenceResolver) {
DockerClientBuilder builder = new DockerClientBuilder();

if (StringUtils.hasText(annotation.url())) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
client=com.consol.citrus.docker.client.DockerClientBuilder
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
client=com.consol.citrus.docker.config.annotation.DockerClientConfigParser
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,14 @@

package com.consol.citrus.docker.config.annotation;

import java.util.Map;

import com.consol.citrus.annotations.CitrusAnnotations;
import com.consol.citrus.annotations.CitrusEndpoint;
import com.consol.citrus.config.annotation.AnnotationConfigParser;
import com.consol.citrus.docker.client.DockerClient;
import com.consol.citrus.endpoint.direct.annotation.DirectEndpointConfigParser;
import com.consol.citrus.endpoint.direct.annotation.DirectSyncEndpointConfigParser;
import com.consol.citrus.testng.AbstractTestNGUnitTest;
import com.github.dockerjava.core.DefaultDockerClientConfig;
import org.mockito.MockitoAnnotations;
Expand Down Expand Up @@ -68,4 +73,21 @@ public void testDockerClientParser() {
Assert.assertEquals(dockerClient2.getEndpointConfiguration().getDockerClientConfig().getRegistryUrl(), "https://index.docker.io/v1/");
Assert.assertEquals(((DefaultDockerClientConfig)dockerClient2.getEndpointConfiguration().getDockerClientConfig()).getDockerConfig(), "/path/to/some/config/directory");
}

@Test
public void testLookupAll() {
Map<String, AnnotationConfigParser> validators = AnnotationConfigParser.lookup();
Assert.assertEquals(validators.size(), 3L);
Assert.assertNotNull(validators.get("direct.async"));
Assert.assertEquals(validators.get("direct.async").getClass(), DirectEndpointConfigParser.class);
Assert.assertNotNull(validators.get("direct.sync"));
Assert.assertEquals(validators.get("direct.sync").getClass(), DirectSyncEndpointConfigParser.class);
Assert.assertNotNull(validators.get("docker.client"));
Assert.assertEquals(validators.get("docker.client").getClass(), DockerClientConfigParser.class);
}

@Test
public void testLookupByQualifier() {
Assert.assertTrue(AnnotationConfigParser.lookup("docker.client").isPresent());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,20 @@

package com.consol.citrus.kubernetes.config.annotation;

import com.consol.citrus.annotations.CitrusEndpointConfig;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import java.lang.annotation.*;
import com.consol.citrus.annotations.CitrusEndpointConfig;

/**
* @author Christoph Deppisch
* @since 2.7
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD })
@CitrusEndpointConfig(qualifier = "endpoint.parser.kubernetes.client")
@CitrusEndpointConfig(qualifier = "k8s.client")
public @interface KubernetesClientConfig {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,30 +16,22 @@

package com.consol.citrus.kubernetes.config.annotation;

import com.consol.citrus.config.annotation.AbstractAnnotationConfigParser;
import com.consol.citrus.spi.ReferenceResolver;
import com.consol.citrus.config.annotation.AnnotationConfigParser;
import com.consol.citrus.kubernetes.client.KubernetesClient;
import com.consol.citrus.kubernetes.client.KubernetesClientBuilder;
import com.consol.citrus.kubernetes.message.KubernetesMessageConverter;
import com.consol.citrus.spi.ReferenceResolver;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.util.StringUtils;

/**
* @author Christoph Deppisch
* @since 2.7
*/
public class KubernetesClientConfigParser extends AbstractAnnotationConfigParser<KubernetesClientConfig, KubernetesClient> {

/**
* Constructor matching super.
* @param referenceResolver
*/
public KubernetesClientConfigParser(ReferenceResolver referenceResolver) {
super(referenceResolver);
}
public class KubernetesClientConfigParser implements AnnotationConfigParser<KubernetesClientConfig, KubernetesClient> {

@Override
public KubernetesClient parse(KubernetesClientConfig annotation) {
public KubernetesClient parse(KubernetesClientConfig annotation, ReferenceResolver referenceResolver) {
KubernetesClientBuilder builder = new KubernetesClientBuilder();

if (StringUtils.hasText(annotation.url())) {
Expand Down Expand Up @@ -67,11 +59,11 @@ public KubernetesClient parse(KubernetesClientConfig annotation) {
}

if (StringUtils.hasText(annotation.messageConverter())) {
builder.messageConverter(getReferenceResolver().resolve(annotation.messageConverter(), KubernetesMessageConverter.class));
builder.messageConverter(referenceResolver.resolve(annotation.messageConverter(), KubernetesMessageConverter.class));
}

if (StringUtils.hasText(annotation.objectMapper())) {
builder.objectMapper(getReferenceResolver().resolve(annotation.objectMapper(), ObjectMapper.class));
builder.objectMapper(referenceResolver.resolve(annotation.objectMapper(), ObjectMapper.class));
}

return builder.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,26 @@

package com.consol.citrus.kubernetes.endpoint;

import java.util.Map;

import com.consol.citrus.context.TestContext;
import com.consol.citrus.endpoint.AbstractEndpointComponent;
import com.consol.citrus.endpoint.Endpoint;
import com.consol.citrus.kubernetes.client.KubernetesClient;

import java.util.Map;

/**
* @author Christoph Deppisch
* @since 2.7
*/
public class KubernetesEndpointComponent extends AbstractEndpointComponent {

/**
* Default constructor using the name for this component.
*/
public KubernetesEndpointComponent() {
super("k8s");
}

@Override
protected Endpoint createEndpoint(String resourcePath, Map<String, String> parameters, TestContext context) {
KubernetesClient client = new KubernetesClient();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
client=com.consol.citrus.kubernetes.client.KubernetesClientBuilder
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
type=com.consol.citrus.kubernetes.endpoint.KubernetesEndpointComponent
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
client=com.consol.citrus.kubernetes.config.annotation.KubernetesClientConfigParser
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,18 @@

package com.consol.citrus.kubernetes.config.annotation;

import java.util.Map;

import com.consol.citrus.annotations.CitrusAnnotations;
import com.consol.citrus.annotations.CitrusEndpoint;
import com.consol.citrus.spi.ReferenceResolver;
import com.consol.citrus.config.annotation.AnnotationConfigParser;
import com.consol.citrus.endpoint.direct.annotation.DirectEndpointConfigParser;
import com.consol.citrus.endpoint.direct.annotation.DirectSyncEndpointConfigParser;
import com.consol.citrus.http.config.annotation.HttpClientConfigParser;
import com.consol.citrus.http.config.annotation.HttpServerConfigParser;
import com.consol.citrus.kubernetes.client.KubernetesClient;
import com.consol.citrus.kubernetes.message.KubernetesMessageConverter;
import com.consol.citrus.spi.ReferenceResolver;
import com.consol.citrus.testng.AbstractTestNGUnitTest;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.mockito.Mock;
Expand Down Expand Up @@ -88,4 +95,25 @@ public void testKubernetesClientParser() {
Assert.assertEquals(client2.getEndpointConfiguration().getMessageConverter(), messageConverter);
Assert.assertEquals(client2.getEndpointConfiguration().getObjectMapper(), objectMapper);
}

@Test
public void testLookupAll() {
Map<String, AnnotationConfigParser> validators = AnnotationConfigParser.lookup();
Assert.assertEquals(validators.size(), 5L);
Assert.assertNotNull(validators.get("direct.async"));
Assert.assertEquals(validators.get("direct.async").getClass(), DirectEndpointConfigParser.class);
Assert.assertNotNull(validators.get("direct.sync"));
Assert.assertEquals(validators.get("direct.sync").getClass(), DirectSyncEndpointConfigParser.class);
Assert.assertNotNull(validators.get("http.client"));
Assert.assertEquals(validators.get("http.client").getClass(), HttpClientConfigParser.class);
Assert.assertNotNull(validators.get("http.server"));
Assert.assertEquals(validators.get("http.server").getClass(), HttpServerConfigParser.class);
Assert.assertNotNull(validators.get("k8s.client"));
Assert.assertEquals(validators.get("k8s.client").getClass(), KubernetesClientConfigParser.class);
}

@Test
public void testLookupByQualifier() {
Assert.assertTrue(AnnotationConfigParser.lookup("k8s.client").isPresent());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,14 @@

package com.consol.citrus.kubernetes.endpoint;

import java.util.Map;

import com.consol.citrus.context.TestContext;
import com.consol.citrus.endpoint.Endpoint;
import com.consol.citrus.endpoint.EndpointComponent;
import com.consol.citrus.endpoint.direct.DirectEndpointComponent;
import com.consol.citrus.http.client.HttpEndpointComponent;
import com.consol.citrus.http.client.HttpsEndpointComponent;
import com.consol.citrus.kubernetes.client.KubernetesClient;
import org.testng.Assert;
import org.testng.annotations.Test;
Expand Down Expand Up @@ -61,4 +67,23 @@ public void testCreateClientEndpointWithParameters() throws Exception {
Assert.assertEquals(((KubernetesClient) endpoint).getEndpointConfiguration().getTimeout(), 10000L);
}

@Test
public void testLookupAll() {
Map<String, EndpointComponent> validators = EndpointComponent.lookup();
Assert.assertEquals(validators.size(), 4L);
Assert.assertNotNull(validators.get("direct"));
Assert.assertEquals(validators.get("direct").getClass(), DirectEndpointComponent.class);
Assert.assertNotNull(validators.get("http"));
Assert.assertEquals(validators.get("http").getClass(), HttpEndpointComponent.class);
Assert.assertNotNull(validators.get("https"));
Assert.assertEquals(validators.get("https").getClass(), HttpsEndpointComponent.class);
Assert.assertNotNull(validators.get("k8s"));
Assert.assertEquals(validators.get("k8s").getClass(), KubernetesEndpointComponent.class);
}

@Test
public void testLookupByQualifier() {
Assert.assertTrue(EndpointComponent.lookup("k8s").isPresent());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,20 @@

package com.consol.citrus.selenium.config.annotation;

import com.consol.citrus.annotations.CitrusEndpointConfig;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import java.lang.annotation.*;
import com.consol.citrus.annotations.CitrusEndpointConfig;

/**
* @author Christoph Deppisch
* @since 2.7
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD })
@CitrusEndpointConfig(qualifier = "endpoint.parser.selenium.browser")
@CitrusEndpointConfig(qualifier = "selenium.browser")
public @interface SeleniumBrowserConfig {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@

package com.consol.citrus.selenium.config.annotation;

import com.consol.citrus.config.annotation.AbstractAnnotationConfigParser;
import com.consol.citrus.spi.ReferenceResolver;
import com.consol.citrus.config.annotation.AnnotationConfigParser;
import com.consol.citrus.selenium.endpoint.SeleniumBrowser;
import com.consol.citrus.selenium.endpoint.SeleniumBrowserBuilder;
import com.consol.citrus.spi.ReferenceResolver;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.support.events.WebDriverEventListener;
Expand All @@ -29,18 +29,10 @@
* @author Christoph Deppisch
* @since 2.7
*/
public class SeleniumBrowserConfigParser extends AbstractAnnotationConfigParser<SeleniumBrowserConfig, SeleniumBrowser> {

/**
* Constructor matching super.
* @param referenceResolver
*/
public SeleniumBrowserConfigParser(ReferenceResolver referenceResolver) {
super(referenceResolver);
}
public class SeleniumBrowserConfigParser implements AnnotationConfigParser<SeleniumBrowserConfig, SeleniumBrowser> {

@Override
public SeleniumBrowser parse(SeleniumBrowserConfig annotation) {
public SeleniumBrowser parse(SeleniumBrowserConfig annotation, ReferenceResolver referenceResolver) {
SeleniumBrowserBuilder builder = new SeleniumBrowserBuilder();

if (StringUtils.hasText(annotation.startPage())) {
Expand All @@ -64,14 +56,14 @@ public SeleniumBrowser parse(SeleniumBrowserConfig annotation) {
}

if (StringUtils.hasText(annotation.webDriver())) {
builder.webDriver(getReferenceResolver().resolve(annotation.webDriver(), WebDriver.class));
builder.webDriver(referenceResolver.resolve(annotation.webDriver(), WebDriver.class));
}

if (StringUtils.hasText(annotation.firefoxProfile())) {
builder.profile(getReferenceResolver().resolve(annotation.firefoxProfile(), FirefoxProfile.class));
builder.profile(referenceResolver.resolve(annotation.firefoxProfile(), FirefoxProfile.class));
}

builder.eventListeners(getReferenceResolver().resolve(annotation.eventListeners(), WebDriverEventListener.class));
builder.eventListeners(referenceResolver.resolve(annotation.eventListeners(), WebDriverEventListener.class));

builder.javaScript(annotation.javaScript());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,26 @@

package com.consol.citrus.selenium.endpoint;

import java.util.Map;

import com.consol.citrus.context.TestContext;
import com.consol.citrus.endpoint.AbstractEndpointComponent;
import com.consol.citrus.endpoint.Endpoint;
import org.springframework.util.StringUtils;

import java.util.Map;

/**
* @author Christoph Deppisch
* @since 2.7
*/
public class SeleniumEndpointComponent extends AbstractEndpointComponent {

/**
* Default constructor using the name for this component.
*/
public SeleniumEndpointComponent() {
super("selenium");
}

@Override
protected Endpoint createEndpoint(String resourcePath, Map<String, String> parameters, TestContext context) {
SeleniumBrowser browser = new SeleniumBrowser();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
browser=com.consol.citrus.selenium.endpoint.SeleniumBrowserBuilder
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
type=com.consol.citrus.selenium.endpoint.SeleniumEndpointComponent
Loading

0 comments on commit 217d63f

Please sign in to comment.