You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2019/11/21 09:23:01 UTC
[servicecomb-toolkit] 01/10: SCB-1580 Configurable oas style check
rules Make ValidatorFactory create validators by options
This is an automated email from the ASF dual-hosted git repository.
ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-toolkit.git
commit c104cba3c064a1a1b2cca604976ffdddde2ffbee
Author: Daniel Qian <ch...@gmail.com>
AuthorDate: Tue Nov 19 18:56:04 2019 +0800
SCB-1580 Configurable oas style check rules
Make ValidatorFactory create validators by options
---
.../servicecomb/toolkit/cli/CheckStyleBase.java | 22 ++--
.../config/ComponentsValidatorConfiguration.java | 68 ------------
.../config/EncodingValidatorConfiguration.java | 33 ------
.../config/HeaderValidatorConfiguration.java | 33 ------
.../config/InfoValidatorConfiguration.java | 33 ------
.../config/OpenApiValidatorConfiguration.java | 45 --------
.../config/OperationValidatorConfiguration.java | 52 ---------
.../config/ParameterValidatorConfiguration.java | 53 ---------
.../config/PathsValidatorConfiguration.java | 33 ------
.../config/RequestBodyValidatorConfiguration.java | 33 ------
.../config/ResponseValidatorConfiguration.java | 33 ------
.../config/SchemaValidatorConfiguration.java | 38 -------
.../config/TagValidatorConfiguration.java | 45 --------
.../config/ValidatorConfigurationsTest.java | 68 ------------
.../factory/DefaultComponentsValidatorFactory.java | 121 +++++++++++++++------
.../factory/DefaultEncodingValidatorFactory.java | 26 +++--
.../factory/DefaultHeaderValidatorFactory.java | 24 ++--
.../factory/DefaultInfoValidatorFactory.java | 22 ++--
.../factory/DefaultMediaTypeValidatorFactory.java | 15 +--
.../factory/DefaultOasSpecValidatorFactory.java | 5 +-
.../factory/DefaultOpenApiValidatorFactory.java | 66 ++++++-----
.../factory/DefaultOperationValidatorFactory.java | 68 +++++++++---
.../factory/DefaultParameterValidatorFactory.java | 67 +++++++++---
.../factory/DefaultPathItemValidatorFactory.java | 15 +--
.../factory/DefaultPathsValidatorFactory.java | 25 +++--
.../DefaultRequestBodyValidatorFactory.java | 24 ++--
.../factory/DefaultResponseValidatorFactory.java | 28 +++--
.../factory/DefaultResponsesValidatorFactory.java | 13 ++-
.../factory/DefaultSchemaValidatorFactory.java | 35 ++++--
.../DefaultSecuritySchemeValidatorFactory.java | 9 +-
.../factory/DefaultServerValidatorFactory.java | 9 +-
.../factory/DefaultTagValidatorFactory.java | 45 ++++++--
.../factory/ValidatorFactoryComponents.java} | 2 +-
.../ComponentsCallbacksKeysCaseValidator.java} | 34 +++---
.../ComponentsExamplesKeysCaseValidator.java} | 34 +++---
.../ComponentsHeadersKeysCaseValidator.java} | 34 +++---
.../components/ComponentsKeysValidators.java | 59 ----------
.../ComponentsLinksKeysCaseValidator.java} | 34 +++---
.../ComponentsParametersKeysCaseValidator.java} | 34 +++---
.../ComponentsRequestBodiesKeysCaseValidator.java} | 34 +++---
.../ComponentsResponsesKeysCaseValidator.java} | 34 +++---
.../ComponentsSchemasKeysCaseValidator.java} | 34 +++---
...omponentsSecuritySchemesKeysCaseValidator.java} | 34 +++---
....java => EncodingHeadersKeysCaseValidator.java} | 27 +++--
.../header/HeaderDescriptionRequiredValidator.java | 6 +-
.../info/InfoDescriptionRequiredValidator.java | 11 +-
...or.java => OpenApiSecuritySizeEqValidator.java} | 31 ++++--
...dator.java => OpenApiTagsSizeGteValidator.java} | 25 +++--
...idator.java => OpenApiVersionGteValidator.java} | 23 +++-
...alidator.java => OperationIdCaseValidator.java} | 28 +++--
...r.java => OperationServersSizeEqValidator.java} | 32 ++++--
.../OperationSummaryRequiredValidator.java | 7 +-
.../operation/OperationTagsReferenceValidator.java | 19 ++--
...ator.java => OperationTagsSizeEqValidator.java} | 25 +++--
.../ParameterDescriptionRequiredValidator.java | 3 +
....java => ParameterNameCookieCaseValidator.java} | 30 +++--
....java => ParameterNameHeaderCaseValidator.java} | 29 +++--
...or.java => ParameterNamePathCaseValidator.java} | 29 +++--
...r.java => ParameterNameQueryCaseValidator.java} | 29 +++--
...seValidator.java => PathsKeyCaseValidator.java} | 37 ++++---
.../RequestBodyDescriptionRequiredValidator.java | 3 +
....java => ResponseHeadersKeysCaseValidator.java} | 27 +++--
...java => SchemaPropertiesKeysCaseValidator.java} | 28 +++--
...ator.java => SchemaTitleRequiredValidator.java} | 33 +++---
.../tag/TagDescriptionRequiredValidator.java | 5 +-
...ator.java => TagMustBeReferencedValidator.java} | 16 ++-
...aseValidator.java => TagNameCaseValidator.java} | 28 +++--
.../DefaultComponentsValidatorFactoryTest.java | 12 +-
.../DefaultEncodingValidatorFactoryTest.java | 12 +-
.../factory/DefaultHeaderValidatorFactoryTest.java | 12 +-
.../factory/DefaultInfoValidatorFactoryTest.java | 12 +-
.../DefaultMediaTypeValidatorFactoryTest.java | 12 +-
.../DefaultOasSpecValidatorFactoryTest.java | 8 +-
.../DefaultOpenApiValidatorFactoryTest.java | 12 +-
.../DefaultOperationValidatorFactoryTest.java | 12 +-
.../DefaultParameterValidatorFactoryTest.java | 12 +-
.../DefaultPathItemValidatorFactoryTest.java | 12 +-
.../factory/DefaultPathsValidatorFactoryTest.java | 12 +-
.../DefaultRequestBodyValidatorFactoryTest.java | 12 +-
.../DefaultResponseValidatorFactoryTest.java | 12 +-
.../DefaultResponsesValidatorFactoryTest.java | 12 +-
.../factory/DefaultSchemaValidatorFactoryTest.java | 12 +-
.../DefaultSecuritySchemeValidatorFactoryTest.java | 12 +-
.../factory/DefaultServerValidatorFactoryTest.java | 12 +-
.../factory/DefaultTagValidatorFactoryTest.java | 12 +-
.../validator/OasStyleCheckTestBase.java} | 27 +++--
... ComponentsCallbacksKeysCaseValidatorTest.java} | 40 ++-----
...> ComponentsExamplesKeysCaseValidatorTest.java} | 41 ++-----
...=> ComponentsHeadersKeysCaseValidatorTest.java} | 42 ++-----
...a => ComponentsLinksKeysCaseValidatorTest.java} | 42 ++-----
...ComponentsParametersKeysCaseValidatorTest.java} | 42 ++-----
...ponentsRequestBodiesKeysCaseValidatorTest.java} | 42 ++-----
... ComponentsResponsesKeysCaseValidatorTest.java} | 42 ++-----
...=> ComponentsSchemasKeysCaseValidatorTest.java} | 42 ++-----
...nentsSecuritySchemesKeysCaseValidatorTest.java} | 49 ++++-----
.../EncodingHeadersKeysCaseValidatorTest.java | 120 ++++++++++++++++++++
.../HeaderDescriptionRequiredValidatorTest.java | 33 ++----
.../info/InfoDescriptionRequiredValidatorTest.java | 33 ++----
...ava => OpenApiSecuritySizeEqValidatorTest.java} | 41 +++----
...t.java => OpenApiTagsSizeGteValidatorTest.java} | 35 ++----
...st.java => OpenApiVersionGteValidatorTest.java} | 36 ++----
...Test.java => OperationIdCaseValidatorTest.java} | 37 ++-----
...va => OperationServersSizeEqValidatorTest.java} | 36 ++----
.../OperationSummaryRequiredValidatorTest.java | 34 ++----
.../OperationTagsReferenceValidatorTest.java | 36 ++----
....java => OperationTagsSizeEqValidatorTest.java} | 36 ++----
.../ParameterDescriptionRequiredValidatorTest.java | 33 ++----
...a => ParameterNameCookieCaseValidatorTest.java} | 39 +++----
...a => ParameterNameHeaderCaseValidatorTest.java} | 39 +++----
...ava => ParameterNamePathCaseValidatorTest.java} | 39 +++----
...va => ParameterNameQueryCaseValidatorTest.java} | 39 +++----
...torTest.java => PathsKeyCaseValidatorTest.java} | 40 +++----
...equestBodyDescriptionRequiredValidatorTest.java | 35 ++----
.../ResponseHeadersKeysCaseValidatorTest.java} | 64 +++++------
... => SchemaPropertiesKeysCaseValidatorTest.java} | 74 +++++++------
....java => SchemaTitleRequiredValidatorTest.java} | 37 +++----
.../tag/TagDescriptionRequiredValidatorTest.java | 33 ++----
....java => TagMustBeReferencedValidatorTest.java} | 35 ++----
...atorTest.java => TagNameCaseValidatorTest.java} | 38 +++----
...petstore-security-schemes-upper-camel-case.yaml | 52 +++++++++
.../petstore-encoding-headers-key-case-1.yaml | 48 ++++++++
.../petstore-encoding-headers-key-case-2.yaml | 43 ++++++++
.../petstore-encoding-headers-key-case-3.yaml | 51 +++++++++
.../petstore-encoding-headers-key-case-4.yaml | 52 +++++++++
.../petstore-response-headers-key-case.yaml | 44 ++++++++
.../servicecomb/toolkit/oasv/FactoryOptions.java | 48 ++++++++
.../factory/DiffValidatorCreationOptions.java | 5 +
.../toolkit/oasv/util/StringCaseUtils.java | 12 ++
.../factory/OasObjectValidatorFactory.java | 3 +-
.../factory/OasSpecValidatorFactory.java | 3 +-
.../encoding/EncodingHeadersKeysValidator.java | 6 +-
.../response/ResponseHeadersKeysValidator.java | 8 +-
.../toolkit/oasv/util/StringCaseUtilsTest.java | 12 +-
.../validation/test/OasValidatorTestBaseNew.java} | 46 ++++----
134 files changed, 2023 insertions(+), 2157 deletions(-)
diff --git a/cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckStyleBase.java b/cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckStyleBase.java
index 393d97d..0048a6f 100644
--- a/cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckStyleBase.java
+++ b/cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckStyleBase.java
@@ -17,16 +17,14 @@
package org.apache.servicecomb.toolkit.cli;
-import java.io.IOException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.List;
-
+import io.airlift.airline.Arguments;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.parser.core.models.SwaggerParseResult;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.FileUtils;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
import org.apache.servicecomb.toolkit.oasv.compliance.ComplianceCheckParser;
-import org.apache.servicecomb.toolkit.oasv.compliance.factory.DefaultOasSpecValidatorFactory;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
@@ -35,9 +33,10 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
-import io.airlift.airline.Arguments;
-import io.swagger.v3.oas.models.OpenAPI;
-import io.swagger.v3.parser.core.models.SwaggerParseResult;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.List;
public class CheckStyleBase implements Runnable {
@@ -88,10 +87,11 @@ public class CheckStyleBase implements Runnable {
private OasSpecValidator createOasSpecValidator() {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(
- DefaultOasSpecValidatorFactory.class.getPackage().getName());
+ ValidatorFactoryComponents.class);
try {
OasSpecValidatorFactory oasSpecValidatorFactory = ctx.getBean(OasSpecValidatorFactory.class);
- return oasSpecValidatorFactory.create();
+ // TODO load options
+ return oasSpecValidatorFactory.create(null);
} finally {
ctx.close();
}
diff --git a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/ComponentsValidatorConfiguration.java b/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/ComponentsValidatorConfiguration.java
deleted file mode 100755
index 6acd7fe..0000000
--- a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/ComponentsValidatorConfiguration.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.config;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.components.ComponentsKeysValidators;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ComponentsValidator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class ComponentsValidatorConfiguration {
-
- @Bean
- public ComponentsValidator componentsCallbacksUpperCamelCaseValidator() {
- return ComponentsKeysValidators.CALLBACKS_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
- @Bean
- public ComponentsValidator componentsExamplesUpperCamelCaseValidator() {
- return ComponentsKeysValidators.EXAMPLES_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
- @Bean
- public ComponentsValidator componentsHeadersUpperHyphenCaseValidator() {
- return ComponentsKeysValidators.HEADERS_UPPER_HYPHEN_CASE_VALIDATOR;
- }
-
- @Bean
- public ComponentsValidator componentsLinksUpperCamelCaseValidator() {
- return ComponentsKeysValidators.LINKS_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
- @Bean
- public ComponentsValidator componentsParametersUpperCamelCaseValidator() {
- return ComponentsKeysValidators.PARAMETERS_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
- @Bean
- public ComponentsValidator componentsRequestBodiesUpperCamelCaseValidator() {
- return ComponentsKeysValidators.REQUEST_BODIES_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
- @Bean
- public ComponentsValidator componentsResponsesUpperCamelCaseValidator() {
- return ComponentsKeysValidators.RESPONSES_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
- @Bean
- public ComponentsValidator componentsSchemasUpperCamelCaseValidator() {
- return ComponentsKeysValidators.SCHEMAS_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
-}
diff --git a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/EncodingValidatorConfiguration.java b/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/EncodingValidatorConfiguration.java
deleted file mode 100755
index 508bce8..0000000
--- a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/EncodingValidatorConfiguration.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.config;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.encoding.EncodingKeysValidators;
-import org.apache.servicecomb.toolkit.oasv.validation.api.EncodingValidator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class EncodingValidatorConfiguration {
-
- @Bean
- public EncodingValidator encodingHeadersUpperHyphenCaseValidator() {
- return EncodingKeysValidators.HEADERS_UPPER_HYPHEN_CASE_VALIDATOR;
- }
-
-}
diff --git a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/HeaderValidatorConfiguration.java b/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/HeaderValidatorConfiguration.java
deleted file mode 100755
index ec5c215..0000000
--- a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/HeaderValidatorConfiguration.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.config;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.header.HeaderDescriptionRequiredValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.HeaderValidator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class HeaderValidatorConfiguration {
-
- @Bean
- public HeaderValidator headerDescriptionRequiredValidator() {
- return new HeaderDescriptionRequiredValidator();
- }
-
-}
diff --git a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/InfoValidatorConfiguration.java b/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/InfoValidatorConfiguration.java
deleted file mode 100755
index 924878a..0000000
--- a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/InfoValidatorConfiguration.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.config;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.info.InfoDescriptionRequiredValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.InfoValidator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class InfoValidatorConfiguration {
-
- @Bean
- public InfoValidator infoDescriptionRequiredValidator() {
- return new InfoDescriptionRequiredValidator();
- }
-
-}
diff --git a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/OpenApiValidatorConfiguration.java b/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/OpenApiValidatorConfiguration.java
deleted file mode 100755
index affe351..0000000
--- a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/OpenApiValidatorConfiguration.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.config;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi.OpenApiSecurityEmptyValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi.OpenApiTagNotEmptyValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi.OpenApiVersionValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OpenApiValidator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class OpenApiValidatorConfiguration {
-
- @Bean
- public OpenApiValidator openApiTagNotEmptyValidator() {
- return new OpenApiTagNotEmptyValidator();
- }
-
- @Bean
- public OpenApiValidator openApiVersionValidator() {
- return new OpenApiVersionValidator();
- }
-
- @Bean
- public OpenApiValidator openApiSecurityEmptyValidator() {
- return new OpenApiSecurityEmptyValidator();
- }
-
-}
diff --git a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/OperationValidatorConfiguration.java b/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/OperationValidatorConfiguration.java
deleted file mode 100755
index e00784f..0000000
--- a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/OperationValidatorConfiguration.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.config;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.operation.*;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class OperationValidatorConfiguration {
-
- @Bean
- public OperationValidator operationIdLowerCamelCaseValidator() {
- return new OperationIdLowerCamelCaseValidator();
- }
-
- @Bean
- public OperationValidator operationSummaryRequiredValidator() {
- return new OperationSummaryRequiredValidator();
- }
-
- @Bean
- public OperationValidator operationTagsOnlyOneValidator() {
- return new OperationTagsOnlyOneValidator();
- }
-
- @Bean
- public OperationValidator operationTagsReferenceValidator() {
- return new OperationTagsReferenceValidator();
- }
-
- @Bean
- public OperationValidator operationServersEmptyValidator() {
- return new OperationServersEmptyValidator();
- }
-}
diff --git a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/ParameterValidatorConfiguration.java b/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/ParameterValidatorConfiguration.java
deleted file mode 100755
index 065131d..0000000
--- a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/ParameterValidatorConfiguration.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.config;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter.*;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ParameterValidator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class ParameterValidatorConfiguration {
-
- @Bean
- public ParameterValidator parameterCookieLowerCamelCaseValidator() {
- return new ParameterCookieLowerCamelCaseValidator();
- }
-
- @Bean
- public ParameterValidator parameterHeaderUpperHyphenCaseValidator() {
- return new ParameterHeaderUpperHyphenCaseValidator();
- }
-
- @Bean
- public ParameterValidator parameterPathLowerCamelCaseValidator() {
- return new ParameterPathLowerCamelCaseValidator();
- }
-
- @Bean
- public ParameterValidator parameterQueryLowerCamelCaseValidator() {
- return new ParameterQueryLowerCamelCaseValidator();
- }
-
- @Bean
- public ParameterValidator parameterDescriptionRequiredValidator() {
- return new ParameterDescriptionRequiredValidator();
- }
-
-}
diff --git a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/PathsValidatorConfiguration.java b/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/PathsValidatorConfiguration.java
deleted file mode 100755
index 6581d82..0000000
--- a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/PathsValidatorConfiguration.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.config;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.paths.PathsLowerCamelCaseValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.PathsValidator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class PathsValidatorConfiguration {
-
- @Bean
- public PathsValidator pathsLowerCamelCaseValidator() {
- return new PathsLowerCamelCaseValidator();
- }
-
-}
diff --git a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/RequestBodyValidatorConfiguration.java b/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/RequestBodyValidatorConfiguration.java
deleted file mode 100755
index ecd0bc8..0000000
--- a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/RequestBodyValidatorConfiguration.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.config;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.requestbody.RequestBodyDescriptionRequiredValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.RequestBodyValidator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class RequestBodyValidatorConfiguration {
-
- @Bean
- public RequestBodyValidator requestBodyDescriptionRequiredValidator() {
- return new RequestBodyDescriptionRequiredValidator();
- }
-
-}
diff --git a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/ResponseValidatorConfiguration.java b/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/ResponseValidatorConfiguration.java
deleted file mode 100755
index d192733..0000000
--- a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/ResponseValidatorConfiguration.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.config;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.response.ResponseKeysValidators;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ResponseValidator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class ResponseValidatorConfiguration {
-
- @Bean
- public ResponseValidator responseHeadersUpperHyphenCaseValidator() {
- return ResponseKeysValidators.HEADERS_UPPER_HYPHEN_CASE_VALIDATOR;
- }
-
-}
diff --git a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/SchemaValidatorConfiguration.java b/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/SchemaValidatorConfiguration.java
deleted file mode 100755
index 7aad01b..0000000
--- a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/SchemaValidatorConfiguration.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.config;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.schema.SchemaKeysValidators;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.schema.SchemaTitleValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.SchemaValidator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class SchemaValidatorConfiguration {
-
- @Bean
- public SchemaValidator schemaTitleValidator() {
- return new SchemaTitleValidator();
- }
-
- @Bean
- public SchemaValidator schemaPropertiesLowerCamelCaseValidator() {
- return SchemaKeysValidators.PROPERTIES_LOWER_CAMEL_CASE_VALIDATOR;
- }
-}
diff --git a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/TagValidatorConfiguration.java b/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/TagValidatorConfiguration.java
deleted file mode 100755
index e402d03..0000000
--- a/oas-validator/oas-validator-compliance-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/config/TagValidatorConfiguration.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.config;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.tag.TagDescriptionRequiredValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.tag.TagNameUpperCamelCaseValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.tag.TagReferenceValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.TagValidator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class TagValidatorConfiguration {
-
- @Bean
- public TagValidator tagDescriptionRequiredValidator() {
- return new TagDescriptionRequiredValidator();
- }
-
- @Bean
- public TagValidator tagNameUpperCamelCaseValidator() {
- return new TagNameUpperCamelCaseValidator();
- }
-
- @Bean
- public TagValidator tagReferenceValidator() {
- return new TagReferenceValidator();
- }
-
-}
diff --git a/oas-validator/oas-validator-compliance-spring/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/config/ValidatorConfigurationsTest.java b/oas-validator/oas-validator-compliance-spring/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/config/ValidatorConfigurationsTest.java
deleted file mode 100644
index dda31f8..0000000
--- a/oas-validator/oas-validator-compliance-spring/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/config/ValidatorConfigurationsTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.config;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.apache.servicecomb.toolkit.oasv.validation.api.ComponentsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.EncodingValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.HeaderValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.InfoValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OpenApiValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ParameterValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.PathsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.RequestBodyValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.SchemaValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.TagValidator;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.BeansException;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-@SpringBootApplication
-public class ValidatorConfigurationsTest implements ApplicationContextAware {
-
- private ApplicationContext applicationContext;
-
- @Test
- public void testConfigurations() {
- assertThat(applicationContext.getBeansOfType(ComponentsValidator.class)).hasSize(14);
- assertThat(applicationContext.getBeansOfType(EncodingValidator.class)).hasSize(2);
- assertThat(applicationContext.getBeansOfType(HeaderValidator.class)).hasSize(2);
- assertThat(applicationContext.getBeansOfType(InfoValidator.class)).hasSize(1);
- assertThat(applicationContext.getBeansOfType(OpenApiValidator.class)).hasSize(8);
- assertThat(applicationContext.getBeansOfType(OperationValidator.class)).hasSize(8);
- assertThat(applicationContext.getBeansOfType(ParameterValidator.class)).hasSize(7);
- assertThat(applicationContext.getBeansOfType(PathsValidator.class)).hasSize(2);
- assertThat(applicationContext.getBeansOfType(RequestBodyValidator.class)).hasSize(2);
- assertThat(applicationContext.getBeansOfType(SchemaValidator.class)).hasSize(2);
- assertThat(applicationContext.getBeansOfType(TagValidator.class)).hasSize(3);
- }
-
- @Override
- public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
- this.applicationContext = applicationContext;
- }
-}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultComponentsValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultComponentsValidatorFactory.java
index 2ff27b5..1fb4fe2 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultComponentsValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultComponentsValidatorFactory.java
@@ -17,27 +17,17 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.components.*;
+import org.apache.servicecomb.toolkit.oasv.validation.api.ComponentsValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.factory.*;
+import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.*;
+import org.springframework.stereotype.Component;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.components.ComponentsKeysValidators;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ComponentsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.factory.ComponentsValidatorFactory;
-import org.apache.servicecomb.toolkit.oasv.validation.factory.HeaderValidatorFactory;
-import org.apache.servicecomb.toolkit.oasv.validation.factory.ParameterValidatorFactory;
-import org.apache.servicecomb.toolkit.oasv.validation.factory.RequestBodyValidatorFactory;
-import org.apache.servicecomb.toolkit.oasv.validation.factory.ResponseValidatorFactory;
-import org.apache.servicecomb.toolkit.oasv.validation.factory.SchemaValidatorFactory;
-import org.apache.servicecomb.toolkit.oasv.validation.factory.SecuritySchemeValidatorFactory;
-import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsHeadersValuesValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsParametersValuesValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsRequestBodiesValuesValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsResponsesValuesValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsSchemasValuesValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsSecuritySchemesValuesValidator;
-import org.springframework.stereotype.Component;
-
@Component
public class DefaultComponentsValidatorFactory implements ComponentsValidatorFactory {
@@ -70,27 +60,92 @@ public class DefaultComponentsValidatorFactory implements ComponentsValidatorFac
}
@Override
- public List<ComponentsValidator> create() {
+ public List<ComponentsValidator> create(FactoryOptions options) {
List<ComponentsValidator> validators = new ArrayList<>();
// skeletons
- validators.add(new ComponentsHeadersValuesValidator(headerValidatorFactory.create()));
- validators.add(new ComponentsParametersValuesValidator(parameterValidatorFactory.create()));
- validators.add(new ComponentsRequestBodiesValuesValidator(requestBodyValidatorFactory.create()));
- validators.add(new ComponentsResponsesValuesValidator(responseValidatorFactory.create()));
- validators.add(new ComponentsSchemasValuesValidator(schemaValidatorFactory.create()));
- validators.add(new ComponentsSecuritySchemesValuesValidator(securitySchemeValidatorFactory.create()));
+ validators.add(new ComponentsHeadersValuesValidator(headerValidatorFactory.create(options)));
+ validators.add(new ComponentsParametersValuesValidator(parameterValidatorFactory.create(options)));
+ validators.add(new ComponentsRequestBodiesValuesValidator(requestBodyValidatorFactory.create(options)));
+ validators.add(new ComponentsResponsesValuesValidator(responseValidatorFactory.create(options)));
+ validators.add(new ComponentsSchemasValuesValidator(schemaValidatorFactory.create(options)));
+ validators.add(new ComponentsSecuritySchemesValuesValidator(securitySchemeValidatorFactory.create(options)));
// concretes
- validators.add(ComponentsKeysValidators.CALLBACKS_UPPER_CAMEL_CASE_VALIDATOR);
- validators.add(ComponentsKeysValidators.EXAMPLES_UPPER_CAMEL_CASE_VALIDATOR);
- validators.add(ComponentsKeysValidators.HEADERS_UPPER_HYPHEN_CASE_VALIDATOR);
- validators.add(ComponentsKeysValidators.LINKS_UPPER_CAMEL_CASE_VALIDATOR);
- validators.add(ComponentsKeysValidators.PARAMETERS_UPPER_CAMEL_CASE_VALIDATOR);
- validators.add(ComponentsKeysValidators.REQUEST_BODIES_UPPER_CAMEL_CASE_VALIDATOR);
- validators.add(ComponentsKeysValidators.RESPONSES_UPPER_CAMEL_CASE_VALIDATOR);
- validators.add(ComponentsKeysValidators.SCHEMAS_UPPER_CAMEL_CASE_VALIDATOR);
-
+ addComponentsCallbacksKeysCaseValidator(validators, options);
+ addComponentsExamplesKeysCaseValidator(validators, options);
+ addComponentsHeadersKeysCaseValidator(validators, options);
+ addComponentsLinksKeysCaseValidator(validators, options);
+ addComponentsParametersKeysCaseValidator(validators, options);
+ addComponentsRequestBodiesKeysCaseValidator(validators, options);
+ addComponentsResponsesKeysCaseValidator(validators, options);
+ addComponentsSchemasKeysCaseValidator(validators, options);
+ addComponentsSecuritySchemesKeysCaseValidator(validators, options);
return Collections.unmodifiableList(validators);
}
+
+ private void addComponentsCallbacksKeysCaseValidator(List<ComponentsValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(ComponentsCallbacksKeysCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ComponentsCallbacksKeysCaseValidator(expectedCase));
+ }
+ }
+
+ private void addComponentsExamplesKeysCaseValidator(List<ComponentsValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(ComponentsExamplesKeysCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ComponentsExamplesKeysCaseValidator(expectedCase));
+ }
+ }
+
+ private void addComponentsHeadersKeysCaseValidator(List<ComponentsValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(ComponentsHeadersKeysCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ComponentsHeadersKeysCaseValidator(expectedCase));
+ }
+ }
+
+ private void addComponentsLinksKeysCaseValidator(List<ComponentsValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(ComponentsLinksKeysCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ComponentsLinksKeysCaseValidator(expectedCase));
+ }
+ }
+
+ private void addComponentsParametersKeysCaseValidator(List<ComponentsValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(ComponentsParametersKeysCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ComponentsParametersKeysCaseValidator(expectedCase));
+ }
+ }
+
+ private void addComponentsRequestBodiesKeysCaseValidator(List<ComponentsValidator> validators,
+ FactoryOptions options) {
+ String expectedCase = options.getString(ComponentsRequestBodiesKeysCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ComponentsRequestBodiesKeysCaseValidator(expectedCase));
+ }
+ }
+
+ private void addComponentsResponsesKeysCaseValidator(List<ComponentsValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(ComponentsResponsesKeysCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ComponentsResponsesKeysCaseValidator(expectedCase));
+ }
+ }
+
+ private void addComponentsSchemasKeysCaseValidator(List<ComponentsValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(ComponentsSchemasKeysCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ComponentsSchemasKeysCaseValidator(expectedCase));
+ }
+ }
+
+ private void addComponentsSecuritySchemesKeysCaseValidator(List<ComponentsValidator> validators,
+ FactoryOptions options) {
+ String expectedCase = options.getString(ComponentsSecuritySchemesKeysCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ComponentsSecuritySchemesKeysCaseValidator(expectedCase));
+ }
+ }
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultEncodingValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultEncodingValidatorFactory.java
index 8b62a11..5e96347 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultEncodingValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultEncodingValidatorFactory.java
@@ -17,17 +17,18 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.encoding.EncodingKeysValidators;
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.encoding.EncodingHeadersKeysCaseValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.EncodingValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.EncodingValidatorFactory;
import org.apache.servicecomb.toolkit.oasv.validation.factory.HeaderValidatorFactory;
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.encoding.EncodingHeadersValuesValidator;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultEncodingValidatorFactory implements EncodingValidatorFactory {
@@ -39,16 +40,23 @@ public class DefaultEncodingValidatorFactory implements EncodingValidatorFactory
}
@Override
- public List<EncodingValidator> create() {
+ public List<EncodingValidator> create(FactoryOptions options) {
List<EncodingValidator> validators = new ArrayList<>();
// skeletons
- validators.add(new EncodingHeadersValuesValidator(headerValidatorFactory.create()));
+ validators.add(new EncodingHeadersValuesValidator(headerValidatorFactory.create(options)));
// concrete
- validators.add(EncodingKeysValidators.HEADERS_UPPER_HYPHEN_CASE_VALIDATOR);
-
+ addEncodingHeadersKeysCaseValidator(validators, options);
return Collections.unmodifiableList(validators);
}
+
+ private void addEncodingHeadersKeysCaseValidator(List<EncodingValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(EncodingHeadersKeysCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new EncodingHeadersKeysCaseValidator(expectedCase));
+ }
+ }
+
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultHeaderValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultHeaderValidatorFactory.java
index 13ef15d..6a0230e 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultHeaderValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultHeaderValidatorFactory.java
@@ -17,10 +17,7 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
import org.apache.servicecomb.toolkit.oasv.compliance.validator.header.HeaderDescriptionRequiredValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.HeaderValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.HeaderValidatorFactory;
@@ -28,6 +25,10 @@ import org.apache.servicecomb.toolkit.oasv.validation.factory.SchemaValidatorFac
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.header.HeaderSchemaValidator;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultHeaderValidatorFactory implements HeaderValidatorFactory {
@@ -39,16 +40,23 @@ public class DefaultHeaderValidatorFactory implements HeaderValidatorFactory {
}
@Override
- public List<HeaderValidator> create() {
+ public List<HeaderValidator> create(FactoryOptions options) {
List<HeaderValidator> validators = new ArrayList<>();
// skeletons
- validators.add(new HeaderSchemaValidator(schemaValidatorFactory.create()));
+ validators.add(new HeaderSchemaValidator(schemaValidatorFactory.create(options)));
// concretes
- validators.add(new HeaderDescriptionRequiredValidator());
-
+ addHeaderDescriptionRequiredValidator(validators, options);
return Collections.unmodifiableList(validators);
}
+
+ private void addHeaderDescriptionRequiredValidator(List<HeaderValidator> validators, FactoryOptions options) {
+ Boolean required = options.getBoolean(HeaderDescriptionRequiredValidator.CONFIG_KEY);
+ if (Boolean.TRUE.equals(required)) {
+ validators.add(new HeaderDescriptionRequiredValidator());
+ }
+ }
+
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultInfoValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultInfoValidatorFactory.java
index 2564208..19f1756 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultInfoValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultInfoValidatorFactory.java
@@ -17,26 +17,32 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
import org.apache.servicecomb.toolkit.oasv.compliance.validator.info.InfoDescriptionRequiredValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.InfoValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.InfoValidatorFactory;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultInfoValidatorFactory implements InfoValidatorFactory {
@Override
- public List<InfoValidator> create() {
- ArrayList<InfoValidator> validators = new ArrayList<>();
+ public List<InfoValidator> create(FactoryOptions options) {
+ List<InfoValidator> validators = new ArrayList<>();
// concretes
- validators.add(new InfoDescriptionRequiredValidator());
-
+ addInfoDescriptionRequiredValidator(validators, options);
return Collections.unmodifiableList(validators);
}
+ private void addInfoDescriptionRequiredValidator(List<InfoValidator> validators, FactoryOptions options) {
+ Boolean required = options.getBoolean(InfoDescriptionRequiredValidator.CONFIG_KEY);
+ if (Boolean.TRUE.equals(required)) {
+ validators.add(new InfoDescriptionRequiredValidator());
+ }
+ }
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultMediaTypeValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultMediaTypeValidatorFactory.java
index 3a760ba..eeb0273 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultMediaTypeValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultMediaTypeValidatorFactory.java
@@ -17,10 +17,7 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
import org.apache.servicecomb.toolkit.oasv.validation.api.MediaTypeValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.EncodingValidatorFactory;
import org.apache.servicecomb.toolkit.oasv.validation.factory.MediaTypeValidatorFactory;
@@ -29,6 +26,10 @@ import org.apache.servicecomb.toolkit.oasv.validation.skeleton.mediatype.MediaTy
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.mediatype.MediaTypeSchemaValidator;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultMediaTypeValidatorFactory implements MediaTypeValidatorFactory {
@@ -44,13 +45,13 @@ public class DefaultMediaTypeValidatorFactory implements MediaTypeValidatorFacto
}
@Override
- public List<MediaTypeValidator> create() {
+ public List<MediaTypeValidator> create(FactoryOptions options) {
List<MediaTypeValidator> validators = new ArrayList<>();
// skeletons
- validators.add(new MediaTypeSchemaValidator(schemaValidatorFactory.create()));
- validators.add(new MediaTypeEncodingValidator(encodingValidatorFactory.create()));
+ validators.add(new MediaTypeSchemaValidator(schemaValidatorFactory.create(options)));
+ validators.add(new MediaTypeEncodingValidator(encodingValidatorFactory.create(options)));
return Collections.unmodifiableList(validators);
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOasSpecValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOasSpecValidatorFactory.java
index c866fc1..967f9ab 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOasSpecValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOasSpecValidatorFactory.java
@@ -17,6 +17,7 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
import org.apache.servicecomb.toolkit.oasv.validation.api.DefaultOasSpecValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.OasSpecValidatorFactory;
@@ -34,8 +35,8 @@ public class DefaultOasSpecValidatorFactory implements OasSpecValidatorFactory {
}
@Override
- public OasSpecValidator create() {
- return new DefaultOasSpecValidator(openApiValidatorFactory.create());
+ public OasSpecValidator create(FactoryOptions options) {
+ return new DefaultOasSpecValidator(openApiValidatorFactory.create(options));
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOpenApiValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOpenApiValidatorFactory.java
index ff1a9c7..a580b42 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOpenApiValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOpenApiValidatorFactory.java
@@ -17,27 +17,19 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi.OpenApiSecuritySizeEqValidator;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi.OpenApiTagsSizeGteValidator;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi.OpenApiVersionGteValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OpenApiValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.factory.*;
+import org.apache.servicecomb.toolkit.oasv.validation.skeleton.openapi.*;
+import org.springframework.stereotype.Component;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi.OpenApiSecurityEmptyValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi.OpenApiTagNotEmptyValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi.OpenApiVersionValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OpenApiValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.factory.ComponentsValidatorFactory;
-import org.apache.servicecomb.toolkit.oasv.validation.factory.InfoValidatorFactory;
-import org.apache.servicecomb.toolkit.oasv.validation.factory.OpenApiValidatorFactory;
-import org.apache.servicecomb.toolkit.oasv.validation.factory.PathsValidatorFactory;
-import org.apache.servicecomb.toolkit.oasv.validation.factory.ServerValidatorFactory;
-import org.apache.servicecomb.toolkit.oasv.validation.factory.TagValidatorFactory;
-import org.apache.servicecomb.toolkit.oasv.validation.skeleton.openapi.OpenApiComponentsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.skeleton.openapi.OpenApiInfoValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.skeleton.openapi.OpenApiPathsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.skeleton.openapi.OpenApiServersValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.skeleton.openapi.OpenApiTagsValidator;
-import org.springframework.stereotype.Component;
-
@Component
public class DefaultOpenApiValidatorFactory implements OpenApiValidatorFactory {
@@ -65,22 +57,44 @@ public class DefaultOpenApiValidatorFactory implements OpenApiValidatorFactory {
}
@Override
- public List<OpenApiValidator> create() {
+ public List<OpenApiValidator> create(FactoryOptions options) {
List<OpenApiValidator> validators = new ArrayList<>();
// skeletons
- validators.add(new OpenApiTagsValidator(tagValidatorFactory.create()));
- validators.add(new OpenApiInfoValidator(infoValidatorFactory.create()));
- validators.add(new OpenApiPathsValidator(pathsValidatorFactory.create()));
- validators.add(new OpenApiComponentsValidator(componentsValidatorFactory.create()));
- validators.add(new OpenApiServersValidator(serverValidatorFactory.create()));
+ validators.add(new OpenApiTagsValidator(tagValidatorFactory.create(options)));
+ validators.add(new OpenApiInfoValidator(infoValidatorFactory.create(options)));
+ validators.add(new OpenApiPathsValidator(pathsValidatorFactory.create(options)));
+ validators.add(new OpenApiComponentsValidator(componentsValidatorFactory.create(options)));
+ validators.add(new OpenApiServersValidator(serverValidatorFactory.create(options)));
// concretes
- validators.add(new OpenApiSecurityEmptyValidator());
- validators.add(new OpenApiTagNotEmptyValidator());
- validators.add(new OpenApiVersionValidator());
+ addOpenApiSecuritySizeValidator(validators, options);
+ addOpenApiTagsSizeValidator(validators, options);
+ addOpenApiVersionGteValidator(validators, options);
return Collections.unmodifiableList(validators);
}
+
+ private void addOpenApiSecuritySizeValidator(List<OpenApiValidator> validators, FactoryOptions options) {
+ Integer size = options.getInteger(OpenApiSecuritySizeEqValidator.CONFIG_KEY);
+ if (size != null) {
+ validators.add(new OpenApiSecuritySizeEqValidator(size));
+ }
+ }
+
+ private void addOpenApiTagsSizeValidator(List<OpenApiValidator> validators, FactoryOptions options) {
+ Integer size = options.getInteger(OpenApiTagsSizeGteValidator.CONFIG_KEY);
+ if (size != null) {
+ validators.add(new OpenApiTagsSizeGteValidator(size));
+ }
+ }
+
+ private void addOpenApiVersionGteValidator(List<OpenApiValidator> validators, FactoryOptions options) {
+ String versionGte = options.getString(OpenApiVersionGteValidator.CONFIG_KEY);
+ if (versionGte != null) {
+ validators.add(new OpenApiVersionGteValidator(versionGte));
+ }
+ }
+
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOperationValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOperationValidatorFactory.java
index 67adf45..6b31f2a 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOperationValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOperationValidatorFactory.java
@@ -17,15 +17,8 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.operation.OperationIdLowerCamelCaseValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.operation.OperationServersEmptyValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.operation.OperationSummaryRequiredValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.operation.OperationTagsOnlyOneValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.operation.OperationTagsReferenceValidator;
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.operation.*;
import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.OperationValidatorFactory;
import org.apache.servicecomb.toolkit.oasv.validation.factory.ParameterValidatorFactory;
@@ -36,6 +29,10 @@ import org.apache.servicecomb.toolkit.oasv.validation.skeleton.operation.Operati
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.operation.OperationResponsesValidator;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultOperationValidatorFactory implements OperationValidatorFactory {
@@ -56,22 +53,57 @@ public class DefaultOperationValidatorFactory implements OperationValidatorFacto
}
@Override
- public List<OperationValidator> create() {
+ public List<OperationValidator> create(FactoryOptions options) {
List<OperationValidator> validators = new ArrayList<>();
// skeletons
- validators.add(new OperationParametersValidator(parameterValidatorFactory.create()));
- validators.add(new OperationResponsesValidator(responsesValidatorFactory.create()));
- validators.add(new OperationRequestBodyValidator(requestBodyValidatorFactory.create()));
+ validators.add(new OperationParametersValidator(parameterValidatorFactory.create(options)));
+ validators.add(new OperationResponsesValidator(responsesValidatorFactory.create(options)));
+ validators.add(new OperationRequestBodyValidator(requestBodyValidatorFactory.create(options)));
// concretes
- validators.add(new OperationIdLowerCamelCaseValidator());
- validators.add(new OperationSummaryRequiredValidator());
- validators.add(new OperationTagsOnlyOneValidator());
- validators.add(new OperationTagsReferenceValidator());
- validators.add(new OperationServersEmptyValidator());
+ addOperationSummaryRequiredValidator(validators, options);
+ addOperationIdCaseValidator(validators, options);
+ addOperationTagsSizeEqValidator(validators, options);
+ addOperationServersSizeEqValidator(validators, options);
+ addOperationTagsReferenceValidator(validators, options);
return Collections.unmodifiableList(validators);
}
+
+ private void addOperationSummaryRequiredValidator(List<OperationValidator> validators, FactoryOptions options) {
+ Boolean required = options.getBoolean(OperationSummaryRequiredValidator.CONFIG_KEY);
+ if (Boolean.TRUE.equals(required)) {
+ validators.add(new OperationSummaryRequiredValidator());
+ }
+ }
+
+ private void addOperationIdCaseValidator(List<OperationValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(OperationIdCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new OperationIdCaseValidator(expectedCase));
+ }
+ }
+
+ private void addOperationTagsSizeEqValidator(List<OperationValidator> validators, FactoryOptions options) {
+ Integer expectedSize = options.getInteger(OperationTagsSizeEqValidator.CONFIG_KEY);
+ if (expectedSize != null) {
+ validators.add(new OperationTagsSizeEqValidator(expectedSize));
+ }
+ }
+
+ private void addOperationServersSizeEqValidator(List<OperationValidator> validators, FactoryOptions options) {
+ Integer expectedSize = options.getInteger(OperationServersSizeEqValidator.CONFIG_KEY);
+ if (expectedSize != null) {
+ validators.add(new OperationServersSizeEqValidator(expectedSize));
+ }
+ }
+
+ private void addOperationTagsReferenceValidator(List<OperationValidator> validators, FactoryOptions options) {
+ Boolean needCheck = options.getBoolean(OperationTagsReferenceValidator.CONFIG_KEY);
+ if (Boolean.TRUE.equals(needCheck)) {
+ validators.add(new OperationTagsReferenceValidator());
+ }
+ }
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultParameterValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultParameterValidatorFactory.java
index 0180834..1b9a90c 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultParameterValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultParameterValidatorFactory.java
@@ -17,15 +17,8 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter.ParameterCookieLowerCamelCaseValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter.ParameterDescriptionRequiredValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter.ParameterHeaderUpperHyphenCaseValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter.ParameterPathLowerCamelCaseValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter.ParameterQueryLowerCamelCaseValidator;
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter.*;
import org.apache.servicecomb.toolkit.oasv.validation.api.ParameterValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.MediaTypeValidatorFactory;
import org.apache.servicecomb.toolkit.oasv.validation.factory.ParameterValidatorFactory;
@@ -34,6 +27,10 @@ import org.apache.servicecomb.toolkit.oasv.validation.skeleton.parameter.Paramet
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.parameter.ParameterSchemaValidator;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultParameterValidatorFactory implements ParameterValidatorFactory {
@@ -49,21 +46,57 @@ public class DefaultParameterValidatorFactory implements ParameterValidatorFacto
}
@Override
- public List<ParameterValidator> create() {
+ public List<ParameterValidator> create(FactoryOptions options) {
List<ParameterValidator> validators = new ArrayList<>();
// skeletons
- validators.add(new ParameterSchemaValidator(schemaValidatorFactory.create()));
- validators.add(new ParameterContentValidator(mediaTypeValidatorFactory.create()));
+ validators.add(new ParameterSchemaValidator(schemaValidatorFactory.create(options)));
+ validators.add(new ParameterContentValidator(mediaTypeValidatorFactory.create(options)));
// concretes
- validators.add(new ParameterCookieLowerCamelCaseValidator());
- validators.add(new ParameterHeaderUpperHyphenCaseValidator());
- validators.add(new ParameterPathLowerCamelCaseValidator());
- validators.add(new ParameterQueryLowerCamelCaseValidator());
- validators.add(new ParameterDescriptionRequiredValidator());
+ addParameterNameCookieCaseValidator(validators, options);
+ addParameterNameHeaderCaseValidator(validators, options);
+ addParameterNamePathCaseValidator(validators, options);
+ addParameterNameQueryCaseValidator(validators, options);
+ addParameterDescriptionRequiredValidator(validators, options);
return Collections.unmodifiableList(validators);
}
+
+ private void addParameterNameCookieCaseValidator(List<ParameterValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(ParameterNameCookieCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ParameterNameCookieCaseValidator(expectedCase));
+ }
+ }
+
+ private void addParameterNameHeaderCaseValidator(List<ParameterValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(ParameterNameHeaderCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ParameterNameHeaderCaseValidator(expectedCase));
+ }
+ }
+
+ private void addParameterNamePathCaseValidator(List<ParameterValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(ParameterNamePathCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ParameterNamePathCaseValidator(expectedCase));
+ }
+ }
+
+ private void addParameterNameQueryCaseValidator(List<ParameterValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(ParameterNameQueryCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ParameterNameQueryCaseValidator(expectedCase));
+ }
+ }
+
+ private void addParameterDescriptionRequiredValidator(List<ParameterValidator> validators, FactoryOptions options) {
+ Boolean required = options.getBoolean(ParameterDescriptionRequiredValidator.CONFIG_KEY);
+ if (Boolean.TRUE.equals(required)) {
+ validators.add(new ParameterDescriptionRequiredValidator());
+ }
+ }
+
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathItemValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathItemValidatorFactory.java
index 4aa4b05..85286ea 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathItemValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathItemValidatorFactory.java
@@ -17,10 +17,7 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
import org.apache.servicecomb.toolkit.oasv.validation.api.PathItemValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.OperationValidatorFactory;
import org.apache.servicecomb.toolkit.oasv.validation.factory.ParameterValidatorFactory;
@@ -29,6 +26,10 @@ import org.apache.servicecomb.toolkit.oasv.validation.skeleton.pathitem.PathItem
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.pathitem.PathItemParametersValidator;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultPathItemValidatorFactory implements PathItemValidatorFactory {
@@ -44,12 +45,12 @@ public class DefaultPathItemValidatorFactory implements PathItemValidatorFactory
}
@Override
- public List<PathItemValidator> create() {
+ public List<PathItemValidator> create(FactoryOptions options) {
ArrayList<PathItemValidator> validators = new ArrayList<>();
// skeletons
- validators.add(new PathItemOperationsValidator(operationValidatorFactory.create()));
- validators.add(new PathItemParametersValidator(parameterValidatorFactory.create()));
+ validators.add(new PathItemOperationsValidator(operationValidatorFactory.create(options)));
+ validators.add(new PathItemParametersValidator(parameterValidatorFactory.create(options)));
return Collections.unmodifiableList(validators);
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathsValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathsValidatorFactory.java
index e92faf7..dd22dee 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathsValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathsValidatorFactory.java
@@ -17,17 +17,18 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.paths.PathsLowerCamelCaseValidator;
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.paths.PathsKeyCaseValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.PathsValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.PathItemValidatorFactory;
import org.apache.servicecomb.toolkit.oasv.validation.factory.PathsValidatorFactory;
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.paths.PathsPathItemsValidator;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultPathsValidatorFactory implements PathsValidatorFactory {
@@ -39,16 +40,22 @@ public class DefaultPathsValidatorFactory implements PathsValidatorFactory {
}
@Override
- public List<PathsValidator> create() {
+ public List<PathsValidator> create(FactoryOptions options) {
List<PathsValidator> validators = new ArrayList<>();
// skeletons
- validators.add(new PathsPathItemsValidator(pathItemValidatorFactory.create()));
+ validators.add(new PathsPathItemsValidator(pathItemValidatorFactory.create(options)));
// concretes
- validators.add(new PathsLowerCamelCaseValidator());
-
+ addPathsKeyCaseValidator(validators, options);
return Collections.unmodifiableList(validators);
}
+ private void addPathsKeyCaseValidator(List<PathsValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(PathsKeyCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new PathsKeyCaseValidator(expectedCase));
+ }
+ }
+
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultRequestBodyValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultRequestBodyValidatorFactory.java
index 08c9f1d..d5427a5 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultRequestBodyValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultRequestBodyValidatorFactory.java
@@ -17,10 +17,7 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
import org.apache.servicecomb.toolkit.oasv.compliance.validator.requestbody.RequestBodyDescriptionRequiredValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.RequestBodyValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.MediaTypeValidatorFactory;
@@ -28,6 +25,10 @@ import org.apache.servicecomb.toolkit.oasv.validation.factory.RequestBodyValidat
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.requestbody.RequestBodyContentValidator;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultRequestBodyValidatorFactory implements RequestBodyValidatorFactory {
@@ -39,15 +40,24 @@ public class DefaultRequestBodyValidatorFactory implements RequestBodyValidatorF
}
@Override
- public List<RequestBodyValidator> create() {
+ public List<RequestBodyValidator> create(FactoryOptions options) {
List<RequestBodyValidator> validators = new ArrayList<>();
// skeletons
- validators.add(new RequestBodyContentValidator(mediaTypeValidatorFactory.create()));
+ validators.add(new RequestBodyContentValidator(mediaTypeValidatorFactory.create(options)));
// concretes
- validators.add(new RequestBodyDescriptionRequiredValidator());
+ addRequestBodyDescriptionRequiredValidator(validators, options);
return Collections.unmodifiableList(validators);
}
+
+ private void addRequestBodyDescriptionRequiredValidator(List<RequestBodyValidator> validators,
+ FactoryOptions options) {
+ Boolean required = options.getBoolean(RequestBodyDescriptionRequiredValidator.CONFIG_KEY);
+ if (Boolean.TRUE.equals(required)) {
+ validators.add(new RequestBodyDescriptionRequiredValidator());
+ }
+ }
+
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponseValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponseValidatorFactory.java
index b3823b3..9333450 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponseValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponseValidatorFactory.java
@@ -17,11 +17,8 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.response.ResponseKeysValidators;
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.response.ResponseHeadersKeysCaseValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.ResponseValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.HeaderValidatorFactory;
import org.apache.servicecomb.toolkit.oasv.validation.factory.MediaTypeValidatorFactory;
@@ -30,6 +27,10 @@ import org.apache.servicecomb.toolkit.oasv.validation.skeleton.response.Response
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.response.ResponseHeadersValuesValidator;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultResponseValidatorFactory implements ResponseValidatorFactory {
@@ -45,17 +46,24 @@ public class DefaultResponseValidatorFactory implements ResponseValidatorFactory
}
@Override
- public List<ResponseValidator> create() {
+ public List<ResponseValidator> create(FactoryOptions options) {
List<ResponseValidator> validators = new ArrayList<>();
// skeletons
- validators.add(new ResponseContentValidator(mediaTypeValidatorFactory.create()));
- validators.add(new ResponseHeadersValuesValidator(headerValidatorFactory.create()));
+ validators.add(new ResponseContentValidator(mediaTypeValidatorFactory.create(options)));
+ validators.add(new ResponseHeadersValuesValidator(headerValidatorFactory.create(options)));
// concretes
- validators.add(ResponseKeysValidators.HEADERS_UPPER_HYPHEN_CASE_VALIDATOR);
-
+ addResponseHeadersKeysCaseValidator(validators, options);
return Collections.unmodifiableList(validators);
}
+
+ private void addResponseHeadersKeysCaseValidator(List<ResponseValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(ResponseHeadersKeysCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new ResponseHeadersKeysCaseValidator(expectedCase));
+ }
+ }
+
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponsesValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponsesValidatorFactory.java
index 6c55486..4056b29 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponsesValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponsesValidatorFactory.java
@@ -17,16 +17,17 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
import org.apache.servicecomb.toolkit.oasv.validation.api.ResponsesValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.ResponseValidatorFactory;
import org.apache.servicecomb.toolkit.oasv.validation.factory.ResponsesValidatorFactory;
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.responses.ResponsesResponsesValidator;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultResponsesValidatorFactory implements ResponsesValidatorFactory {
@@ -38,12 +39,12 @@ public class DefaultResponsesValidatorFactory implements ResponsesValidatorFacto
}
@Override
- public List<ResponsesValidator> create() {
+ public List<ResponsesValidator> create(FactoryOptions options) {
List<ResponsesValidator> validators = new ArrayList<>();
// skeletons
- validators.add(new ResponsesResponsesValidator(responseValidatorFactory.create()));
+ validators.add(new ResponsesResponsesValidator(responseValidatorFactory.create(options)));
return Collections.unmodifiableList(validators);
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSchemaValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSchemaValidatorFactory.java
index 7e099b0..aca8c6c 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSchemaValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSchemaValidatorFactory.java
@@ -17,27 +17,42 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.schema.SchemaKeysValidators;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.schema.SchemaTitleValidator;
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.schema.SchemaPropertiesKeysCaseValidator;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.schema.SchemaTitleRequiredValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.SchemaValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.SchemaValidatorFactory;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultSchemaValidatorFactory implements SchemaValidatorFactory {
@Override
- public List<SchemaValidator> create() {
+ public List<SchemaValidator> create(FactoryOptions options) {
ArrayList<SchemaValidator> validators = new ArrayList<>();
// concretes
- validators.add(new SchemaTitleValidator());
- validators.add(SchemaKeysValidators.PROPERTIES_LOWER_CAMEL_CASE_VALIDATOR);
-
+ addSchemaTitleRequiredValidator(validators, options);
+ addSchemaPropertiesKeysCaseValidator(validators, options);
return Collections.unmodifiableList(validators);
}
+
+ private void addSchemaTitleRequiredValidator(List<SchemaValidator> validators, FactoryOptions options) {
+ Boolean required = options.getBoolean(SchemaTitleRequiredValidator.CONFIG_KEY);
+ if (Boolean.TRUE.equals(required)) {
+ validators.add(new SchemaTitleRequiredValidator());
+ }
+ }
+
+ private void addSchemaPropertiesKeysCaseValidator(List<SchemaValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(SchemaPropertiesKeysCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new SchemaPropertiesKeysCaseValidator(expectedCase));
+ }
+ }
+
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSecuritySchemeValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSecuritySchemeValidatorFactory.java
index 5eec0e6..489a132 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSecuritySchemeValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSecuritySchemeValidatorFactory.java
@@ -17,18 +17,19 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.Collections;
-import java.util.List;
-
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
import org.apache.servicecomb.toolkit.oasv.validation.api.SecuritySchemeValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.SecuritySchemeValidatorFactory;
import org.springframework.stereotype.Component;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultSecuritySchemeValidatorFactory implements SecuritySchemeValidatorFactory {
@Override
- public List<SecuritySchemeValidator> create() {
+ public List<SecuritySchemeValidator> create(FactoryOptions options) {
return Collections.emptyList();
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultServerValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultServerValidatorFactory.java
index 53f075a..fcf04f2 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultServerValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultServerValidatorFactory.java
@@ -17,18 +17,19 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.Collections;
-import java.util.List;
-
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
import org.apache.servicecomb.toolkit.oasv.validation.api.ServerValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.ServerValidatorFactory;
import org.springframework.stereotype.Component;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultServerValidatorFactory implements ServerValidatorFactory {
@Override
- public List<ServerValidator> create() {
+ public List<ServerValidator> create(FactoryOptions options) {
return Collections.emptyList();
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultTagValidatorFactory.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultTagValidatorFactory.java
index 2969779..9948c1a 100644
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultTagValidatorFactory.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultTagValidatorFactory.java
@@ -17,29 +17,52 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
import org.apache.servicecomb.toolkit.oasv.compliance.validator.tag.TagDescriptionRequiredValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.tag.TagNameUpperCamelCaseValidator;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.tag.TagReferenceValidator;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.tag.TagMustBeReferencedValidator;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.tag.TagNameCaseValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.TagValidator;
import org.apache.servicecomb.toolkit.oasv.validation.factory.TagValidatorFactory;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Component
public class DefaultTagValidatorFactory implements TagValidatorFactory {
@Override
- public List<TagValidator> create() {
- ArrayList<TagValidator> validators = new ArrayList<>();
+ public List<TagValidator> create(FactoryOptions options) {
+ List<TagValidator> validators = new ArrayList<>();
// concretes
- validators.add(new TagDescriptionRequiredValidator());
- validators.add(new TagNameUpperCamelCaseValidator());
- validators.add(new TagReferenceValidator());
+ addTagDescriptionRequiredValidator(validators, options);
+ addTagMustBeReferencedValidator(validators, options);
+ addTagNameCaseValidator(validators, options);
return Collections.unmodifiableList(validators);
}
+
+ private void addTagDescriptionRequiredValidator(List<TagValidator> validators, FactoryOptions options) {
+ Boolean required = options.getBoolean(TagDescriptionRequiredValidator.CONFIG_KEY);
+ if (Boolean.TRUE.equals(required)) {
+ validators.add(new TagDescriptionRequiredValidator());
+ }
+ }
+
+ private void addTagMustBeReferencedValidator(List<TagValidator> validators, FactoryOptions options) {
+ Boolean required = options.getBoolean(TagMustBeReferencedValidator.CONFIG_KEY);
+ if (Boolean.TRUE.equals(required)) {
+ validators.add(new TagMustBeReferencedValidator());
+ }
+ }
+
+ private void addTagNameCaseValidator(List<TagValidator> validators, FactoryOptions options) {
+ String expectedCase = options.getString(TagNameCaseValidator.CONFIG_KEY);
+ if (expectedCase != null) {
+ validators.add(new TagNameCaseValidator(expectedCase));
+ }
+ }
+
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/ValidatorFactoryTestConfiguration.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/ValidatorFactoryComponents.java
similarity index 95%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/ValidatorFactoryTestConfiguration.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/ValidatorFactoryComponents.java
index e7b6af9..a3193d2 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/ValidatorFactoryTestConfiguration.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/ValidatorFactoryComponents.java
@@ -22,5 +22,5 @@ import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan
-class ValidatorFactoryTestConfiguration {
+public interface ValidatorFactoryComponents {
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsCallbacksKeysCaseValidator.java
similarity index 55%
copy from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
copy to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsCallbacksKeysCaseValidator.java
index 4bdef79..bb9011c 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsCallbacksKeysCaseValidator.java
@@ -15,34 +15,30 @@
* limitations under the License.
*/
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
+package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
-import io.swagger.v3.oas.models.tags.Tag;
+import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsCallbacksKeysValidator;
-import java.util.List;
-
-import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isUpperCamelCase;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
- * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>
- * .name property validator
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject">Components Object</a>
+ * .callbacks property key case validator
* <ul>
- * <li>must be upper camel case</li>
+ * <li>config item: components.callbacks.key.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class TagNameUpperCamelCaseValidator implements TagValidator {
+public class ComponentsCallbacksKeysCaseValidator extends ComponentsCallbacksKeysValidator {
- @Override
- public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, Tag tag) {
+ public static final String CONFIG_KEY = "components.callbacks.key.case";
+ public static final String ERROR = "Must be ";
- if (!isUpperCamelCase(tag.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.UPPER_CAMEL_CASE));
- }
- return emptyList();
+ public ComponentsCallbacksKeysCaseValidator(String expectedCase) {
+ super(
+ key -> isMatchCase(expectedCase, key),
+ key -> ERROR + expectedCase
+ );
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsExamplesKeysCaseValidator.java
similarity index 55%
copy from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
copy to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsExamplesKeysCaseValidator.java
index 4bdef79..7ede020 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsExamplesKeysCaseValidator.java
@@ -15,34 +15,30 @@
* limitations under the License.
*/
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
+package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
-import io.swagger.v3.oas.models.tags.Tag;
+import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsExamplesKeysValidator;
-import java.util.List;
-
-import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isUpperCamelCase;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
- * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>
- * .name property validator
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject">Components Object</a>
+ * .examples property key case validator
* <ul>
- * <li>must be upper camel case</li>
+ * <li>config item: components.examples.key.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class TagNameUpperCamelCaseValidator implements TagValidator {
+public class ComponentsExamplesKeysCaseValidator extends ComponentsExamplesKeysValidator {
- @Override
- public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, Tag tag) {
+ public static final String CONFIG_KEY = "components.examples.key.case";
+ public static final String ERROR = "Must be ";
- if (!isUpperCamelCase(tag.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.UPPER_CAMEL_CASE));
- }
- return emptyList();
+ public ComponentsExamplesKeysCaseValidator(String expectedCase) {
+ super(
+ key -> isMatchCase(expectedCase, key),
+ key -> ERROR + expectedCase
+ );
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsHeadersKeysCaseValidator.java
similarity index 55%
copy from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
copy to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsHeadersKeysCaseValidator.java
index 4bdef79..00e7945 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsHeadersKeysCaseValidator.java
@@ -15,34 +15,30 @@
* limitations under the License.
*/
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
+package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
-import io.swagger.v3.oas.models.tags.Tag;
+import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsHeadersKeysValidator;
-import java.util.List;
-
-import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isUpperCamelCase;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
- * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>
- * .name property validator
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject">Components Object</a>
+ * .headers property key case validator
* <ul>
- * <li>must be upper camel case</li>
+ * <li>config item: components.headers.key.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class TagNameUpperCamelCaseValidator implements TagValidator {
+public class ComponentsHeadersKeysCaseValidator extends ComponentsHeadersKeysValidator {
- @Override
- public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, Tag tag) {
+ public static final String CONFIG_KEY = "components.headers.key.case";
+ public static final String ERROR = "Must be ";
- if (!isUpperCamelCase(tag.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.UPPER_CAMEL_CASE));
- }
- return emptyList();
+ public ComponentsHeadersKeysCaseValidator(String expectedCase) {
+ super(
+ key -> isMatchCase(expectedCase, key),
+ key -> ERROR + expectedCase
+ );
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsKeysValidators.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsKeysValidators.java
deleted file mode 100755
index b78cb0d..0000000
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsKeysValidators.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-
-import org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.*;
-
-public abstract class ComponentsKeysValidators {
-
- public static final ComponentsCallbacksKeysValidator CALLBACKS_UPPER_CAMEL_CASE_VALIDATOR = new ComponentsCallbacksKeysValidator(
- key -> StringCaseUtils.isUpperCamelCase(key),
- key -> ViolationMessages.UPPER_CAMEL_CASE
- );
- public static final ComponentsExamplesKeysValidator EXAMPLES_UPPER_CAMEL_CASE_VALIDATOR = new ComponentsExamplesKeysValidator(
- key -> StringCaseUtils.isUpperCamelCase(key),
- key -> ViolationMessages.UPPER_CAMEL_CASE
- );
- public static final ComponentsHeadersKeysValidator HEADERS_UPPER_HYPHEN_CASE_VALIDATOR = new ComponentsHeadersKeysValidator(
- key -> StringCaseUtils.isUpperHyphenCase(key),
- key -> ViolationMessages.UPPER_HYPHEN_CASE
- );
- public static final ComponentsLinksKeysValidator LINKS_UPPER_CAMEL_CASE_VALIDATOR = new ComponentsLinksKeysValidator(
- key -> StringCaseUtils.isUpperCamelCase(key),
- key -> ViolationMessages.UPPER_CAMEL_CASE
- );
- public static final ComponentsParametersKeysValidator PARAMETERS_UPPER_CAMEL_CASE_VALIDATOR = new ComponentsParametersKeysValidator(
- key -> StringCaseUtils.isUpperCamelCase(key),
- key -> ViolationMessages.UPPER_CAMEL_CASE
- );
- public static final ComponentsRequestBodiesKeysValidator REQUEST_BODIES_UPPER_CAMEL_CASE_VALIDATOR = new ComponentsRequestBodiesKeysValidator(
- key -> StringCaseUtils.isUpperCamelCase(key),
- key -> ViolationMessages.UPPER_CAMEL_CASE
- );
- public static final ComponentsResponsesKeysValidator RESPONSES_UPPER_CAMEL_CASE_VALIDATOR = new ComponentsResponsesKeysValidator(
- key -> StringCaseUtils.isUpperCamelCase(key),
- key -> ViolationMessages.UPPER_CAMEL_CASE
- );
- public static final ComponentsSchemasKeysValidator SCHEMAS_UPPER_CAMEL_CASE_VALIDATOR = new ComponentsSchemasKeysValidator(
- key -> StringCaseUtils.isUpperCamelCase(key),
- key -> ViolationMessages.UPPER_CAMEL_CASE
- );
-
-}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsLinksKeysCaseValidator.java
similarity index 55%
copy from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
copy to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsLinksKeysCaseValidator.java
index 4bdef79..18750e2 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsLinksKeysCaseValidator.java
@@ -15,34 +15,30 @@
* limitations under the License.
*/
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
+package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
-import io.swagger.v3.oas.models.tags.Tag;
+import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsLinksKeysValidator;
-import java.util.List;
-
-import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isUpperCamelCase;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
- * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>
- * .name property validator
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject">Components Object</a>
+ * .links property key case validator
* <ul>
- * <li>must be upper camel case</li>
+ * <li>config item: components.links.key.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class TagNameUpperCamelCaseValidator implements TagValidator {
+public class ComponentsLinksKeysCaseValidator extends ComponentsLinksKeysValidator {
- @Override
- public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, Tag tag) {
+ public static final String CONFIG_KEY = "components.links.key.case";
+ public static final String ERROR = "Must be ";
- if (!isUpperCamelCase(tag.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.UPPER_CAMEL_CASE));
- }
- return emptyList();
+ public ComponentsLinksKeysCaseValidator(String expectedCase) {
+ super(
+ key -> isMatchCase(expectedCase, key),
+ key -> ERROR + expectedCase
+ );
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsParametersKeysCaseValidator.java
similarity index 55%
copy from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
copy to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsParametersKeysCaseValidator.java
index 4bdef79..15e5d53 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsParametersKeysCaseValidator.java
@@ -15,34 +15,30 @@
* limitations under the License.
*/
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
+package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
-import io.swagger.v3.oas.models.tags.Tag;
+import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsParametersKeysValidator;
-import java.util.List;
-
-import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isUpperCamelCase;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
- * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>
- * .name property validator
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject">Components Object</a>
+ * .parameters property key case validator
* <ul>
- * <li>must be upper camel case</li>
+ * <li>config item: components.parameters.key.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class TagNameUpperCamelCaseValidator implements TagValidator {
+public class ComponentsParametersKeysCaseValidator extends ComponentsParametersKeysValidator {
- @Override
- public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, Tag tag) {
+ public static final String CONFIG_KEY = "components.parameters.key.case";
+ public static final String ERROR = "Must be ";
- if (!isUpperCamelCase(tag.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.UPPER_CAMEL_CASE));
- }
- return emptyList();
+ public ComponentsParametersKeysCaseValidator(String expectedCase) {
+ super(
+ key -> isMatchCase(expectedCase, key),
+ key -> ERROR + expectedCase
+ );
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsRequestBodiesKeysCaseValidator.java
similarity index 55%
copy from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
copy to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsRequestBodiesKeysCaseValidator.java
index 4bdef79..6bf3242 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsRequestBodiesKeysCaseValidator.java
@@ -15,34 +15,30 @@
* limitations under the License.
*/
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
+package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
-import io.swagger.v3.oas.models.tags.Tag;
+import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsRequestBodiesKeysValidator;
-import java.util.List;
-
-import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isUpperCamelCase;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
- * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>
- * .name property validator
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject">Components Object</a>
+ * .requestBodies property key case validator
* <ul>
- * <li>must be upper camel case</li>
+ * <li>config item: components.requestBodies.key.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class TagNameUpperCamelCaseValidator implements TagValidator {
+public class ComponentsRequestBodiesKeysCaseValidator extends ComponentsRequestBodiesKeysValidator {
- @Override
- public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, Tag tag) {
+ public static final String CONFIG_KEY = "components.requestBodies.key.case";
+ public static final String ERROR = "Must be ";
- if (!isUpperCamelCase(tag.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.UPPER_CAMEL_CASE));
- }
- return emptyList();
+ public ComponentsRequestBodiesKeysCaseValidator(String expectedCase) {
+ super(
+ key -> isMatchCase(expectedCase, key),
+ key -> ERROR + expectedCase
+ );
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsResponsesKeysCaseValidator.java
similarity index 55%
copy from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
copy to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsResponsesKeysCaseValidator.java
index 4bdef79..0e51b3c 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsResponsesKeysCaseValidator.java
@@ -15,34 +15,30 @@
* limitations under the License.
*/
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
+package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
-import io.swagger.v3.oas.models.tags.Tag;
+import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsResponsesKeysValidator;
-import java.util.List;
-
-import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isUpperCamelCase;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
- * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>
- * .name property validator
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject">Components Object</a>
+ * .responses property key case validator
* <ul>
- * <li>must be upper camel case</li>
+ * <li>config item: components.responses.key.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class TagNameUpperCamelCaseValidator implements TagValidator {
+public class ComponentsResponsesKeysCaseValidator extends ComponentsResponsesKeysValidator {
- @Override
- public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, Tag tag) {
+ public static final String CONFIG_KEY = "components.responses.key.case";
+ public static final String ERROR = "Must be ";
- if (!isUpperCamelCase(tag.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.UPPER_CAMEL_CASE));
- }
- return emptyList();
+ public ComponentsResponsesKeysCaseValidator(String expectedCase) {
+ super(
+ key -> isMatchCase(expectedCase, key),
+ key -> ERROR + expectedCase
+ );
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSchemasKeysCaseValidator.java
similarity index 55%
copy from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
copy to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSchemasKeysCaseValidator.java
index 4bdef79..c10dff8 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSchemasKeysCaseValidator.java
@@ -15,34 +15,30 @@
* limitations under the License.
*/
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
+package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
-import io.swagger.v3.oas.models.tags.Tag;
+import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsSchemasKeysValidator;
-import java.util.List;
-
-import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isUpperCamelCase;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
- * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>
- * .name property validator
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject">Components Object</a>
+ * .schemas property key case validator
* <ul>
- * <li>must be upper camel case</li>
+ * <li>config item: components.schemas.key.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class TagNameUpperCamelCaseValidator implements TagValidator {
+public class ComponentsSchemasKeysCaseValidator extends ComponentsSchemasKeysValidator {
- @Override
- public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, Tag tag) {
+ public static final String CONFIG_KEY = "components.schemas.key.case";
+ public static final String ERROR = "Must be ";
- if (!isUpperCamelCase(tag.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.UPPER_CAMEL_CASE));
- }
- return emptyList();
+ public ComponentsSchemasKeysCaseValidator(String expectedCase) {
+ super(
+ key -> isMatchCase(expectedCase, key),
+ key -> ERROR + expectedCase
+ );
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSecuritySchemesKeysCaseValidator.java
similarity index 55%
copy from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
copy to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSecuritySchemesKeysCaseValidator.java
index 4bdef79..9f38126 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSecuritySchemesKeysCaseValidator.java
@@ -15,34 +15,30 @@
* limitations under the License.
*/
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
+package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
-import io.swagger.v3.oas.models.tags.Tag;
+import org.apache.servicecomb.toolkit.oasv.validation.skeleton.components.ComponentsSecuritySchemesKeysValidator;
-import java.util.List;
-
-import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isUpperCamelCase;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
- * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>
- * .name property validator
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject">Components Object</a>
+ * .securitySchemes property key case validator
* <ul>
- * <li>must be upper camel case</li>
+ * <li>config item: components.securitySchemes.key.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class TagNameUpperCamelCaseValidator implements TagValidator {
+public class ComponentsSecuritySchemesKeysCaseValidator extends ComponentsSecuritySchemesKeysValidator {
- @Override
- public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, Tag tag) {
+ public static final String CONFIG_KEY = "components.securitySchemes.key.case";
+ public static final String ERROR = "Must be ";
- if (!isUpperCamelCase(tag.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.UPPER_CAMEL_CASE));
- }
- return emptyList();
+ public ComponentsSecuritySchemesKeysCaseValidator(String expectedCase) {
+ super(
+ key -> isMatchCase(expectedCase, key),
+ key -> ERROR + expectedCase
+ );
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/EncodingKeysValidators.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/EncodingHeadersKeysCaseValidator.java
similarity index 55%
copy from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/EncodingKeysValidators.java
copy to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/EncodingHeadersKeysCaseValidator.java
index 62c86e0..6a9bb94 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/EncodingKeysValidators.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/EncodingHeadersKeysCaseValidator.java
@@ -17,15 +17,28 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.encoding;
-import org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.encoding.EncodingHeadersKeysValidator;
-public abstract class EncodingKeysValidators {
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
- public static final EncodingHeadersKeysValidator HEADERS_UPPER_HYPHEN_CASE_VALIDATOR = new EncodingHeadersKeysValidator(
- key -> StringCaseUtils.isUpperHyphenCase(key),
- key -> ViolationMessages.UPPER_HYPHEN_CASE
- );
+/**
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#encodingObject">Encoding Object</a>
+ * .headers property key case validator
+ * <ul>
+ * <li>config item: encoding.headers.key.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
+ * </ul>
+ */
+public class EncodingHeadersKeysCaseValidator extends EncodingHeadersKeysValidator {
+
+ public static final String CONFIG_KEY = "encoding.headers.key.case";
+ public static final String ERROR = "Must be ";
+
+ public EncodingHeadersKeysCaseValidator(String expectedCase) {
+ super(
+ key -> isMatchCase(expectedCase, key),
+ key -> ERROR + expectedCase
+ );
+ }
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/header/HeaderDescriptionRequiredValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/header/HeaderDescriptionRequiredValidator.java
index c6be660..01e1f91 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/header/HeaderDescriptionRequiredValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/header/HeaderDescriptionRequiredValidator.java
@@ -26,13 +26,17 @@ import io.swagger.v3.oas.models.headers.Header;
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#headerObject">Header Object</a>
* .description property validator
* <ul>
- * <li>must not be null</li>
+ * <li>config item: header.description.required=*boolean*</li>
+ * <li>description must not be null</li>
* </ul>
*/
public class HeaderDescriptionRequiredValidator
extends ObjectPropertyRequiredValidator<Header, String>
implements HeaderValidator {
+ public static final String CONFIG_KEY = "header.description.required";
+
+
@Override
protected String get$ref(Header oasObject) {
return oasObject.get$ref();
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/info/InfoDescriptionRequiredValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/info/InfoDescriptionRequiredValidator.java
index fa25a60..86502f1 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/info/InfoDescriptionRequiredValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/info/InfoDescriptionRequiredValidator.java
@@ -17,22 +17,25 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.info;
-import org.apache.servicecomb.toolkit.oasv.validation.api.InfoValidator;
+import io.swagger.v3.oas.models.info.Info;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectType;
+import org.apache.servicecomb.toolkit.oasv.validation.api.InfoValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.ObjectPropertyRequiredValidator;
-import io.swagger.v3.oas.models.info.Info;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#infoObject">Info Object</a>
- * property validator
+ * description property validator
* <ul>
- * <li>description must not be null</li>
+ * <li>config item: info.description.required=*boolean*</li>
+ * <li>description must not be null</li>
* </ul>
*/
public class InfoDescriptionRequiredValidator
extends ObjectPropertyRequiredValidator<Info, String>
implements InfoValidator {
+ public static final String CONFIG_KEY = "info.description.required";
+
@Override
protected String get$ref(Info oasObject) {
return null;
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiSecurityEmptyValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiSecuritySizeEqValidator.java
similarity index 72%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiSecurityEmptyValidator.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiSecuritySizeEqValidator.java
index dff5d40..576c60a 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiSecurityEmptyValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiSecuritySizeEqValidator.java
@@ -17,40 +17,49 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi;
+import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.apache.servicecomb.toolkit.oasv.validation.api.OpenApiValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import io.swagger.v3.oas.models.OpenAPI;
-import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
-import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.SECURITY_REQUIREMENT;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.SECURITY_REQUIREMENT;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#openapi-object">OpenAPI Object</a>
* .security property validator
* <ul>
- * <li>This field is not allowed</li>
+ * <li>config item: openAPI.security.size.eq=expected</li>
+ * <li>size should be equals to *expected*</li>
* </ul>
*/
-public class OpenApiSecurityEmptyValidator implements OpenApiValidator {
+public class OpenApiSecuritySizeEqValidator implements OpenApiValidator {
+
+ public static final String CONFIG_KEY = "openAPI.security.size.eq";
+ public static final String ERROR = "size must be == ";
+
+ private final int expectedSize;
+
+ public OpenApiSecuritySizeEqValidator(int expectedSize) {
+ this.expectedSize = expectedSize;
+ }
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location,
OpenAPI openAPI) {
- if (CollectionUtils.isEmpty(openAPI.getSecurity())) {
- return emptyList();
-
+ int size = CollectionUtils.size(openAPI.getSecurity());
+ if (size != expectedSize) {
+ return singletonList(
+ new OasViolation(location.property("security", SECURITY_REQUIREMENT), ERROR + expectedSize));
}
- return singletonList(
- new OasViolation(location.property("security", SECURITY_REQUIREMENT), ViolationMessages.MUST_BE_EMPTY));
+ return emptyList();
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagNotEmptyValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagsSizeGteValidator.java
similarity index 78%
copy from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagNotEmptyValidator.java
copy to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagsSizeGteValidator.java
index b93b9ea..3f0a9d5 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagNotEmptyValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagsSizeGteValidator.java
@@ -17,13 +17,13 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi;
+import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectType;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.apache.servicecomb.toolkit.oasv.validation.api.OpenApiValidator;
-import io.swagger.v3.oas.models.OpenAPI;
-import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
@@ -33,19 +33,28 @@ import static java.util.Collections.singletonList;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#openapi-object">OpenAPI Object</a>
* .tags(List of <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>)
- * not empty validator
+ * size validator
* <ul>
- * <li>at least one</li>
+ * <li>config item: openAPI.tags.size.gte=expected</li>
+ * <li>size should be >= *expected*</li>
* </ul>
*/
-public class OpenApiTagNotEmptyValidator implements OpenApiValidator {
+public class OpenApiTagsSizeGteValidator implements OpenApiValidator {
+
+ public static final String CONFIG_KEY = "openAPI.tags.size.gte";
+ public static final String ERROR = "size must be >= ";
+
+ private final int expectedSize;
+
+ public OpenApiTagsSizeGteValidator(int expectedSize) {
+ this.expectedSize = expectedSize;
+ }
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, OpenAPI openAPI) {
- if (CollectionUtils.isEmpty(openAPI.getTags())) {
- return singletonList(new OasViolation(location.property("tags", OasObjectType.TAG), "At least provide one tag"));
-
+ if (CollectionUtils.size(openAPI.getTags()) < expectedSize) {
+ return singletonList(new OasViolation(location.property("tags", OasObjectType.TAG), ERROR + expectedSize));
}
return emptyList();
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiVersionValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiVersionGteValidator.java
similarity index 72%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiVersionValidator.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiVersionGteValidator.java
index 79e4a6a..90435c0 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiVersionValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiVersionGteValidator.java
@@ -29,11 +29,21 @@ import static java.util.Collections.singletonList;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#openapi-object">OpenAPI Object</a>
* .openapi property validator
- * <ul>
- * <li>must be 3.0.x and >=3.0.2</li>
+ <ul>
+ * <li>config item: openAPI.openapi.gte=expected</li>
+ * <li>version should be >= *expected*</li>
* </ul>
*/
-public class OpenApiVersionValidator implements OpenApiValidator {
+public class OpenApiVersionGteValidator implements OpenApiValidator {
+
+ public static final String CONFIG_KEY = "openAPI.openapi.gte";
+ public static final String ERROR = "Must be >= ";
+
+ private final String versionGte;
+
+ public OpenApiVersionGteValidator(String versionGte) {
+ this.versionGte = versionGte;
+ }
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, OpenAPI openAPI) {
@@ -43,11 +53,14 @@ public class OpenApiVersionValidator implements OpenApiValidator {
}
String[] semver = openAPI.getOpenapi().split("\\.");
- boolean ok = semver[0].equals("3") && semver[1].equals("0") && Integer.parseInt(semver[2]) >= 2;
+ String[] expectedSemver = versionGte.split("\\.");
+ boolean ok = semver[0].equals(expectedSemver[0])
+ && semver[1].equals(expectedSemver[1])
+ && Integer.parseInt(semver[2]) >= Integer.valueOf(expectedSemver[2]);
if (ok) {
return emptyList();
}
- return singletonList(new OasViolation(location.property("openapi"), "Must be >= 3.0.2"));
+ return singletonList(new OasViolation(location.property("openapi"), ERROR + versionGte));
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationIdLowerCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationIdCaseValidator.java
similarity index 62%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationIdLowerCamelCaseValidator.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationIdCaseValidator.java
index 1e25108..f682fad 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationIdLowerCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationIdCaseValidator.java
@@ -17,31 +17,43 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.operation;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
import io.swagger.v3.oas.models.Operation;
+import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
import java.util.List;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#operationObject">Operation Object</a>
- * .operationId property validator
+ * .operationId case validator
* <ul>
- * <li>should be lower camel case</li>
+ * <li>config item: operation.operationId.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class OperationIdLowerCamelCaseValidator implements OperationValidator {
+public class OperationIdCaseValidator implements OperationValidator {
+
+ public static final String CONFIG_KEY = "operation.operationId.case";
+ public static final String ERROR = "Must be ";
+
+ private final String expectedCase;
+
+ public OperationIdCaseValidator(String expectedCase) {
+ this.expectedCase = expectedCase;
+ }
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location,
Operation oasObject) {
- if (!StringCaseUtils.isLowerCamelCase(oasObject.getOperationId())) {
- return singletonList(new OasViolation(location.property("operationId"), ViolationMessages.LOWER_CAMEL_CASE));
+ if (!isMatchCase(expectedCase, oasObject.getOperationId())) {
+ return singletonList(new OasViolation(location.property("operationId"), ERROR + expectedCase));
}
return emptyList();
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersEmptyValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersSizeEqValidator.java
similarity index 72%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersEmptyValidator.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersSizeEqValidator.java
index 1569596..c49f266 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersEmptyValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersSizeEqValidator.java
@@ -17,34 +17,46 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.operation;
+import io.swagger.v3.oas.models.Operation;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
-import io.swagger.v3.oas.models.Operation;
-import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
-import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.SERVER;
-import static org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages.MUST_BE_EMPTY;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.SERVER;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#operationObject">Operation Object</a>
- * .servers property validator
+ * .servers size validator
* <ul>
- * <li>This field is not allowed</li>
+ * <li>config item: operations.servers.size.eq=*expected*</li>
+ * <li>size should be equals to *expected*</li>
* </ul>
*/
-public class OperationServersEmptyValidator implements OperationValidator {
+public class OperationServersSizeEqValidator implements OperationValidator {
+
+ public static final String CONFIG_KEY = "operations.servers.size.eq";
+ public static final String ERROR = "size must be == ";
+
+ private final int expectedSize;
+
+ public OperationServersSizeEqValidator(int expectedSize) {
+ this.expectedSize = expectedSize;
+ }
+
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location,
Operation oasObject) {
- if (CollectionUtils.isEmpty(oasObject.getServers())) {
- return emptyList();
+
+ if (CollectionUtils.size(oasObject.getServers()) != expectedSize) {
+ return singletonList(new OasViolation(location.property("servers", SERVER), ERROR + expectedSize));
}
- return singletonList(new OasViolation(location.property("servers", SERVER), MUST_BE_EMPTY));
+ return emptyList();
}
+
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationSummaryRequiredValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationSummaryRequiredValidator.java
index 2b4cc97..dbc997b 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationSummaryRequiredValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationSummaryRequiredValidator.java
@@ -24,15 +24,18 @@ import io.swagger.v3.oas.models.Operation;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#operationObject">Operation Object</a>
- * .summary property validator
+ * .summary required validator
* <ul>
- * <li>is field is required</li>
+ * <li>config item: operation.summary.required=*boolean*</li>
+ * <li>this field is required</li>
* </ul>
*/
public class OperationSummaryRequiredValidator
extends ObjectPropertyRequiredValidator<Operation, String>
implements OperationValidator {
+ public static final String CONFIG_KEY = "operation.summary.required";
+
@Override
protected String get$ref(Operation oasObject) {
return null;
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsReferenceValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsReferenceValidator.java
index 88079e5..5683ca6 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsReferenceValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsReferenceValidator.java
@@ -17,14 +17,14 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.operation;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.tags.Tag;
import org.apache.commons.collections4.CollectionUtils;
+import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
import java.util.ArrayList;
import java.util.List;
@@ -36,13 +36,18 @@ import static java.util.stream.Collectors.toSet;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#operationObject">Operation Object</a>
- * .tags property validator
+ * .tags must reference root tags validator
* <ul>
- * <li>must be defined in OpenAPI Object tags property</li>
+ * <li>config item: operation.tags.element.must_reference_root_tags=*boolean*</li>
+ * <li>must reference tags defined in OpenAPI Object tags property</li>
* </ul>
*/
public class OperationTagsReferenceValidator implements OperationValidator {
+ public static final String CONFIG_KEY = "operation.tags.element.must_reference_root_tags";
+
+ public static final String ERROR = "is not defined in $.tags";
+
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location,
Operation oasObject) {
@@ -59,7 +64,7 @@ public class OperationTagsReferenceValidator implements OperationValidator {
String tagName = tags.get(i);
if (!globalTagNames.contains(tagName)) {
violations.add(
- new OasViolation(location.property("tags[" + i + "]"), "Is not defined in $.tags"));
+ new OasViolation(location.property("tags[" + i + "]"), ERROR));
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsOnlyOneValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsSizeEqValidator.java
similarity index 74%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsOnlyOneValidator.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsSizeEqValidator.java
index b40c85a..148bf17 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsOnlyOneValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsSizeEqValidator.java
@@ -17,12 +17,12 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.operation;
+import io.swagger.v3.oas.models.Operation;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
-import io.swagger.v3.oas.models.Operation;
-import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
@@ -31,21 +31,30 @@ import static java.util.Collections.singletonList;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#operationObject">Operation Object</a>
- * .tags property validator
+ * .tags size validator
* <ul>
- * <li>at least one</li>
+ * <li>config item: operation.tags.size.eq=*expected*</li>
+ * <li>size should be equals to *expected*</li>
* </ul>
*/
-public class OperationTagsOnlyOneValidator implements OperationValidator {
+public class OperationTagsSizeEqValidator implements OperationValidator {
+
+ public static final String CONFIG_KEY = "operation.tags.size.eq";
+ public static final String ERROR = "size must be == ";
+
+ private final int expectedSize;
+
+ public OperationTagsSizeEqValidator(int expectedSize) {
+ this.expectedSize = expectedSize;
+ }
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location,
Operation oasObject) {
List<String> tags = oasObject.getTags();
- if (CollectionUtils.size(tags) != 1) {
- return singletonList(
- new OasViolation(location.property("tags"), "Must provide one and at most one tag"));
+ if (CollectionUtils.size(tags) != expectedSize) {
+ return singletonList(new OasViolation(location.property("tags"), ERROR + expectedSize));
}
return emptyList();
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterDescriptionRequiredValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterDescriptionRequiredValidator.java
index 73f0d98..a76d798 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterDescriptionRequiredValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterDescriptionRequiredValidator.java
@@ -26,6 +26,7 @@ import io.swagger.v3.oas.models.parameters.Parameter;
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#parameterObject">Parameter Object</a>
* .description property validator
* <ul>
+ * <li>config item: parameter.description.required=*boolean*</li>
* <li>this field is required</li>
* </ul>
*/
@@ -33,6 +34,8 @@ public class ParameterDescriptionRequiredValidator
extends ObjectPropertyRequiredValidator<Parameter, String>
implements ParameterValidator {
+ public static final String CONFIG_KEY = "parameter.description.required";
+
@Override
protected String get$ref(Parameter oasObject) {
return oasObject.get$ref();
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterCookieLowerCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameCookieCaseValidator.java
similarity index 65%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterCookieLowerCamelCaseValidator.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameCookieCaseValidator.java
index 99f4319..312b6cf 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterCookieLowerCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameCookieCaseValidator.java
@@ -17,25 +17,38 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
import io.swagger.v3.oas.models.parameters.Parameter;
import org.apache.commons.lang3.StringUtils;
+import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.ParameterValidator;
import java.util.List;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#parameterObject">Parameter Object</a>
- * .name property validator
+ * .name case validator for cookie
* <ul>
- * <li>must be lower camel case</li>
+ * <li>config item: parameter.name.cookie.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class ParameterCookieLowerCamelCaseValidator implements ParameterValidator {
+public class ParameterNameCookieCaseValidator implements ParameterValidator {
+
+ public static final String CONFIG_KEY = "parameter.name.cookie.case";
+ public static final String ERROR = "Must be ";
+
+ private final String expectedCase;
+
+ public ParameterNameCookieCaseValidator(String expectedCase) {
+ this.expectedCase = expectedCase;
+ }
+
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location,
Parameter oasObject) {
@@ -48,10 +61,9 @@ public class ParameterCookieLowerCamelCaseValidator implements ParameterValidato
return emptyList();
}
- if (!StringCaseUtils.isLowerCamelCase(oasObject.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.LOWER_CAMEL_CASE));
+ if (!isMatchCase(expectedCase, oasObject.getName())) {
+ return singletonList(new OasViolation(location.property("name"), ERROR + expectedCase));
}
-
return emptyList();
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterHeaderUpperHyphenCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameHeaderCaseValidator.java
similarity index 65%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterHeaderUpperHyphenCaseValidator.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameHeaderCaseValidator.java
index e33ca04..95eb885 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterHeaderUpperHyphenCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameHeaderCaseValidator.java
@@ -17,25 +17,38 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
import io.swagger.v3.oas.models.parameters.Parameter;
import org.apache.commons.lang3.StringUtils;
+import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.ParameterValidator;
import java.util.List;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#parameterObject">Parameter Object</a>
- * .name property validator
+ * .name case validator for header
* <ul>
- * <li>must be upper hyphen case</li>
+ * <li>config item: parameter.name.header.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class ParameterHeaderUpperHyphenCaseValidator implements ParameterValidator {
+public class ParameterNameHeaderCaseValidator implements ParameterValidator {
+
+ public static final String CONFIG_KEY = "parameter.name.header.case";
+ public static final String ERROR = "Must be ";
+
+ private final String expectedCase;
+
+ public ParameterNameHeaderCaseValidator(String expectedCase) {
+ this.expectedCase = expectedCase;
+ }
+
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location,
Parameter oasObject) {
@@ -48,8 +61,8 @@ public class ParameterHeaderUpperHyphenCaseValidator implements ParameterValidat
return emptyList();
}
- if (!StringCaseUtils.isUpperHyphenCase(oasObject.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.UPPER_HYPHEN_CASE));
+ if (!isMatchCase(expectedCase, oasObject.getName())) {
+ return singletonList(new OasViolation(location.property("name"), ERROR + expectedCase));
}
return emptyList();
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterPathLowerCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNamePathCaseValidator.java
similarity index 65%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterPathLowerCamelCaseValidator.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNamePathCaseValidator.java
index 9d97905..5a42894 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterPathLowerCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNamePathCaseValidator.java
@@ -17,25 +17,38 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
import io.swagger.v3.oas.models.parameters.Parameter;
import org.apache.commons.lang3.StringUtils;
+import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.ParameterValidator;
import java.util.List;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#parameterObject">Parameter Object</a>
- * .name property validator
+ * .name case validator for path
* <ul>
- * <li>must be lower camel case</li>
+ * <li>config item: parameter.name.path.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class ParameterPathLowerCamelCaseValidator implements ParameterValidator {
+public class ParameterNamePathCaseValidator implements ParameterValidator {
+
+ public static final String CONFIG_KEY = "parameter.name.path.case";
+ public static final String ERROR = "Must be ";
+
+ private final String expectedCase;
+
+ public ParameterNamePathCaseValidator(String expectedCase) {
+ this.expectedCase = expectedCase;
+ }
+
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location,
Parameter oasObject) {
@@ -48,8 +61,8 @@ public class ParameterPathLowerCamelCaseValidator implements ParameterValidator
return emptyList();
}
- if (!StringCaseUtils.isLowerCamelCase(oasObject.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.LOWER_CAMEL_CASE));
+ if (!isMatchCase(expectedCase, oasObject.getName())) {
+ return singletonList(new OasViolation(location.property("name"), ERROR + expectedCase));
}
return emptyList();
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterQueryLowerCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameQueryCaseValidator.java
similarity index 65%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterQueryLowerCamelCaseValidator.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameQueryCaseValidator.java
index 594209d..c16c409 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterQueryLowerCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameQueryCaseValidator.java
@@ -17,25 +17,38 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
import io.swagger.v3.oas.models.parameters.Parameter;
import org.apache.commons.lang3.StringUtils;
+import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.ParameterValidator;
import java.util.List;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#parameterObject">Parameter Object</a>
- * .name property validator
+ * .name case validator for query
* <ul>
- * <li>must be lower camel case</li>
+ * <li>config item: parameter.name.query.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class ParameterQueryLowerCamelCaseValidator implements ParameterValidator {
+public class ParameterNameQueryCaseValidator implements ParameterValidator {
+
+ public static final String CONFIG_KEY = "parameter.name.query.case";
+ public static final String ERROR = "Must be ";
+
+ private final String expectedCase;
+
+ public ParameterNameQueryCaseValidator(String expectedCase) {
+ this.expectedCase = expectedCase;
+ }
+
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location,
Parameter oasObject) {
@@ -48,8 +61,8 @@ public class ParameterQueryLowerCamelCaseValidator implements ParameterValidator
return emptyList();
}
- if (!StringCaseUtils.isLowerCamelCase(oasObject.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.LOWER_CAMEL_CASE));
+ if (!isMatchCase(expectedCase, oasObject.getName())) {
+ return singletonList(new OasViolation(location.property("name"), ERROR + expectedCase));
}
return emptyList();
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/paths/PathsLowerCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/paths/PathsKeyCaseValidator.java
similarity index 82%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/paths/PathsLowerCamelCaseValidator.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/paths/PathsKeyCaseValidator.java
index cb21bc2..c708cd6 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/paths/PathsLowerCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/paths/PathsKeyCaseValidator.java
@@ -17,14 +17,13 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.paths;
+import io.swagger.v3.oas.models.Paths;
+import org.apache.commons.lang3.StringUtils;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectType;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.apache.servicecomb.toolkit.oasv.validation.api.PathsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import io.swagger.v3.oas.models.Paths;
-import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
@@ -32,23 +31,34 @@ import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isLowerCamelCase;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#pathsObject">Paths Object</a>
- * path name validator
+ * key case validator
* <ul>
- * <li>path name must be lower camel case</li>
+ * <li>config item: paths.key.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
* <p>
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#path-templating">Path Templating</a>
- * variable also must be lower camel case
+ * variable must also match case
* </p>
*/
-public class PathsLowerCamelCaseValidator implements PathsValidator {
+public class PathsKeyCaseValidator implements PathsValidator {
+
+ public static final String CONFIG_KEY = "paths.key.case";
+ public static final String ERROR = "Must be ";
private static final Pattern TEMPLATE_PATTERN = Pattern.compile("^\\{(.*)\\}$");
+ private final String expectedCase;
+
+
+ public PathsKeyCaseValidator(String expectedCase) {
+ this.expectedCase = expectedCase;
+ }
+
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, Paths oasObject) {
List<OasViolation> violations = new ArrayList<>();
@@ -58,9 +68,8 @@ public class PathsLowerCamelCaseValidator implements PathsValidator {
for (String path : paths) {
if (!matchCamelCase(path)) {
OasObjectPropertyLocation pathLoc = location.property(path, OasObjectType.PATH_ITEM);
- violations.add(new OasViolation(pathLoc, ViolationMessages.LOWER_CAMEL_CASE));
+ violations.add(new OasViolation(pathLoc, ERROR + expectedCase));
}
-
}
return violations;
@@ -78,7 +87,7 @@ public class PathsLowerCamelCaseValidator implements PathsValidator {
if (isTemplate(pathSegment)) {
matchingPart = extractTemplateVariable(pathSegment);
}
- if (!isLowerCamelCase(matchingPart)) {
+ if (!isMatchCase(expectedCase, matchingPart)) {
return false;
}
}
@@ -86,12 +95,6 @@ public class PathsLowerCamelCaseValidator implements PathsValidator {
}
- /**
- *
- *
- * @param pathSegment
- * @return
- */
private boolean isTemplate(String pathSegment) {
return TEMPLATE_PATTERN.matcher(pathSegment).matches();
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/requestbody/RequestBodyDescriptionRequiredValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/requestbody/RequestBodyDescriptionRequiredValidator.java
index d627ffd..b39ac39 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/requestbody/RequestBodyDescriptionRequiredValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/requestbody/RequestBodyDescriptionRequiredValidator.java
@@ -26,6 +26,7 @@ import io.swagger.v3.oas.models.parameters.RequestBody;
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#request-body-object">Request Object</a>
* .description property validator
* <ul>
+ * <li>config item: requestBody.description.required=*boolean*</li>
* <li>this field is required</li>
* </ul>
*/
@@ -33,6 +34,8 @@ public class RequestBodyDescriptionRequiredValidator
extends ObjectPropertyRequiredValidator<RequestBody, String>
implements RequestBodyValidator {
+ public static final String CONFIG_KEY = "requestBody.description.required";
+
@Override
protected String get$ref(RequestBody oasObject) {
return oasObject.get$ref();
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/response/ResponseKeysValidators.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/response/ResponseHeadersKeysCaseValidator.java
similarity index 59%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/response/ResponseKeysValidators.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/response/ResponseHeadersKeysCaseValidator.java
index d76f961..6fdf53d 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/response/ResponseKeysValidators.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/response/ResponseHeadersKeysCaseValidator.java
@@ -19,13 +19,26 @@ package org.apache.servicecomb.toolkit.oasv.compliance.validator.response;
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.response.ResponseHeadersKeysValidator;
-import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isUpperHyphenCase;
-import static org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages.UPPER_HYPHEN_CASE;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
-public class ResponseKeysValidators {
+/**
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject">ApiResponse Object</a>
+ * .headers property key case validator
+ * <ul>
+ * <li>config item: response.headers.key.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
+ * </ul>
+ */
+public class ResponseHeadersKeysCaseValidator extends ResponseHeadersKeysValidator {
+
+ public static final String CONFIG_KEY = "response.headers.key.case";
+ public static final String ERROR = "Must be ";
+
+ public ResponseHeadersKeysCaseValidator(String expectedCase) {
+ super(
+ key -> isMatchCase(expectedCase, key),
+ key -> ERROR + expectedCase
+ );
+ }
- public static final ResponseHeadersKeysValidator HEADERS_UPPER_HYPHEN_CASE_VALIDATOR = new ResponseHeadersKeysValidator(
- key -> isUpperHyphenCase(key),
- key -> UPPER_HYPHEN_CASE
- );
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaKeysValidators.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaPropertiesKeysCaseValidator.java
similarity index 55%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaKeysValidators.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaPropertiesKeysCaseValidator.java
index 30bda3e..4c77679 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaKeysValidators.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaPropertiesKeysCaseValidator.java
@@ -17,15 +17,29 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.schema;
-import org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.schema.SchemaPropertiesKeysValidator;
-public class SchemaKeysValidators {
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
- public static final SchemaPropertiesKeysValidator PROPERTIES_LOWER_CAMEL_CASE_VALIDATOR = new SchemaPropertiesKeysValidator(
- key -> StringCaseUtils.isLowerCamelCase(key),
- key -> ViolationMessages.LOWER_CAMEL_CASE
- );
+/**
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#schemaObject">Schema Object</a>
+ * .properties property key case validator
+ * <ul>
+ * <li>config item: schema.properties.key.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
+ * </ul>
+ */
+public class SchemaPropertiesKeysCaseValidator
+ extends SchemaPropertiesKeysValidator {
+
+ public static final String CONFIG_KEY = "schema.properties.key.case";
+ public static final String ERROR = "Must be ";
+
+ public SchemaPropertiesKeysCaseValidator(String expectedCase) {
+ super(
+ key -> isMatchCase(expectedCase, key),
+ key -> ERROR + expectedCase
+ );
+ }
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaTitleValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaTitleRequiredValidator.java
similarity index 74%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaTitleValidator.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaTitleRequiredValidator.java
index 9ef3445..453ed2a 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaTitleValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaTitleRequiredValidator.java
@@ -17,33 +17,39 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.schema;
+import io.swagger.v3.oas.models.media.Schema;
+import org.apache.commons.lang3.StringUtils;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectProperty;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
import org.apache.servicecomb.toolkit.oasv.validation.skeleton.schema.SchemaRecursiveValidatorTemplate;
-import io.swagger.v3.oas.models.media.Schema;
-import org.apache.commons.lang3.StringUtils;
import java.util.List;
-import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.COMPONENTS;
-import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.SCHEMA;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.COMPONENTS;
+import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.SCHEMA;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#schemaObject">Schema Object</a>
- * .title property validator
+ * .title property required validator
* <ul>
- * <li>
+ * <li>config item: schema.title.required=*boolean*</li>
+ * <li>
* if this Schema Object's parent is
- * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#schemaObject">Schema Object</a>
- * /
- * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject">Components Object</a>
- * , then title property is required</li>
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#schemaObject">Schema Object</a>
+ * /
+ * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject">Components Object</a>
+ * , then title property is required
+ * </li>
* </ul>
*/
-public class SchemaTitleValidator extends SchemaRecursiveValidatorTemplate {
+public class SchemaTitleRequiredValidator extends SchemaRecursiveValidatorTemplate {
+
+ public static final String CONFIG_KEY = "schema.title.required";
@Override
protected List<OasViolation> validateCurrentSchemaObject(OasValidationContext context, Schema oasObject,
@@ -56,13 +62,12 @@ public class SchemaTitleValidator extends SchemaRecursiveValidatorTemplate {
OasObjectProperty parentProperty = location.getParent();
if (SCHEMA == parentProperty.getObjectType()
- || COMPONENTS == parentProperty.getObjectType()
+ || COMPONENTS == parentProperty.getObjectType()
) {
return check(oasObject, location);
}
return emptyList();
-
}
private List<OasViolation> check(Schema oasObject, OasObjectPropertyLocation location) {
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagDescriptionRequiredValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagDescriptionRequiredValidator.java
index 5f17613..020c197 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagDescriptionRequiredValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagDescriptionRequiredValidator.java
@@ -26,13 +26,16 @@ import io.swagger.v3.oas.models.tags.Tag;
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>
* .description property validator
* <ul>
- * <li>this field is required</li>
+ * <li>config item: tag.description.required=*boolean*</li>
+ * <li>this field is required</li>
* </ul>
*/
public class TagDescriptionRequiredValidator
extends ObjectPropertyRequiredValidator<Tag, String>
implements TagValidator {
+ public static final String CONFIG_KEY = "tag.description.required";
+
@Override
protected String get$ref(Tag oasObject) {
return null;
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagReferenceValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagMustBeReferencedValidator.java
similarity index 81%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagReferenceValidator.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagMustBeReferencedValidator.java
index f13c8b0..0bca0fa 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagReferenceValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagMustBeReferencedValidator.java
@@ -36,14 +36,18 @@ import static java.util.Collections.emptySet;
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>
* referencing validator
* <ul>
- * <li>
- * Every tag object must be referenced by <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#operationObject">Operation Object</a>
- * </li>
+ * <li>config item: tag.name.must_be_referenced=*boolean*</li>
+ * <li>
+ * tag object must be referenced by <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#operationObject">Operation Object</a>
+ * </li>
* </ul>
*/
-public class TagReferenceValidator implements TagValidator {
+public class TagMustBeReferencedValidator implements TagValidator {
- private static final String CACHE_KEY = TagReferenceValidator.class.getName() + ".allOperationsTags";
+ public static final String CONFIG_KEY = "tag.name.must_be_referenced";
+ public static final String ERROR = "Must be referenced by at least one Operation object";
+
+ private static final String CACHE_KEY = TagMustBeReferencedValidator.class.getName() + ".allOperationsTags";
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, Tag tag) {
@@ -52,7 +56,7 @@ public class TagReferenceValidator implements TagValidator {
List<OasViolation> violations = new ArrayList<>();
if (!allOperationsTags.contains(tag.getName())) {
- violations.add(new OasViolation(location, "Is not referenced by any Operation object"));
+ violations.add(new OasViolation(location, ERROR));
}
return violations;
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameCaseValidator.java
similarity index 66%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
rename to oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameCaseValidator.java
index 4bdef79..6eaee8a 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidator.java
+++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameCaseValidator.java
@@ -17,30 +17,42 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
-import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.*;
import io.swagger.v3.oas.models.tags.Tag;
+import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
+import org.apache.servicecomb.toolkit.oasv.validation.api.TagValidator;
import java.util.List;
-import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isUpperCamelCase;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
+import static org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils.isMatchCase;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>
- * .name property validator
+ * .name case validator
* <ul>
- * <li>must be upper camel case</li>
+ * <li>config item: tag.name.case=upper-camel-case/lower-camel-case/upper-hyphen-case</li>
+ * <li>must match case</li>
* </ul>
*/
-public class TagNameUpperCamelCaseValidator implements TagValidator {
+public class TagNameCaseValidator implements TagValidator {
+
+ public static final String CONFIG_KEY = "tag.name.case";
+ public static final String ERROR = "Must be ";
+
+ private final String expectedCase;
+
+ public TagNameCaseValidator(String expectedCase) {
+ this.expectedCase = expectedCase;
+ }
@Override
public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, Tag tag) {
- if (!isUpperCamelCase(tag.getName())) {
- return singletonList(new OasViolation(location.property("name"), ViolationMessages.UPPER_CAMEL_CASE));
+ if (!isMatchCase(expectedCase, tag.getName())) {
+ return singletonList(new OasViolation(location.property("name"), ERROR + expectedCase));
}
return emptyList();
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultComponentsValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultComponentsValidatorFactoryTest.java
index 53642c3..be1368d 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultComponentsValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultComponentsValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.ComponentsValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultComponentsValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultComponentsValidatorFactoryTest {
@Test
public void create() {
- List<ComponentsValidator> validators = validatorFactory.create();
+ List<ComponentsValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(14);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultEncodingValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultEncodingValidatorFactoryTest.java
index e8fa711..24fe981 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultEncodingValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultEncodingValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.EncodingValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultEncodingValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultEncodingValidatorFactoryTest {
@Test
public void create() {
- List<EncodingValidator> validators = validatorFactory.create();
+ List<EncodingValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(2);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultHeaderValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultHeaderValidatorFactoryTest.java
index b0448e1..92c56c3 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultHeaderValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultHeaderValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.HeaderValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultHeaderValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultHeaderValidatorFactoryTest {
@Test
public void create() {
- List<HeaderValidator> validators = validatorFactory.create();
+ List<HeaderValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(2);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultInfoValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultInfoValidatorFactoryTest.java
index 5b7c5b2..15c54a5 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultInfoValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultInfoValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.InfoValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultInfoValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultInfoValidatorFactoryTest {
@Test
public void create() {
- List<InfoValidator> validators = validatorFactory.create();
+ List<InfoValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(1);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultMediaTypeValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultMediaTypeValidatorFactoryTest.java
index 48f1e15..2badd6f 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultMediaTypeValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultMediaTypeValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.MediaTypeValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultMediaTypeValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultMediaTypeValidatorFactoryTest {
@Test
public void create() {
- List<MediaTypeValidator> validators = validatorFactory.create();
+ List<MediaTypeValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(2);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOasSpecValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOasSpecValidatorFactoryTest.java
index b62f869..89d822a 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOasSpecValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOasSpecValidatorFactoryTest.java
@@ -17,8 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -26,8 +24,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultOasSpecValidatorFactoryTest {
@Autowired
@@ -35,7 +35,7 @@ public class DefaultOasSpecValidatorFactoryTest {
@Test
public void create() {
- OasSpecValidator validator = validatorFactory.create();
+ OasSpecValidator validator = validatorFactory.create(null);
assertThat(validator).isNotNull();
}
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOpenApiValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOpenApiValidatorFactoryTest.java
index 349efd5..36da6be 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOpenApiValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOpenApiValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.OpenApiValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultOpenApiValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultOpenApiValidatorFactoryTest {
@Test
public void create() {
- List<OpenApiValidator> validators = validatorFactory.create();
+ List<OpenApiValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(8);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOperationValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOperationValidatorFactoryTest.java
index 2714725..1f997fa 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOperationValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultOperationValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultOperationValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultOperationValidatorFactoryTest {
@Test
public void create() {
- List<OperationValidator> validators = validatorFactory.create();
+ List<OperationValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(8);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultParameterValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultParameterValidatorFactoryTest.java
index e1c201a..253c392 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultParameterValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultParameterValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.ParameterValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultParameterValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultParameterValidatorFactoryTest {
@Test
public void create() {
- List<ParameterValidator> validators = validatorFactory.create();
+ List<ParameterValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(7);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathItemValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathItemValidatorFactoryTest.java
index 44b53d9..02b51f3 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathItemValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathItemValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.PathItemValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultPathItemValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultPathItemValidatorFactoryTest {
@Test
public void create() {
- List<PathItemValidator> validators = validatorFactory.create();
+ List<PathItemValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(2);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathsValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathsValidatorFactoryTest.java
index 3969b76..fa794c8 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathsValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultPathsValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.PathsValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultPathsValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultPathsValidatorFactoryTest {
@Test
public void create() {
- List<PathsValidator> validators = validatorFactory.create();
+ List<PathsValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(2);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultRequestBodyValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultRequestBodyValidatorFactoryTest.java
index ad94c2c..0ed1d35 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultRequestBodyValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultRequestBodyValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.RequestBodyValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultRequestBodyValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultRequestBodyValidatorFactoryTest {
@Test
public void create() {
- List<RequestBodyValidator> validators = validatorFactory.create();
+ List<RequestBodyValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(2);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponseValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponseValidatorFactoryTest.java
index 910a3f4..f241516 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponseValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponseValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.ResponseValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultResponseValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultResponseValidatorFactoryTest {
@Test
public void create() {
- List<ResponseValidator> validators = validatorFactory.create();
+ List<ResponseValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(3);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponsesValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponsesValidatorFactoryTest.java
index 1e79ef6..22ca7a0 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponsesValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultResponsesValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.ResponsesValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultResponsesValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultResponsesValidatorFactoryTest {
@Test
public void create() {
- List<ResponsesValidator> validators = validatorFactory.create();
+ List<ResponsesValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(1);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSchemaValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSchemaValidatorFactoryTest.java
index fb1e754..3beb727 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSchemaValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSchemaValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.SchemaValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultSchemaValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultSchemaValidatorFactoryTest {
@Test
public void create() {
- List<SchemaValidator> validators = validatorFactory.create();
+ List<SchemaValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(2);
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSecuritySchemeValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSecuritySchemeValidatorFactoryTest.java
index b41409f..1588e94 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSecuritySchemeValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultSecuritySchemeValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.SecuritySchemeValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultSecuritySchemeValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultSecuritySchemeValidatorFactoryTest {
@Test
public void create() {
- List<SecuritySchemeValidator> validators = validatorFactory.create();
+ List<SecuritySchemeValidator> validators = validatorFactory.create(null);
assertThat(validators).isEmpty();
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultServerValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultServerValidatorFactoryTest.java
index ec4e193..9fe9a40 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultServerValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultServerValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.ServerValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultServerValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultServerValidatorFactoryTest {
@Test
public void create() {
- List<ServerValidator> validators = validatorFactory.create();
+ List<ServerValidator> validators = validatorFactory.create(null);
assertThat(validators).isEmpty();
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultTagValidatorFactoryTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultTagValidatorFactoryTest.java
index 2d98857..fd8dafe 100644
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultTagValidatorFactoryTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/factory/DefaultTagValidatorFactoryTest.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.toolkit.oasv.compliance.factory;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
import org.apache.servicecomb.toolkit.oasv.validation.api.TagValidator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,8 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = ValidatorFactoryTestConfiguration.class)
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
public class DefaultTagValidatorFactoryTest {
@Autowired
@@ -37,7 +37,7 @@ public class DefaultTagValidatorFactoryTest {
@Test
public void create() {
- List<TagValidator> validators = validatorFactory.create();
+ List<TagValidator> validators = validatorFactory.create(null);
assertThat(validators).hasSize(3);
}
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/EncodingKeysValidators.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/OasStyleCheckTestBase.java
similarity index 52%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/EncodingKeysValidators.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/OasStyleCheckTestBase.java
index 62c86e0..19be6bf 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/EncodingKeysValidators.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/OasStyleCheckTestBase.java
@@ -15,17 +15,26 @@
* limitations under the License.
*/
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.encoding;
+package org.apache.servicecomb.toolkit.oasv.compliance.validator;
-import org.apache.servicecomb.toolkit.oasv.util.StringCaseUtils;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.skeleton.encoding.EncodingHeadersKeysValidator;
+import io.swagger.v3.parser.core.models.SwaggerParseResult;
+import io.swagger.v3.parser.util.ClasspathHelper;
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
+import org.apache.servicecomb.toolkit.oasv.compliance.ComplianceCheckParser;
+import org.apache.servicecomb.toolkit.oasv.validation.test.OasValidatorTestBaseNew;
-public abstract class EncodingKeysValidators {
+import java.util.Collections;
- public static final EncodingHeadersKeysValidator HEADERS_UPPER_HYPHEN_CASE_VALIDATOR = new EncodingHeadersKeysValidator(
- key -> StringCaseUtils.isUpperHyphenCase(key),
- key -> ViolationMessages.UPPER_HYPHEN_CASE
- );
+public class OasStyleCheckTestBase extends OasValidatorTestBaseNew {
+
+ @Override
+ protected SwaggerParseResult parseAbsolute(String classpath) {
+ String content = ClasspathHelper.loadFileFromClasspath(classpath);
+ return ComplianceCheckParser.parseYaml(content);
+ }
+
+ protected FactoryOptions singleOption(String key, String value) {
+ return new FactoryOptions(Collections.singletonMap(key, value));
+ }
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsCallbacksUpperCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsCallbacksKeysCaseValidatorTest.java
similarity index 60%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsCallbacksUpperCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsCallbacksKeysCaseValidatorTest.java
index 21e5354..91b57d7 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsCallbacksUpperCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsCallbacksKeysCaseValidatorTest.java
@@ -17,56 +17,40 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ComponentsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.COMPONENTS;
-import static org.apache.servicecomb.toolkit.oasv.compliance.validator.components.ComponentsKeysValidators.CALLBACKS_UPPER_CAMEL_CASE_VALIDATOR;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = ComponentsCallbacksUpperCamelCaseValidatorTest.TestConfiguration.class)
-public class ComponentsCallbacksUpperCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ComponentsCallbacksKeysCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testUpperCamelCase() {
OpenAPI openAPI = loadRelative("petstore-callbacks-upper-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ComponentsCallbacksKeysCaseValidator.CONFIG_KEY, "upper-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations)
.containsExactlyInAnyOrder(
- createViolation(ViolationMessages.UPPER_CAMEL_CASE,
+ createViolation(ComponentsCallbacksKeysCaseValidator.ERROR + "upper-camel-case",
"components", COMPONENTS,
"callbacks.'onData'", null)
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
- @Bean
-
- public ComponentsValidator componentsValidator() {
-
-
- return CALLBACKS_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
- }
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsExamplesUpperCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsExamplesKeysCaseValidatorTest.java
similarity index 60%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsExamplesUpperCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsExamplesKeysCaseValidatorTest.java
index 8aae9e7..5190850 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsExamplesUpperCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsExamplesKeysCaseValidatorTest.java
@@ -17,56 +17,39 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ComponentsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.COMPONENTS;
-import static org.apache.servicecomb.toolkit.oasv.compliance.validator.components.ComponentsKeysValidators.EXAMPLES_UPPER_CAMEL_CASE_VALIDATOR;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = ComponentsExamplesUpperCamelCaseValidatorTest.TestConfiguration.class)
-public class ComponentsExamplesUpperCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ComponentsExamplesKeysCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testUpperCamelCase() {
OpenAPI openAPI = loadRelative("petstore-examples-upper-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ComponentsExamplesKeysCaseValidator.CONFIG_KEY, "upper-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations)
.containsExactlyInAnyOrder(
- createViolation(ViolationMessages.UPPER_CAMEL_CASE,
+ createViolation(ComponentsExamplesKeysCaseValidator.ERROR + "upper-camel-case",
"components", COMPONENTS,
"examples.'foo'", null)
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public ComponentsValidator componentsValidator() {
-
-
- return EXAMPLES_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
- }
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsHeadersUpperCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsHeadersKeysCaseValidatorTest.java
similarity index 60%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsHeadersUpperCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsHeadersKeysCaseValidatorTest.java
index b8596bf..6ae2796 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsHeadersUpperCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsHeadersKeysCaseValidatorTest.java
@@ -17,56 +17,38 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ComponentsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.COMPONENTS;
-import static org.apache.servicecomb.toolkit.oasv.compliance.validator.components.ComponentsKeysValidators.HEADERS_UPPER_HYPHEN_CASE_VALIDATOR;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = ComponentsHeadersUpperCamelCaseValidatorTest.TestConfiguration.class)
-public class ComponentsHeadersUpperCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ComponentsHeadersKeysCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testUpperCamelCase() {
OpenAPI openAPI = loadRelative("petstore-headers-upper-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ComponentsHeadersKeysCaseValidator.CONFIG_KEY, "upper-hyphen-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations)
.containsExactlyInAnyOrder(
- createViolation(ViolationMessages.UPPER_HYPHEN_CASE,
+ createViolation(ComponentsHeadersKeysCaseValidator.ERROR + "upper-hyphen-case",
"components", COMPONENTS,
"headers.'foo'", null)
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public ComponentsValidator componentsValidator() {
-
-
- return HEADERS_UPPER_HYPHEN_CASE_VALIDATOR;
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsLinksUpperCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsLinksKeysCaseValidatorTest.java
similarity index 60%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsLinksUpperCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsLinksKeysCaseValidatorTest.java
index b2e0a04..a39f7b9 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsLinksUpperCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsLinksKeysCaseValidatorTest.java
@@ -17,56 +17,38 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ComponentsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.COMPONENTS;
-import static org.apache.servicecomb.toolkit.oasv.compliance.validator.components.ComponentsKeysValidators.LINKS_UPPER_CAMEL_CASE_VALIDATOR;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = ComponentsLinksUpperCamelCaseValidatorTest.TestConfiguration.class)
-public class ComponentsLinksUpperCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ComponentsLinksKeysCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testUpperCamelCase() {
OpenAPI openAPI = loadRelative("petstore-links-upper-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ComponentsLinksKeysCaseValidator.CONFIG_KEY, "upper-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations)
.containsExactlyInAnyOrder(
- createViolation(ViolationMessages.UPPER_CAMEL_CASE,
+ createViolation(ComponentsLinksKeysCaseValidator.ERROR + "upper-camel-case",
"components", COMPONENTS,
"links.'foo'", null)
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public ComponentsValidator componentsValidator() {
-
-
- return LINKS_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsParametersUpperCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsParametersKeysCaseValidatorTest.java
similarity index 60%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsParametersUpperCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsParametersKeysCaseValidatorTest.java
index c4044da..9db66b8 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsParametersUpperCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsParametersKeysCaseValidatorTest.java
@@ -17,56 +17,38 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ComponentsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.COMPONENTS;
-import static org.apache.servicecomb.toolkit.oasv.compliance.validator.components.ComponentsKeysValidators.PARAMETERS_UPPER_CAMEL_CASE_VALIDATOR;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = ComponentsParametersUpperCamelCaseValidatorTest.TestConfiguration.class)
-public class ComponentsParametersUpperCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ComponentsParametersKeysCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testUpperCamelCase() {
OpenAPI openAPI = loadRelative("petstore-parameters-upper-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ComponentsParametersKeysCaseValidator.CONFIG_KEY, "upper-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations)
.containsExactlyInAnyOrder(
- createViolation(ViolationMessages.UPPER_CAMEL_CASE,
+ createViolation(ComponentsParametersKeysCaseValidator.ERROR + "upper-camel-case",
"components", COMPONENTS,
"parameters.'foo'", null)
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public ComponentsValidator componentsValidator() {
-
-
- return PARAMETERS_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsRequestBodiesUpperCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsRequestBodiesKeysCaseValidatorTest.java
similarity index 60%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsRequestBodiesUpperCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsRequestBodiesKeysCaseValidatorTest.java
index 7a60f71..55dbc3d 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsRequestBodiesUpperCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsRequestBodiesKeysCaseValidatorTest.java
@@ -17,56 +17,38 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ComponentsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.COMPONENTS;
-import static org.apache.servicecomb.toolkit.oasv.compliance.validator.components.ComponentsKeysValidators.REQUEST_BODIES_UPPER_CAMEL_CASE_VALIDATOR;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = ComponentsRequestBodiesUpperCamelCaseValidatorTest.TestConfiguration.class)
-public class ComponentsRequestBodiesUpperCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ComponentsRequestBodiesKeysCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testUpperCamelCase() {
OpenAPI openAPI = loadRelative("petstore-request-bodies-upper-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ComponentsRequestBodiesKeysCaseValidator.CONFIG_KEY, "upper-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations)
.containsExactlyInAnyOrder(
- createViolation(ViolationMessages.UPPER_CAMEL_CASE,
+ createViolation(ComponentsRequestBodiesKeysCaseValidator.ERROR + "upper-camel-case",
"components", COMPONENTS,
"requestBodies.'foo'", null)
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public ComponentsValidator componentsValidator() {
-
-
- return REQUEST_BODIES_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsResponsesUpperCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsResponsesKeysCaseValidatorTest.java
similarity index 60%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsResponsesUpperCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsResponsesKeysCaseValidatorTest.java
index a556201..5c68464 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsResponsesUpperCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsResponsesKeysCaseValidatorTest.java
@@ -17,56 +17,38 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ComponentsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.COMPONENTS;
-import static org.apache.servicecomb.toolkit.oasv.compliance.validator.components.ComponentsKeysValidators.RESPONSES_UPPER_CAMEL_CASE_VALIDATOR;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = ComponentsResponsesUpperCamelCaseValidatorTest.TestConfiguration.class)
-public class ComponentsResponsesUpperCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ComponentsResponsesKeysCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testUpperCamelCase() {
OpenAPI openAPI = loadRelative("petstore-responses-upper-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ComponentsResponsesKeysCaseValidator.CONFIG_KEY, "upper-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations)
.containsExactlyInAnyOrder(
- createViolation(ViolationMessages.UPPER_CAMEL_CASE,
+ createViolation(ComponentsResponsesKeysCaseValidator.ERROR + "upper-camel-case",
"components", COMPONENTS,
"responses.'foo'", null)
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public ComponentsValidator componentsValidator() {
-
-
- return RESPONSES_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSchemasUpperCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSchemasKeysCaseValidatorTest.java
similarity index 60%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSchemasUpperCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSchemasKeysCaseValidatorTest.java
index 43194e2..2357556 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSchemasUpperCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSchemasKeysCaseValidatorTest.java
@@ -17,56 +17,38 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ComponentsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.COMPONENTS;
-import static org.apache.servicecomb.toolkit.oasv.compliance.validator.components.ComponentsKeysValidators.SCHEMAS_UPPER_CAMEL_CASE_VALIDATOR;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = ComponentsSchemasUpperCamelCaseValidatorTest.TestConfiguration.class)
-public class ComponentsSchemasUpperCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ComponentsSchemasKeysCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testUpperCamelCase() {
OpenAPI openAPI = loadRelative("petstore-schemas-upper-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ComponentsSchemasKeysCaseValidator.CONFIG_KEY, "upper-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations)
.containsExactlyInAnyOrder(
- createViolation(ViolationMessages.UPPER_CAMEL_CASE,
+ createViolation(ComponentsSchemasKeysCaseValidator.ERROR + "upper-camel-case",
"components", COMPONENTS,
"schemas.'foo'", null)
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public ComponentsValidator componentsValidator() {
-
-
- return SCHEMAS_UPPER_CAMEL_CASE_VALIDATOR;
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagReferenceValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSecuritySchemesKeysCaseValidatorTest.java
old mode 100755
new mode 100644
similarity index 58%
copy from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagReferenceValidatorTest.java
copy to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSecuritySchemesKeysCaseValidatorTest.java
index 53a975a..2da7afa
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagReferenceValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/ComponentsSecuritySchemesKeysCaseValidatorTest.java
@@ -15,48 +15,39 @@
* limitations under the License.
*/
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
+package org.apache.servicecomb.toolkit.oasv.compliance.validator.components;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.TagValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
-import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.TAG;
+import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.COMPONENTS;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = TagReferenceValidatorTest.TestConfiguration.class)
-public class TagReferenceValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ComponentsSecuritySchemesKeysCaseValidatorTest extends OasStyleCheckTestBase {
@Test
- public void testValidate() {
- OpenAPI openAPI = loadRelative("petstore-tag-redundant.yaml");
+ public void testUpperCamelCase() {
+ OpenAPI openAPI = loadRelative("petstore-security-schemes-upper-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ComponentsSecuritySchemesKeysCaseValidator.CONFIG_KEY, "upper-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
- assertThat(violations).hasSize(1);
assertThat(violations)
- .containsExactly(createViolation("Is not referenced by any Operation object", "tags[1]", TAG));
- }
-
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
- @Bean
-
- public TagValidator tagReferenceValidator() {
- return new TagReferenceValidator();
- }
+ .containsExactlyInAnyOrder(
+ createViolation(ComponentsSecuritySchemesKeysCaseValidator.ERROR + "upper-camel-case",
+ "components", COMPONENTS,
+ "securitySchemes.'foo'", null)
+ );
}
}
-
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/EncodingHeadersKeysCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/EncodingHeadersKeysCaseValidatorTest.java
new file mode 100644
index 0000000..3d63bfe
--- /dev/null
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/EncodingHeadersKeysCaseValidatorTest.java
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+package org.apache.servicecomb.toolkit.oasv.compliance.validator.encoding;
+
+import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
+import org.junit.Test;
+import org.springframework.test.context.ContextConfiguration;
+
+import java.util.List;
+
+import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
+import static org.assertj.core.api.Assertions.assertThat;
+
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class EncodingHeadersKeysCaseValidatorTest extends OasStyleCheckTestBase {
+
+ @Test
+ public void testValidate1() {
+ OpenAPI openAPI = loadRelative("petstore-encoding-headers-key-case-1.yaml");
+ OasSpecValidator oasSpecValidator = oasSpecValidator();
+
+ List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
+ assertThat(violations).containsExactlyInAnyOrder(
+ createViolation(
+ EncodingHeadersKeysCaseValidator.ERROR + "upper-hyphen-case",
+ "paths", PATHS,
+ "/pets", PATH_ITEM,
+ "post", OPERATION,
+ "requestBody", REQUEST_BODY,
+ "content.'application/json'", MEDIA_TYPE,
+ "encoding.'foo'", ENCODING,
+ "headers.'foo-bar'", null
+ )
+ );
+ }
+
+ @Test
+ public void testValidate2() {
+ OpenAPI openAPI = loadRelative("petstore-encoding-headers-key-case-2.yaml");
+ OasSpecValidator oasSpecValidator = oasSpecValidator();
+
+ List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
+ assertThat(violations).containsExactlyInAnyOrder(
+ createViolation(
+ EncodingHeadersKeysCaseValidator.ERROR + "upper-hyphen-case",
+ "paths", PATHS,
+ "/pets", PATH_ITEM,
+ "post", OPERATION,
+ "responses", RESPONSES,
+ "default", RESPONSE,
+ "content.'application/json'", MEDIA_TYPE,
+ "encoding.'foo'", ENCODING,
+ "headers.'foo-bar'", null
+ )
+ );
+ }
+
+ @Test
+ public void testValidate3() {
+ OpenAPI openAPI = loadRelative("petstore-encoding-headers-key-case-3.yaml");
+ OasSpecValidator oasSpecValidator = oasSpecValidator();
+
+ List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
+ assertThat(violations).containsExactlyInAnyOrder(
+ createViolation(
+ EncodingHeadersKeysCaseValidator.ERROR + "upper-hyphen-case",
+ "components", COMPONENTS,
+ "requestBodies.'foo'", REQUEST_BODY,
+ "content.'application/json'", MEDIA_TYPE,
+ "encoding.'foo'", ENCODING,
+ "headers.'foo-bar'", null
+ )
+ );
+ }
+
+ @Test
+ public void testValidate4() {
+ OpenAPI openAPI = loadRelative("petstore-encoding-headers-key-case-4.yaml");
+ OasSpecValidator oasSpecValidator = oasSpecValidator();
+
+ List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
+ assertThat(violations).containsExactlyInAnyOrder(
+ createViolation(
+ EncodingHeadersKeysCaseValidator.ERROR + "upper-hyphen-case",
+ "components", COMPONENTS,
+ "responses.'foo'", RESPONSE,
+ "content.'application/json'", MEDIA_TYPE,
+ "encoding.'foo'", ENCODING,
+ "headers.'foo-bar'", null
+ )
+ );
+ }
+
+ private OasSpecValidator oasSpecValidator() {
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(EncodingHeadersKeysCaseValidator.CONFIG_KEY, "upper-hyphen-case")
+ );
+ return oasSpecValidator;
+ }
+}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/header/HeaderDescriptionRequiredValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/header/HeaderDescriptionRequiredValidatorTest.java
index a527bb9..26cdd05 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/header/HeaderDescriptionRequiredValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/header/HeaderDescriptionRequiredValidatorTest.java
@@ -17,16 +17,13 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.header;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.HeaderValidator;
+import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-import io.swagger.v3.oas.models.OpenAPI;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -34,12 +31,17 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = HeaderDescriptionRequiredValidatorTest.TestConfiguration.class)
-public class HeaderDescriptionRequiredValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class HeaderDescriptionRequiredValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-header-no-desc.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(HeaderDescriptionRequiredValidator.CONFIG_KEY, "true")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations)
.containsExactlyInAnyOrder(
@@ -65,18 +67,5 @@ public class HeaderDescriptionRequiredValidatorTest extends OasComplianceTestBas
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public HeaderValidator headerValidator() {
- return new HeaderDescriptionRequiredValidator();
- }
-
- }
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/info/InfoDescriptionRequiredValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/info/InfoDescriptionRequiredValidatorTest.java
index d374676..42cb962 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/info/InfoDescriptionRequiredValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/info/InfoDescriptionRequiredValidatorTest.java
@@ -17,16 +17,13 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.info;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.InfoValidator;
+import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-import io.swagger.v3.oas.models.OpenAPI;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -34,30 +31,20 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.INFO;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = InfoDescriptionRequiredValidatorTest.TestConfiguration.class)
-public class InfoDescriptionRequiredValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class InfoDescriptionRequiredValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-info-no-desc.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(InfoDescriptionRequiredValidator.CONFIG_KEY, "true")
+ );
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).hasSize(1);
assertThat(violations).containsExactly(createViolation(ViolationMessages.REQUIRED, "info", INFO, "description", null));
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public InfoValidator infoValidator() {
- return new InfoDescriptionRequiredValidator();
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiSecurityEmptyValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiSecuritySizeEqValidatorTest.java
similarity index 64%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiSecurityEmptyValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiSecuritySizeEqValidatorTest.java
index e86c9ea..ef82ab8 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiSecurityEmptyValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiSecuritySizeEqValidatorTest.java
@@ -17,51 +17,44 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OpenApiValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.SECURITY_REQUIREMENT;
-import static org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages.MUST_BE_EMPTY;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = OpenApiSecurityEmptyValidatorTest.TestConfiguration.class)
-public class OpenApiSecurityEmptyValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class OpenApiSecuritySizeEqValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-security-empty.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(OpenApiSecuritySizeEqValidator.CONFIG_KEY, "0")
+ );
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
- assertThat(violations).containsExactly(createViolation(MUST_BE_EMPTY, "security", SECURITY_REQUIREMENT));
+ assertThat(violations)
+ .containsExactly(
+ createViolation(OpenApiSecuritySizeEqValidator.ERROR + "0", "security", SECURITY_REQUIREMENT));
}
@Test
public void testValidateGood() {
OpenAPI openAPI = loadRelative("petstore-security-empty-good.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(OpenApiSecuritySizeEqValidator.CONFIG_KEY, "0")
+ );
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).isEmpty();
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
- @Bean
-
- public OpenApiValidator openApiValidator() {
-
- return new OpenApiSecurityEmptyValidator();
- }
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagsSizeValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagsSizeGteValidatorTest.java
similarity index 64%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagsSizeValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagsSizeGteValidatorTest.java
index 6e552bf..5650f56 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagsSizeValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagsSizeGteValidatorTest.java
@@ -17,15 +17,12 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OpenApiValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -33,28 +30,20 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.TAG;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = OpenApiTagsSizeValidatorTest.TestConfiguration.class)
-public class OpenApiTagsSizeValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class OpenApiTagsSizeGteValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-tag-not-provided.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(OpenApiTagsSizeGteValidator.CONFIG_KEY, "1")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).hasSize(1);
- assertThat(violations).containsExactly(createViolation("At least provide one tag", "tags", TAG));
- }
-
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
- @Bean
-
- public OpenApiValidator openApiValidator() {
-
- return new OpenApiTagNotEmptyValidator();
- }
+ assertThat(violations).containsExactly(createViolation(OpenApiTagsSizeGteValidator.ERROR + "1", "tags", TAG));
}
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiVersionValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiVersionGteValidatorTest.java
similarity index 63%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiVersionValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiVersionGteValidatorTest.java
index 02d2b93..ebc5b8c 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiVersionValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiVersionGteValidatorTest.java
@@ -17,44 +17,32 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OpenApiValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = OpenApiVersionValidatorTest.TestConfiguration.class)
-public class OpenApiVersionValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class OpenApiVersionGteValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-openapi-wrong.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(OpenApiVersionGteValidator.CONFIG_KEY, "3.0.2")
+ );
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).hasSize(1);
- assertThat(violations).containsExactly(createViolation("Must be >= 3.0.2", "openapi", null));
- }
-
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public OpenApiValidator openApiValidator() {
-
- return new OpenApiVersionValidator();
- }
+ assertThat(violations)
+ .containsExactly(createViolation(OpenApiVersionGteValidator.ERROR + "3.0.2", "openapi", null));
}
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationIdLowerCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationIdCaseValidatorTest.java
similarity index 64%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationIdLowerCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationIdCaseValidatorTest.java
index 3c9b160..06553b0 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationIdLowerCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationIdCaseValidatorTest.java
@@ -17,16 +17,12 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.operation;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -34,34 +30,25 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = OperationIdLowerCamelCaseValidatorTest.TestConfiguration.class)
-public class OperationIdLowerCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class OperationIdCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-operation-id-lower-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(OperationIdCaseValidator.CONFIG_KEY, "lower-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactly(
- createViolation(ViolationMessages.LOWER_CAMEL_CASE,
+ createViolation(OperationIdCaseValidator.ERROR + "lower-camel-case",
"paths", PATHS,
"/pets", PATH_ITEM,
"get", OPERATION,
"operationId", null));
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public OperationValidator operationValidator() {
- return new OperationIdLowerCamelCaseValidator();
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersEmptyValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersSizeEqValidatorTest.java
similarity index 64%
copy from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersEmptyValidatorTest.java
copy to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersSizeEqValidatorTest.java
index c28a005..a489aa3 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersEmptyValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersSizeEqValidatorTest.java
@@ -17,51 +17,39 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.operation;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
-import static org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages.MUST_BE_EMPTY;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = OperationServersEmptyValidatorTest.TestConfiguration.class)
-public class OperationServersEmptyValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class OperationServersSizeEqValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-operation-servers-empty.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(OperationServersSizeEqValidator.CONFIG_KEY, "0")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactly(
- createViolation(MUST_BE_EMPTY,
+ createViolation(OperationServersSizeEqValidator.ERROR + "0",
"paths", PATHS,
"/pets", PATH_ITEM,
"get", OPERATION,
"servers", SERVER));
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public OperationValidator operationValidator() {
- return new OperationServersEmptyValidator();
- }
-
- }
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationSummaryRequiredValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationSummaryRequiredValidatorTest.java
index c3b9266..a2e2cd6 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationSummaryRequiredValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationSummaryRequiredValidatorTest.java
@@ -17,16 +17,13 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.operation;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
+import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-import io.swagger.v3.oas.models.OpenAPI;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -34,12 +31,17 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = OperationSummaryRequiredValidatorTest.TestConfiguration.class)
-public class OperationSummaryRequiredValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class OperationSummaryRequiredValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-operation-summary-required.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(OperationSummaryRequiredValidator.CONFIG_KEY, "true")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactly(
createViolation(ViolationMessages.REQUIRED,
@@ -49,19 +51,5 @@ public class OperationSummaryRequiredValidatorTest extends OasComplianceTestBase
"summary", null));
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public OperationValidator operationValidator() {
- return new OperationSummaryRequiredValidator();
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsReferenceValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsReferenceValidatorTest.java
index 1032d50..0cfb9db 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsReferenceValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsReferenceValidatorTest.java
@@ -17,15 +17,12 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.operation;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -33,34 +30,25 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = OperationTagsReferenceValidatorTest.TestConfiguration.class)
-public class OperationTagsReferenceValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class OperationTagsReferenceValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-operation-tags-reference.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(OperationTagsReferenceValidator.CONFIG_KEY, "true")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactly(
- createViolation("Is not defined in $.tags",
+ createViolation(OperationTagsReferenceValidator.ERROR,
"paths", PATHS,
"/pets", PATH_ITEM,
"get", OPERATION,
"tags[0]", null));
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public OperationValidator operationValidator() {
- return new OperationTagsReferenceValidator();
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsOnlyOneValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsSizeEqValidatorTest.java
similarity index 66%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsOnlyOneValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsSizeEqValidatorTest.java
index 75d75b4..6716558 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsOnlyOneValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationTagsSizeEqValidatorTest.java
@@ -17,15 +17,12 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.operation;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -33,34 +30,25 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = OperationTagsOnlyOneValidatorTest.TestConfiguration.class)
-public class OperationTagsOnlyOneValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class OperationTagsSizeEqValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-operation-tags-only-one.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(OperationTagsSizeEqValidator.CONFIG_KEY, "1")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactly(
- createViolation("Must provide one and at most one tag",
+ createViolation(OperationTagsSizeEqValidator.ERROR + "1",
"paths", PATHS,
"/pets", PATH_ITEM,
"get", OPERATION,
"tags", null));
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public OperationValidator operationValidator() {
- return new OperationTagsOnlyOneValidator();
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterDescriptionRequiredValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterDescriptionRequiredValidatorTest.java
index 29ad2a8..af650ed 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterDescriptionRequiredValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterDescriptionRequiredValidatorTest.java
@@ -17,16 +17,13 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
+import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ParameterValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-import io.swagger.v3.oas.models.OpenAPI;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -34,12 +31,17 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = ParameterDescriptionRequiredValidatorTest.TestConfiguration.class)
-public class ParameterDescriptionRequiredValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ParameterDescriptionRequiredValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-parameter-desc-none.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ParameterDescriptionRequiredValidator.CONFIG_KEY, "true")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
@@ -59,18 +61,5 @@ public class ParameterDescriptionRequiredValidatorTest extends OasComplianceTest
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
- public ParameterValidator parameterValidator() {
- return new ParameterDescriptionRequiredValidator();
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterCookieLowerCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameCookieCaseValidatorTest.java
similarity index 66%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterCookieLowerCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameCookieCaseValidatorTest.java
index 7d87862..b6b9c0a 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterCookieLowerCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameCookieCaseValidatorTest.java
@@ -17,16 +17,12 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ParameterValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -34,16 +30,21 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = ParameterCookieLowerCamelCaseValidatorTest.TestConfiguration.class)
-public class ParameterCookieLowerCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ParameterNameCookieCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-parameter-cookie-lower-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ParameterNameCookieCaseValidator.CONFIG_KEY, "lower-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ ParameterNameCookieCaseValidator.ERROR + "lower-camel-case",
"paths", PATHS,
"/pets/{petId}", PATH_ITEM,
"get", OPERATION,
@@ -51,7 +52,7 @@ public class ParameterCookieLowerCamelCaseValidatorTest extends OasComplianceTes
"name", null
),
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ ParameterNameCookieCaseValidator.ERROR + "lower-camel-case",
"components", COMPONENTS,
"parameters.'Bar'", PARAMETER,
"name", null
@@ -59,19 +60,5 @@ public class ParameterCookieLowerCamelCaseValidatorTest extends OasComplianceTes
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public ParameterValidator parameterValidator() {
- return new ParameterCookieLowerCamelCaseValidator();
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterHeaderUpperHyphenCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameHeaderCaseValidatorTest.java
similarity index 65%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterHeaderUpperHyphenCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameHeaderCaseValidatorTest.java
index 90d97a3..19077e9 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterHeaderUpperHyphenCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameHeaderCaseValidatorTest.java
@@ -17,16 +17,12 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ParameterValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -34,16 +30,21 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = ParameterHeaderUpperHyphenCaseValidatorTest.TestConfiguration.class)
-public class ParameterHeaderUpperHyphenCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ParameterNameHeaderCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-parameter-header-upper-hyphen-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ParameterNameHeaderCaseValidator.CONFIG_KEY, "upper-hyphen-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.UPPER_HYPHEN_CASE,
+ ParameterNameHeaderCaseValidator.ERROR + "upper-hyphen-case",
"paths", PATHS,
"/pets/{petId}", PATH_ITEM,
"get", OPERATION,
@@ -51,7 +52,7 @@ public class ParameterHeaderUpperHyphenCaseValidatorTest extends OasComplianceTe
"name", null
),
createViolation(
- ViolationMessages.UPPER_HYPHEN_CASE,
+ ParameterNameHeaderCaseValidator.ERROR + "upper-hyphen-case",
"components", COMPONENTS,
"parameters.'Bar'", PARAMETER,
"name", null
@@ -59,19 +60,5 @@ public class ParameterHeaderUpperHyphenCaseValidatorTest extends OasComplianceTe
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public ParameterValidator parameterValidator() {
- return new ParameterHeaderUpperHyphenCaseValidator();
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterPathLowerCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNamePathCaseValidatorTest.java
similarity index 66%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterPathLowerCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNamePathCaseValidatorTest.java
index 0f6fe35..0e3af92 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterPathLowerCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNamePathCaseValidatorTest.java
@@ -17,16 +17,12 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ParameterValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -34,16 +30,21 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = ParameterPathLowerCamelCaseValidatorTest.TestConfiguration.class)
-public class ParameterPathLowerCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ParameterNamePathCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-parameter-path-lower-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ParameterNamePathCaseValidator.CONFIG_KEY, "lower-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ ParameterNamePathCaseValidator.ERROR + "lower-camel-case",
"paths", PATHS,
"/pets/{PetId}", PATH_ITEM,
"get", OPERATION,
@@ -51,7 +52,7 @@ public class ParameterPathLowerCamelCaseValidatorTest extends OasComplianceTestB
"name", null
),
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ ParameterNamePathCaseValidator.ERROR + "lower-camel-case",
"components", COMPONENTS,
"parameters.'Bar'", PARAMETER,
"name", null
@@ -59,19 +60,5 @@ public class ParameterPathLowerCamelCaseValidatorTest extends OasComplianceTestB
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public ParameterValidator parameterValidator() {
- return new ParameterPathLowerCamelCaseValidator();
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterQueryLowerCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameQueryCaseValidatorTest.java
similarity index 66%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterQueryLowerCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameQueryCaseValidatorTest.java
index 062f351..e81f4a2 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterQueryLowerCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/parameter/ParameterNameQueryCaseValidatorTest.java
@@ -17,16 +17,12 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.parameter;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ParameterValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -34,16 +30,21 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = ParameterQueryLowerCamelCaseValidatorTest.TestConfiguration.class)
-public class ParameterQueryLowerCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ParameterNameQueryCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-parameter-query-lower-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ParameterNameQueryCaseValidator.CONFIG_KEY, "lower-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ ParameterNameQueryCaseValidator.ERROR + "lower-camel-case",
"paths", PATHS,
"/pets/{petId}", PATH_ITEM,
"get", OPERATION,
@@ -51,7 +52,7 @@ public class ParameterQueryLowerCamelCaseValidatorTest extends OasComplianceTest
"name", null
),
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ ParameterNameQueryCaseValidator.ERROR + "lower-camel-case",
"components", COMPONENTS,
"parameters.'Bar'", PARAMETER,
"name", null
@@ -59,19 +60,5 @@ public class ParameterQueryLowerCamelCaseValidatorTest extends OasComplianceTest
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public ParameterValidator parameterValidator() {
- return new ParameterQueryLowerCamelCaseValidator();
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/paths/PathsLowerCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/paths/PathsKeyCaseValidatorTest.java
similarity index 66%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/paths/PathsLowerCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/paths/PathsKeyCaseValidatorTest.java
index d18c470..2165d54 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/paths/PathsLowerCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/paths/PathsKeyCaseValidatorTest.java
@@ -17,18 +17,12 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.paths;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.PathsValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -37,40 +31,32 @@ import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.PATHS;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.PATH_ITEM;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = PathsLowerCamelCaseValidatorTest.TestConfiguration.class)
-public class PathsLowerCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class PathsKeyCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-paths-lower-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(PathsKeyCaseValidator.CONFIG_KEY, "lower-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ PathsKeyCaseValidator.ERROR + "lower-camel-case",
"paths", PATHS,
"/pets/{PetId}", PATH_ITEM
),
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ PathsKeyCaseValidator.ERROR + "lower-camel-case",
"paths", PATHS,
"/Pets", PATH_ITEM
)
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
- @Bean
-
- public PathsValidator pathsValidator() {
-
- return new PathsLowerCamelCaseValidator();
- }
-
- }
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/requestbody/RequestBodyDescriptionRequiredValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/requestbody/RequestBodyDescriptionRequiredValidatorTest.java
index d220ce9..52845a2 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/requestbody/RequestBodyDescriptionRequiredValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/requestbody/RequestBodyDescriptionRequiredValidatorTest.java
@@ -17,16 +17,13 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.requestbody;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
+import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.RequestBodyValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-import io.swagger.v3.oas.models.OpenAPI;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -34,12 +31,17 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = RequestBodyDescriptionRequiredValidatorTest.TestConfiguration.class)
-public class RequestBodyDescriptionRequiredValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class RequestBodyDescriptionRequiredValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-request-body-desc-required.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(RequestBodyDescriptionRequiredValidator.CONFIG_KEY, "true")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
@@ -59,19 +61,4 @@ public class RequestBodyDescriptionRequiredValidatorTest extends OasComplianceTe
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public RequestBodyValidator requestBodyValidator() {
-
- return new RequestBodyDescriptionRequiredValidator();
- }
-
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersEmptyValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/response/ResponseHeadersKeysCaseValidatorTest.java
old mode 100755
new mode 100644
similarity index 54%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersEmptyValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/response/ResponseHeadersKeysCaseValidatorTest.java
index c28a005..2e02c44
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/operation/OperationServersEmptyValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/response/ResponseHeadersKeysCaseValidatorTest.java
@@ -15,54 +15,50 @@
* limitations under the License.
*/
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.operation;
+package org.apache.servicecomb.toolkit.oasv.compliance.validator.response;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OperationValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
-import static org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages.MUST_BE_EMPTY;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = OperationServersEmptyValidatorTest.TestConfiguration.class)
-public class OperationServersEmptyValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class ResponseHeadersKeysCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
- OpenAPI openAPI = loadRelative("petstore-operation-servers-empty.yaml");
- List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
- assertThat(violations).containsExactly(
- createViolation(MUST_BE_EMPTY,
- "paths", PATHS,
- "/pets", PATH_ITEM,
- "get", OPERATION,
- "servers", SERVER));
- }
-
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public OperationValidator operationValidator() {
- return new OperationServersEmptyValidator();
- }
+ OpenAPI openAPI = loadRelative("petstore-response-headers-key-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(ResponseHeadersKeysCaseValidator.CONFIG_KEY, "upper-hyphen-case")
+ );
+ List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
+ assertThat(violations).containsExactlyInAnyOrder(
+ createViolation(
+ ResponseHeadersKeysCaseValidator.ERROR + "upper-hyphen-case",
+ "paths", PATHS,
+ "/pets", PATH_ITEM,
+ "post", OPERATION,
+ "responses", RESPONSES,
+ "default", RESPONSE,
+ "headers.'foo-bar'", null
+ ),
+ createViolation(
+ ResponseHeadersKeysCaseValidator.ERROR + "upper-hyphen-case",
+ "components", COMPONENTS,
+ "responses.'foo'", RESPONSE,
+ "headers.'foo-bar'", null
+ )
+ );
}
}
-
-
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaPropertiesKeysLowerCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaPropertiesKeysCaseValidatorTest.java
similarity index 75%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaPropertiesKeysLowerCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaPropertiesKeysCaseValidatorTest.java
index 9683586..248613f 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaPropertiesKeysLowerCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaPropertiesKeysCaseValidatorTest.java
@@ -17,34 +17,31 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.schema;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.SchemaValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.*;
-import static org.apache.servicecomb.toolkit.oasv.compliance.validator.schema.SchemaKeysValidators.PROPERTIES_LOWER_CAMEL_CASE_VALIDATOR;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = SchemaPropertiesKeysLowerCamelCaseValidatorTest.TestConfiguration.class)
-public class SchemaPropertiesKeysLowerCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class SchemaPropertiesKeysCaseValidatorTest extends OasStyleCheckTestBase {
+
@Test
public void testValidateParameter1() {
OpenAPI openAPI = loadRelative("petstore-schema-p-keys-lower-camel-case-param-1.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ SchemaPropertiesKeysCaseValidator.ERROR + "lower-camel-case",
"paths", PATHS,
"/pets", PATH_ITEM,
"get", OPERATION,
@@ -58,10 +55,11 @@ public class SchemaPropertiesKeysLowerCamelCaseValidatorTest extends OasComplian
@Test
public void testValidateParameter2() {
OpenAPI openAPI = loadRelative("petstore-schema-p-keys-lower-camel-case-param-2.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ SchemaPropertiesKeysCaseValidator.ERROR + "lower-camel-case",
"components", COMPONENTS,
"parameters.'Foo'", PARAMETER,
"schema", SCHEMA,
@@ -73,10 +71,11 @@ public class SchemaPropertiesKeysLowerCamelCaseValidatorTest extends OasComplian
@Test
public void testResponse1() {
OpenAPI openAPI = loadRelative("petstore-schema-p-keys-lower-camel-case-resp-1.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ SchemaPropertiesKeysCaseValidator.ERROR + "lower-camel-case",
"paths", PATHS,
"/pets", PATH_ITEM,
"get", OPERATION,
@@ -92,10 +91,11 @@ public class SchemaPropertiesKeysLowerCamelCaseValidatorTest extends OasComplian
@Test
public void testResponse2() {
OpenAPI openAPI = loadRelative("petstore-schema-p-keys-lower-camel-case-resp-2.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ SchemaPropertiesKeysCaseValidator.ERROR + "lower-camel-case",
"components", COMPONENTS,
"responses.'Foo'", RESPONSE,
"content.'application/json'", MEDIA_TYPE,
@@ -108,10 +108,11 @@ public class SchemaPropertiesKeysLowerCamelCaseValidatorTest extends OasComplian
@Test
public void testRequestBody1() {
OpenAPI openAPI = loadRelative("petstore-schema-p-keys-lower-camel-case-req-1.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ SchemaPropertiesKeysCaseValidator.ERROR + "lower-camel-case",
"paths", PATHS,
"/pets", PATH_ITEM,
"post", OPERATION,
@@ -126,10 +127,11 @@ public class SchemaPropertiesKeysLowerCamelCaseValidatorTest extends OasComplian
@Test
public void testRequestBody2() {
OpenAPI openAPI = loadRelative("petstore-schema-p-keys-lower-camel-case-req-2.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ SchemaPropertiesKeysCaseValidator.ERROR + "lower-camel-case",
"components", COMPONENTS,
"requestBodies.'Foo'", REQUEST_BODY,
"content.'application/json'", MEDIA_TYPE,
@@ -142,10 +144,11 @@ public class SchemaPropertiesKeysLowerCamelCaseValidatorTest extends OasComplian
@Test
public void testComponent() {
OpenAPI openAPI = loadRelative("petstore-schema-p-keys-lower-camel-case-comp.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ SchemaPropertiesKeysCaseValidator.ERROR + "lower-camel-case",
"components", COMPONENTS,
"schemas.'Foo'", SCHEMA,
"properties.'Foo'", null
@@ -156,16 +159,17 @@ public class SchemaPropertiesKeysLowerCamelCaseValidatorTest extends OasComplian
@Test
public void testNested() {
OpenAPI openAPI = loadRelative("petstore-schema-p-keys-lower-camel-case-nested.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ SchemaPropertiesKeysCaseValidator.ERROR + "lower-camel-case",
"components", COMPONENTS,
"schemas.'Foo'", SCHEMA,
"properties.'Foo'", null
),
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ SchemaPropertiesKeysCaseValidator.ERROR + "lower-camel-case",
"components", COMPONENTS,
"schemas.'Foo'", SCHEMA,
"properties.'Foo'", SCHEMA,
@@ -177,10 +181,11 @@ public class SchemaPropertiesKeysLowerCamelCaseValidatorTest extends OasComplian
@Test
public void testAllOf() {
OpenAPI openAPI = loadRelative("petstore-schema-p-keys-lower-camel-case-all-of.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ SchemaPropertiesKeysCaseValidator.ERROR + "lower-camel-case",
"components", COMPONENTS,
"schemas.'Foo'", SCHEMA,
"allOf[0]", SCHEMA,
@@ -192,10 +197,11 @@ public class SchemaPropertiesKeysLowerCamelCaseValidatorTest extends OasComplian
@Test
public void testAnyOf() {
OpenAPI openAPI = loadRelative("petstore-schema-p-keys-lower-camel-case-any-of.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ SchemaPropertiesKeysCaseValidator.ERROR + "lower-camel-case",
"components", COMPONENTS,
"schemas.'Foo'", SCHEMA,
"anyOf[0]", SCHEMA,
@@ -207,10 +213,11 @@ public class SchemaPropertiesKeysLowerCamelCaseValidatorTest extends OasComplian
@Test
public void testOneOf() {
OpenAPI openAPI = loadRelative("petstore-schema-p-keys-lower-camel-case-one-of.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ SchemaPropertiesKeysCaseValidator.ERROR + "lower-camel-case",
"components", COMPONENTS,
"schemas.'Foo'", SCHEMA,
"oneOf[0]", SCHEMA,
@@ -222,10 +229,11 @@ public class SchemaPropertiesKeysLowerCamelCaseValidatorTest extends OasComplian
@Test
public void testArray() {
OpenAPI openAPI = loadRelative("petstore-schema-p-keys-lower-camel-case-array.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
- ViolationMessages.LOWER_CAMEL_CASE,
+ SchemaPropertiesKeysCaseValidator.ERROR + "lower-camel-case",
"components", COMPONENTS,
"schemas.'Foo'", SCHEMA,
"items", SCHEMA,
@@ -234,18 +242,12 @@ public class SchemaPropertiesKeysLowerCamelCaseValidatorTest extends OasComplian
);
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public SchemaValidator schemaValidator() {
-
- return PROPERTIES_LOWER_CAMEL_CASE_VALIDATOR;
- }
+ private OasSpecValidator createOasSpecValidator() {
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(SchemaPropertiesKeysCaseValidator.CONFIG_KEY, "lower-camel-case")
+ );
+ return oasSpecValidator;
}
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaTitleValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaTitleRequiredValidatorTest.java
similarity index 77%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaTitleValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaTitleRequiredValidatorTest.java
index 86b5207..1adbf33 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaTitleValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/schema/SchemaTitleRequiredValidatorTest.java
@@ -17,16 +17,13 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.schema;
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
+import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.SchemaValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-import io.swagger.v3.oas.models.OpenAPI;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -35,12 +32,13 @@ import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.COMPONENT
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.SCHEMA;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = SchemaTitleValidatorTest.TestConfiguration.class)
-public class SchemaTitleValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class SchemaTitleRequiredValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidateComponents() {
OpenAPI openAPI = loadRelative("petstore-schema-title-comp.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
@@ -51,10 +49,10 @@ public class SchemaTitleValidatorTest extends OasComplianceTestBase {
)
);
}
-
@Test
public void testValidateNested() {
OpenAPI openAPI = loadRelative("petstore-schema-title-nested.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).containsExactlyInAnyOrder(
createViolation(
@@ -70,6 +68,7 @@ public class SchemaTitleValidatorTest extends OasComplianceTestBase {
@Test
public void testValidateParameter() {
OpenAPI openAPI = loadRelative("petstore-schema-title-param.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).isEmpty();
}
@@ -77,6 +76,7 @@ public class SchemaTitleValidatorTest extends OasComplianceTestBase {
@Test
public void testValidateRequestBody() {
OpenAPI openAPI = loadRelative("petstore-schema-title-req.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).isEmpty();
}
@@ -84,21 +84,18 @@ public class SchemaTitleValidatorTest extends OasComplianceTestBase {
@Test
public void testValidateResponse() {
OpenAPI openAPI = loadRelative("petstore-schema-title-resp.yaml");
+ OasSpecValidator oasSpecValidator = createOasSpecValidator();
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).isEmpty();
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
- public SchemaValidator schemaValidator() {
- return new SchemaTitleValidator();
- }
+ private OasSpecValidator createOasSpecValidator() {
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(SchemaTitleRequiredValidator.CONFIG_KEY, "true")
+ );
+ return oasSpecValidator;
}
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagDescriptionRequiredValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagDescriptionRequiredValidatorTest.java
index 8769e07..dd4da53 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagDescriptionRequiredValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagDescriptionRequiredValidatorTest.java
@@ -17,17 +17,13 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
+import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.TagValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
-import io.swagger.v3.oas.models.OpenAPI;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -35,28 +31,21 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.TAG;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = TagDescriptionRequiredValidatorTest.TestConfiguration.class)
-public class TagDescriptionRequiredValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class TagDescriptionRequiredValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-tag-no-desc.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(TagDescriptionRequiredValidator.CONFIG_KEY, "true")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).hasSize(1);
assertThat(violations)
.containsExactly(createViolation(ViolationMessages.REQUIRED, "tags[0]", TAG, "description", null));
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
- @Bean
-
- public TagValidator tagDescriptionRequiredValidator() {
- return new TagDescriptionRequiredValidator();
- }
- }
-
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagReferenceValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagMustBeReferencedValidatorTest.java
similarity index 64%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagReferenceValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagMustBeReferencedValidatorTest.java
index 53a975a..adaf16e 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagReferenceValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagMustBeReferencedValidatorTest.java
@@ -17,16 +17,12 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.TagValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -34,28 +30,21 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.TAG;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = TagReferenceValidatorTest.TestConfiguration.class)
-public class TagReferenceValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class TagMustBeReferencedValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-tag-redundant.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(TagMustBeReferencedValidator.CONFIG_KEY, "true")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).hasSize(1);
assertThat(violations)
- .containsExactly(createViolation("Is not referenced by any Operation object", "tags[1]", TAG));
- }
-
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
- @Bean
-
- public TagValidator tagReferenceValidator() {
- return new TagReferenceValidator();
- }
+ .containsExactly(createViolation(TagMustBeReferencedValidator.ERROR, "tags[1]", TAG));
}
}
diff --git a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidatorTest.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameCaseValidatorTest.java
similarity index 62%
rename from oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidatorTest.java
rename to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameCaseValidatorTest.java
index e1d1083..2482b2d 100755
--- a/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameUpperCamelCaseValidatorTest.java
+++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/tag/TagNameCaseValidatorTest.java
@@ -17,17 +17,12 @@
package org.apache.servicecomb.toolkit.oasv.compliance.validator.tag;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.TagValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ViolationMessages;
-import org.apache.servicecomb.toolkit.oasv.validation.config.OasValidatorsSkeletonConfiguration;
-
-import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasComplianceTestBase;
import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.compliance.factory.ValidatorFactoryComponents;
+import org.apache.servicecomb.toolkit.oasv.compliance.validator.OasStyleCheckTestBase;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.junit.Test;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
@@ -35,30 +30,23 @@ import java.util.List;
import static org.apache.servicecomb.toolkit.oasv.common.OasObjectType.TAG;
import static org.assertj.core.api.Assertions.assertThat;
-@ContextConfiguration(classes = TagNameUpperCamelCaseValidatorTest.TestConfiguration.class)
-public class TagNameUpperCamelCaseValidatorTest extends OasComplianceTestBase {
+@ContextConfiguration(classes = ValidatorFactoryComponents.class)
+public class TagNameCaseValidatorTest extends OasStyleCheckTestBase {
@Test
public void testValidate() {
OpenAPI openAPI = loadRelative("petstore-tag-name-not-upper-camel-case.yaml");
+ OasSpecValidator oasSpecValidator =
+ oasSpecValidatorFactory.create(
+ singleOption(TagNameCaseValidator.CONFIG_KEY, "upper-camel-case")
+ );
+
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
assertThat(violations).hasSize(1);
assertThat(violations)
- .containsExactly(createViolation(ViolationMessages.UPPER_CAMEL_CASE, "tags[0]", TAG, "name", null));
+ .containsExactly(
+ createViolation(TagNameCaseValidator.ERROR + "upper-camel-case", "tags[0]", TAG, "name", null));
}
- @Configuration
- @Import({
- OasValidatorsSkeletonConfiguration.class
- })
- public static class TestConfiguration {
-
- @Bean
-
- public TagValidator tagNameUpperCamelCaseValidator() {
- return new TagNameUpperCamelCaseValidator();
- }
-
- }
}
diff --git a/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/petstore-security-schemes-upper-camel-case.yaml b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/petstore-security-schemes-upper-camel-case.yaml
new file mode 100755
index 0000000..bc102b7
--- /dev/null
+++ b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/components/petstore-security-schemes-upper-camel-case.yaml
@@ -0,0 +1,52 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements. See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You 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.
+## ---------------------------------------------------------------------------
+openapi: "3.0.0"
+info:
+ version: 1.0.0
+ title: Swagger Petstore
+ license:
+ name: MIT
+servers:
+ - url: http://petstore.swagger.io/v1
+paths:
+ /pets:
+ get:
+ summary: List all pets
+ operationId: listPets
+ tags:
+ - pets
+ parameters:
+ - name: limit
+ in: query
+ description: How many items to return at one time (max 100)
+ required: false
+ schema:
+ type: integer
+ format: int32
+ responses:
+ '200':
+ description: A paged array of pets
+ headers:
+ x-next:
+ description: A link to the next page of responses
+ schema:
+ type: string
+components:
+ securitySchemes:
+ foo:
+ type: http
+ scheme: http
diff --git a/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/petstore-encoding-headers-key-case-1.yaml b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/petstore-encoding-headers-key-case-1.yaml
new file mode 100755
index 0000000..8f430ef
--- /dev/null
+++ b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/petstore-encoding-headers-key-case-1.yaml
@@ -0,0 +1,48 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements. See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You 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.
+## ---------------------------------------------------------------------------
+openapi: "3.0.0"
+info:
+ version: 1.0.0
+ title: Swagger Petstore
+ license:
+ name: MIT
+servers:
+ - url: http://petstore.swagger.io/v1
+paths:
+ /pets:
+ post:
+ summary: Create a pet
+ operationId: createPets
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: string
+ encoding:
+ foo:
+ contentType: application/json
+ headers:
+ foo-bar:
+ schema:
+ type: string
+ responses:
+ default:
+ description: unexpected error
+ headers:
+ foo:
+ schema:
+ type: string
diff --git a/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/petstore-encoding-headers-key-case-2.yaml b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/petstore-encoding-headers-key-case-2.yaml
new file mode 100755
index 0000000..03f14ff
--- /dev/null
+++ b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/petstore-encoding-headers-key-case-2.yaml
@@ -0,0 +1,43 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements. See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You 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.
+## ---------------------------------------------------------------------------
+openapi: "3.0.0"
+info:
+ version: 1.0.0
+ title: Swagger Petstore
+ license:
+ name: MIT
+servers:
+ - url: http://petstore.swagger.io/v1
+paths:
+ /pets:
+ post:
+ summary: Create a pet
+ operationId: createPets
+ responses:
+ default:
+ description: unexpected error
+ content:
+ application/json:
+ schema:
+ type: string
+ encoding:
+ foo:
+ contentType: application/json
+ headers:
+ foo-bar:
+ schema:
+ type: string
diff --git a/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/petstore-encoding-headers-key-case-3.yaml b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/petstore-encoding-headers-key-case-3.yaml
new file mode 100755
index 0000000..4fde1e3
--- /dev/null
+++ b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/petstore-encoding-headers-key-case-3.yaml
@@ -0,0 +1,51 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements. See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You 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.
+## ---------------------------------------------------------------------------
+openapi: "3.0.0"
+info:
+ version: 1.0.0
+ title: Swagger Petstore
+ license:
+ name: MIT
+servers:
+ - url: http://petstore.swagger.io/v1
+paths:
+ /pets:
+ post:
+ summary: Create a pet
+ operationId: createPets
+ responses:
+ default:
+ description: unexpected error
+ headers:
+ foo:
+ schema:
+ type: string
+
+components:
+ requestBodies:
+ foo:
+ content:
+ application/json:
+ schema:
+ type: string
+ encoding:
+ foo:
+ contentType: application/json
+ headers:
+ foo-bar:
+ schema:
+ type: string
diff --git a/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/petstore-encoding-headers-key-case-4.yaml b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/petstore-encoding-headers-key-case-4.yaml
new file mode 100755
index 0000000..833520e
--- /dev/null
+++ b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/encoding/petstore-encoding-headers-key-case-4.yaml
@@ -0,0 +1,52 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements. See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You 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.
+## ---------------------------------------------------------------------------
+openapi: "3.0.0"
+info:
+ version: 1.0.0
+ title: Swagger Petstore
+ license:
+ name: MIT
+servers:
+ - url: http://petstore.swagger.io/v1
+paths:
+ /pets:
+ post:
+ summary: Create a pet
+ operationId: createPets
+ responses:
+ default:
+ description: unexpected error
+ headers:
+ foo:
+ schema:
+ type: string
+
+components:
+ responses:
+ foo:
+ description: unexpected error
+ content:
+ application/json:
+ schema:
+ type: string
+ encoding:
+ foo:
+ contentType: application/json
+ headers:
+ foo-bar:
+ schema:
+ type: string
diff --git a/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/response/petstore-response-headers-key-case.yaml b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/response/petstore-response-headers-key-case.yaml
new file mode 100755
index 0000000..dc930ae
--- /dev/null
+++ b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/validator/response/petstore-response-headers-key-case.yaml
@@ -0,0 +1,44 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements. See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You 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.
+## ---------------------------------------------------------------------------
+openapi: "3.0.0"
+info:
+ version: 1.0.0
+ title: Swagger Petstore
+ license:
+ name: MIT
+servers:
+ - url: http://petstore.swagger.io/v1
+paths:
+ /pets:
+ post:
+ summary: Create a pet
+ operationId: createPets
+ responses:
+ default:
+ description: unexpected error
+ headers:
+ foo-bar:
+ schema:
+ type: string
+components:
+ responses:
+ foo:
+ description: unexpected error
+ headers:
+ foo-bar:
+ schema:
+ type: string
diff --git a/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/FactoryOptions.java b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/FactoryOptions.java
new file mode 100644
index 0000000..6d555cc
--- /dev/null
+++ b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/FactoryOptions.java
@@ -0,0 +1,48 @@
+package org.apache.servicecomb.toolkit.oasv;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.*;
+
+public class FactoryOptions {
+
+ private final Map<String, String> options;
+
+ public FactoryOptions(Map<String, String> options) {
+ this.options = Collections.unmodifiableMap(new HashMap<>(options));
+ }
+
+ public FactoryOptions(Properties properties) {
+ Map<String, String> options = new HashMap<>();
+ Set<Object> keys = properties.keySet();
+ for (Object key : keys) {
+ options.put((String) key, (String) properties.get(key));
+ }
+ this.options = Collections.unmodifiableMap(options);
+ }
+
+ public String getString(String key) {
+ String value = options.get(key);
+ if (StringUtils.isNotBlank(value)) {
+ return value;
+ }
+ return null;
+ }
+
+ public Boolean getBoolean(String key) {
+ String value = options.get(key);
+ if (StringUtils.isNotBlank(value)) {
+ return Boolean.valueOf(value);
+ }
+ return null;
+ }
+
+ public Integer getInteger(String key) {
+ String value = options.get(key);
+ if (StringUtils.isNotBlank(value)) {
+ return Integer.valueOf(value);
+ }
+ return null;
+ }
+
+}
diff --git a/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/DiffValidatorCreationOptions.java b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/DiffValidatorCreationOptions.java
new file mode 100644
index 0000000..b39eeed
--- /dev/null
+++ b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/DiffValidatorCreationOptions.java
@@ -0,0 +1,5 @@
+package org.apache.servicecomb.toolkit.oasv.diffvalidation.factory;
+
+public class DiffValidatorCreationOptions {
+
+}
diff --git a/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/util/StringCaseUtils.java b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/util/StringCaseUtils.java
index ac9bc39..189ab1c 100755
--- a/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/util/StringCaseUtils.java
+++ b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/util/StringCaseUtils.java
@@ -54,4 +54,16 @@ public abstract class StringCaseUtils {
return UPPER_HYPHEN_CASE.matcher(string).matches();
}
+ public static boolean isMatchCase(String expectedCase, String string) {
+ switch (expectedCase) {
+ case "upper-camel-case":
+ return isUpperCamelCase(string);
+ case "lower-camel-case":
+ return isLowerCamelCase(string);
+ case "upper-hyphen-case":
+ return isUpperHyphenCase(string);
+ default:
+ throw new IllegalArgumentException("Unrecgonized case");
+ }
+ }
}
diff --git a/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/OasObjectValidatorFactory.java b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/OasObjectValidatorFactory.java
index 58942c0..5c293ec 100644
--- a/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/OasObjectValidatorFactory.java
+++ b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/OasObjectValidatorFactory.java
@@ -19,10 +19,11 @@ package org.apache.servicecomb.toolkit.oasv.validation.factory;
import java.util.List;
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasObjectValidator;
public interface OasObjectValidatorFactory<T extends OasObjectValidator> {
- List<T> create();
+ List<T> create(FactoryOptions options);
}
diff --git a/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/OasSpecValidatorFactory.java b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/OasSpecValidatorFactory.java
index c1a518c..813cc27 100644
--- a/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/OasSpecValidatorFactory.java
+++ b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/OasSpecValidatorFactory.java
@@ -17,8 +17,9 @@
package org.apache.servicecomb.toolkit.oasv.validation.factory;
+import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
public interface OasSpecValidatorFactory {
- OasSpecValidator create();
+ OasSpecValidator create(FactoryOptions options);
}
diff --git a/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/skeleton/encoding/EncodingHeadersKeysValidator.java b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/skeleton/encoding/EncodingHeadersKeysValidator.java
index a5e9c1c..2613a5d 100755
--- a/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/skeleton/encoding/EncodingHeadersKeysValidator.java
+++ b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/skeleton/encoding/EncodingHeadersKeysValidator.java
@@ -17,9 +17,9 @@
package org.apache.servicecomb.toolkit.oasv.validation.skeleton.encoding;
-import org.apache.servicecomb.toolkit.oasv.validation.api.MapPropertyKeysValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.EncodingValidator;
import io.swagger.v3.oas.models.media.Encoding;
+import org.apache.servicecomb.toolkit.oasv.validation.api.EncodingValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.MapPropertyKeysValidator;
import java.util.Map;
import java.util.function.Function;
@@ -33,7 +33,7 @@ public class EncodingHeadersKeysValidator extends MapPropertyKeysValidator<Encod
implements EncodingValidator {
public EncodingHeadersKeysValidator(Predicate<String> keyPredicate,
- Function<String, String> errorFunction) {
+ Function<String, String> errorFunction) {
super(keyPredicate, errorFunction);
}
diff --git a/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/skeleton/response/ResponseHeadersKeysValidator.java b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/skeleton/response/ResponseHeadersKeysValidator.java
index 1db4868..420e7bb 100755
--- a/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/skeleton/response/ResponseHeadersKeysValidator.java
+++ b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/skeleton/response/ResponseHeadersKeysValidator.java
@@ -17,9 +17,9 @@
package org.apache.servicecomb.toolkit.oasv.validation.skeleton.response;
-import org.apache.servicecomb.toolkit.oasv.validation.api.ResponseValidator;
-import org.apache.servicecomb.toolkit.oasv.validation.api.MapPropertyKeysValidator;
import io.swagger.v3.oas.models.responses.ApiResponse;
+import org.apache.servicecomb.toolkit.oasv.validation.api.MapPropertyKeysValidator;
+import org.apache.servicecomb.toolkit.oasv.validation.api.ResponseValidator;
import java.util.Map;
import java.util.function.Function;
@@ -27,13 +27,13 @@ import java.util.function.Predicate;
/**
* <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject">ApiResponse Object</a>
- * .callbacks property key validator
+ * .headers property key validator
*/
public class ResponseHeadersKeysValidator extends MapPropertyKeysValidator<ApiResponse>
implements ResponseValidator {
public ResponseHeadersKeysValidator(Predicate<String> keyPredicate,
- Function<String, String> errorFunction) {
+ Function<String, String> errorFunction) {
super(keyPredicate, errorFunction);
}
diff --git a/oas-validator/oas-validator-core/src/test/java/org/apache/servicecomb/toolkit/oasv/util/StringCaseUtilsTest.java b/oas-validator/oas-validator-core/src/test/java/org/apache/servicecomb/toolkit/oasv/util/StringCaseUtilsTest.java
index 2db499e..f0a6921 100755
--- a/oas-validator/oas-validator-core/src/test/java/org/apache/servicecomb/toolkit/oasv/util/StringCaseUtilsTest.java
+++ b/oas-validator/oas-validator-core/src/test/java/org/apache/servicecomb/toolkit/oasv/util/StringCaseUtilsTest.java
@@ -17,10 +17,11 @@
package org.apache.servicecomb.toolkit.oasv.util;
-import static org.assertj.core.api.Assertions.assertThat;
-
import org.junit.Test;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertEquals;
+
public class StringCaseUtilsTest {
@Test
@@ -171,4 +172,11 @@ public class StringCaseUtilsTest {
assertThat(StringCaseUtils.isUpperHyphenCase("aaA00_")).isFalse();
}
+
+ @Test
+ public void testIsMatchCase() {
+ // TODO
+ assertEquals(true, false);
+ }
+
}
diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagNotEmptyValidator.java b/oas-validator/oas-validator-test/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/test/OasValidatorTestBaseNew.java
similarity index 50%
rename from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagNotEmptyValidator.java
rename to oas-validator/oas-validator-test/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/test/OasValidatorTestBaseNew.java
index b93b9ea..f20f54e 100755
--- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/validator/openapi/OpenApiTagNotEmptyValidator.java
+++ b/oas-validator/oas-validator-test/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/test/OasValidatorTestBaseNew.java
@@ -15,40 +15,40 @@
* limitations under the License.
*/
-package org.apache.servicecomb.toolkit.oasv.compliance.validator.openapi;
+package org.apache.servicecomb.toolkit.oasv.validation.test;
+import io.swagger.v3.oas.models.OpenAPI;
+import org.apache.servicecomb.toolkit.oasv.OasSpecLoader;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectType;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
-import org.apache.servicecomb.toolkit.oasv.validation.api.OpenApiValidator;
-import io.swagger.v3.oas.models.OpenAPI;
-import org.apache.commons.collections4.CollectionUtils;
+import org.apache.servicecomb.toolkit.oasv.validation.factory.OasSpecValidatorFactory;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.junit4.SpringRunner;
-import java.util.List;
+@RunWith(SpringRunner.class)
+public abstract class OasValidatorTestBaseNew extends OasSpecLoader {
-import static java.util.Collections.emptyList;
-import static java.util.Collections.singletonList;
-
-/**
- * <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#openapi-object">OpenAPI Object</a>
- * .tags(List of <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject">Tag Object</a>)
- * not empty validator
- * <ul>
- * <li>at least one</li>
- * </ul>
- */
-public class OpenApiTagNotEmptyValidator implements OpenApiValidator {
+ @Autowired
+ protected OasSpecValidatorFactory oasSpecValidatorFactory;
- @Override
- public List<OasViolation> validate(OasValidationContext context, OasObjectPropertyLocation location, OpenAPI openAPI) {
+ final protected OasValidationContext createContext(OpenAPI openAPI) {
+ OasValidationContext oasValidationContext = new OasValidationContext(openAPI);
+ initContext(oasValidationContext);
+ return oasValidationContext;
+ }
- if (CollectionUtils.isEmpty(openAPI.getTags())) {
- return singletonList(new OasViolation(location.property("tags", OasObjectType.TAG), "At least provide one tag"));
+ protected void initContext(OasValidationContext context) {
+ }
+ final protected OasViolation createViolation(String error, Object... path) {
+ OasObjectPropertyLocation loc = OasObjectPropertyLocation.root();
+ for (int i = 0; i < path.length; i = i + 2) {
+ loc = loc.property((String) path[i], (OasObjectType) path[i + 1]);
}
- return emptyList();
-
+ return new OasViolation(loc, error);
}
}