package com.griddynamics.jagger.test.javabuilders.smoke_components; import com.griddynamics.jagger.engine.e1.collector.DefaultResponseValidatorProvider; import com.griddynamics.jagger.engine.e1.collector.NotNullResponseValidator; import com.griddynamics.jagger.engine.e1.collector.invocation.NotNullInvocationListener; import com.griddynamics.jagger.invoker.v2.DefaultInvokerProvider; import com.griddynamics.jagger.invoker.v2.JHttpEndpoint; import com.griddynamics.jagger.invoker.v2.JHttpQuery; import com.griddynamics.jagger.test.javabuilders.utils.EndpointsProvider; import com.griddynamics.jagger.test.javabuilders.utils.JaggerPropertiesProvider; import com.griddynamics.jagger.user.test.configurations.JTestDefinition; import com.griddynamics.jagger.user.test.configurations.auxiliary.Id; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; /** * For smoke tests of JTestDefinition each optional parameter should be specified and unspecified at least once */ public class TestDefinitionVariations { private static final List<JHttpQuery> SINGLE_QUERY = Collections.singletonList(new JHttpQuery().get().path("/sleep/10")); private JaggerPropertiesProvider properties; public TestDefinitionVariations(JaggerPropertiesProvider properties) { this.properties = properties; } /** * All optional fields are unspecified */ public JTestDefinition allDefaults(){ return JTestDefinition.builder(Id.of("all defaults"), getEndpoints()).build(); } public JTestDefinition singleQuery(){ return JTestDefinition.builder(Id.of("single query"), getEndpoints()) .withQueryProvider(SINGLE_QUERY) .build(); } public JTestDefinition listOfQueries(){ // create query with different latency to test query rotation Iterable<JHttpQuery> queries = Stream.of("100", "50", "25") .map(q -> new JHttpQuery().get().path("/sleep", q)) .collect(Collectors.toList()); return JTestDefinition.builder(Id.of("queries list"), getEndpoints()) .withQueryProvider(queries) .build(); } public JTestDefinition withComment(){ return JTestDefinition.builder(Id.of("comment"), getEndpoints()) .withComment("definition with comment") .build(); } public JTestDefinition singleValidator(){ return JTestDefinition.builder(Id.of("single validator"), getEndpoints()) .addValidator(DefaultResponseValidatorProvider.of(NotNullResponseValidator.class)) .build(); } public JTestDefinition listOfValidators(){ return JTestDefinition.builder(Id.of("validators list"), getEndpoints()) .addValidators(Arrays.asList(DefaultResponseValidatorProvider.of(NotNullResponseValidator.class), DefaultResponseValidatorProvider.of(TrueValidator.class))) .build(); } public JTestDefinition allFields(){ return JTestDefinition.builder(Id.of("all fields"), getEndpoints()) .withQueryProvider(SINGLE_QUERY) .withInvoker(DefaultInvokerProvider.of(DummyCustomInvoker.class)) .addValidators(Arrays.asList(DefaultResponseValidatorProvider.of(NotNullResponseValidator.class), DefaultResponseValidatorProvider.of(TrueValidator.class))) .withComment("all fields definition") .addListener(new NotNullInvocationListener()) .build(); } public JTestDefinition load_cpu_service_10000000(){ return JTestDefinition.builder(Id.of("load-cpu-service-10000000"), getEndpoints()) .withQueryProvider(Collections.singletonList(new JHttpQuery().get().path("/load/10000000"))) .addListener(new NotNullInvocationListener()) .build(); } public JTestDefinition allocate_memory_service_1000000x200(){ return JTestDefinition.builder(Id.of("allocate-memory-service-1000000x200"), getEndpoints()) .withQueryProvider(Collections.singletonList(new JHttpQuery().get().path("/allocate/1000000x200"))) .build(); } private Iterable<JHttpEndpoint> getEndpoints() { return new EndpointsProvider(properties); } }