Commit dce66509 authored by Noel Alonso's avatar Noel Alonso
Browse files

Merge branch 'release-0.10.0' into 'master'

Release 0.10.0

See merge request redmic-project/server/library/test-utils!9
parents a9a28249 56dfb157
Loading
Loading
Loading
Loading
+21 −5
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@
	<groupId>es.redmic.lib</groupId>
	<artifactId>test-utils</artifactId>
	<packaging>jar</packaging>
	<version>0.9.0</version>
	<version>0.10.0</version>
	<name>Test utils</name>
	<description>Utilidades y servicios comunes para los tests</description>

@@ -25,9 +25,9 @@
		<java.version>1.8</java.version>

		<!-- REDMIC -->
		<redmic.models.version>0.8.0</redmic.models.version>
		<redmic.utils.version>0.8.0</redmic.utils.version>
		<redmic.jts4jackson.version>0.0.1</redmic.jts4jackson.version>
		<redmic.models.version>0.11.0</redmic.models.version>
		<redmic.utils.version>0.10.0</redmic.utils.version>
		<redmic.jts4jackson.version>0.2.0</redmic.jts4jackson.version>
		
		<!-- Others -->
		<oauth.version>2.3.0.RELEASE</oauth.version>
@@ -113,6 +113,22 @@
			</exclusions>
		</dependency>
		
		<dependency>
			<groupId>io.confluent</groupId>
			<artifactId>kafka-avro-serializer</artifactId>
			<version>${confluent.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
				<exclusion>
					<groupId>log4j</groupId>
					<artifactId>log4j</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		
		<dependency>
			<groupId>org.glassfish.jersey.inject</groupId>
			<artifactId>jersey-hk2</artifactId>
+66 −0
Original line number Diff line number Diff line
package es.redmic.testutils.utils;

/*-
 * #%L
 * Test utils
 * %%
 * Copyright (C) 2019 REDMIC Project / Server
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */

import java.util.HashMap;
import java.util.Properties;

import io.confluent.kafka.schemaregistry.client.MockSchemaRegistryClient;
import io.confluent.kafka.schemaregistry.client.SchemaRegistryClient;
import io.confluent.kafka.serializers.KafkaAvroDeserializer;
import io.confluent.kafka.serializers.KafkaAvroDeserializerConfig;
import io.confluent.kafka.serializers.KafkaAvroSerializer;

public abstract class AvroBaseTest {

	private final SchemaRegistryClient schemaRegistry;

	protected KafkaAvroSerializer avroSerializer;

	protected KafkaAvroDeserializer avroDeserializer;

	@SuppressWarnings({ "unchecked", "rawtypes" })
	public AvroBaseTest() {

		Properties defaultConfig = new Properties();
		defaultConfig.put(KafkaAvroDeserializerConfig.SCHEMA_REGISTRY_URL_CONFIG, "bogus");
		defaultConfig.put(KafkaAvroDeserializerConfig.SPECIFIC_AVRO_READER_CONFIG, "true");

		schemaRegistry = new MockSchemaRegistryClient();

		avroSerializer = new KafkaAvroSerializer(schemaRegistry, new HashMap(defaultConfig));

		avroDeserializer = new KafkaAvroDeserializer(schemaRegistry, new HashMap(defaultConfig));
	}

	@SuppressWarnings("unchecked")
	protected <T> T serializerAndDeserializer(T dto) {

		byte[] dtoBytes = avroSerializer.serialize("msg.t", dto);

		T result = (T) avroDeserializer.deserialize("msg.t", dtoBytes);

		avroSerializer.close();
		avroDeserializer.close();

		return result;
	}
}