Skip to content
Snippets Groups Projects
Commit 226b0546 authored by Henry Borasch's avatar Henry Borasch
Browse files

added submission data validation for sender

* added loading of submission data schema
* added submission data validation to sender and subscriber flow
* added and adjusted tests and test data
* added attribute for skipping validations to config, fixed tests
parent 9356b7aa
No related branches found
No related tags found
2 merge requests!139928 - Validate Submission Data,!128Add Schema URI via Builder, check against existing destinations
......@@ -8,6 +8,7 @@ import dev.fitko.fitconnect.api.exceptions.SchemaNotFoundException;
import dev.fitko.fitconnect.api.services.schema.SchemaProvider;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.web.client.RestTemplate;
import java.net.URI;
import java.util.List;
......@@ -15,6 +16,7 @@ import java.util.List;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.mock;
class SchemaResourceProviderTest {
......@@ -25,8 +27,9 @@ class SchemaResourceProviderTest {
final List<String> setSchemas = SchemaConfig.getSetSchemaFilePaths("/set-schema");
final List<String> metadataSchemas = SchemaConfig.getMetadataSchemaFileNames("/metadata-schema");
final List<String> destinationSchemas = SchemaConfig.getDestinationSchemaPaths("/destination-schema");
final SchemaResources schemaResources = new SchemaResources(setSchemas, metadataSchemas, destinationSchemas);
underTest = new SchemaResourceProvider(schemaResources);
final List<String> submissionDataSchemas = SchemaConfig.getSubmissionDataSchemaPaths("/submission-data-schema");
final SchemaResources schemaResources = new SchemaResources(setSchemas, metadataSchemas, destinationSchemas, submissionDataSchemas);
underTest = new SchemaResourceProvider(mock(RestTemplate.class), schemaResources);
}
@Test
......
......@@ -32,6 +32,7 @@ import dev.fitko.fitconnect.jwkvalidator.exceptions.JWKValidationException;
import org.hamcrest.CoreMatchers;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.web.client.RestTemplate;
import java.io.IOException;
import java.net.URI;
......@@ -59,8 +60,9 @@ class DefaultValidationServiceTest {
final List<String> setSchemas = SchemaConfig.getSetSchemaFilePaths("/set-schema");
final List<String> metadataSchemas = SchemaConfig.getMetadataSchemaFileNames("/metadata-schema");
final List<String> destinationSchemas = SchemaConfig.getDestinationSchemaPaths("/destination-schema");
final SchemaResources schemaResources = new SchemaResources(setSchemas, metadataSchemas, destinationSchemas);
schemaProvider = new SchemaResourceProvider(schemaResources);
final List<String> submissionDataSchemas = SchemaConfig.getSubmissionDataSchemaPaths("/submission-data-schema");
final SchemaResources schemaResources = new SchemaResources(setSchemas, metadataSchemas, destinationSchemas, submissionDataSchemas);
schemaProvider = new SchemaResourceProvider(mock(RestTemplate.class), schemaResources);
underTest = new DefaultValidationService(config, hashService, schemaProvider);
}
......@@ -412,7 +414,7 @@ class DefaultValidationServiceTest {
final var validJson = getResource("/valid_json_data.json");
// When
final ValidationResult validationResult = underTest.validateJsonFormat(validJson);
final ValidationResult validationResult = underTest.validateJsonFormat(validJson, URI.create("urn:something"));
// Then
assertTrue(validationResult.isValid());
......@@ -425,7 +427,7 @@ class DefaultValidationServiceTest {
final var invalidJson = getResource("/invalid_json_data.json");
// When
final ValidationResult validationResult = underTest.validateJsonFormat(invalidJson);
final ValidationResult validationResult = underTest.validateJsonFormat(invalidJson, URI.create("urn:something"));
// Then
assertFalse(validationResult.isValid());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment