You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2021/07/13 16:29:31 UTC
[sling-whiteboard] 01/03: SLING-10551 - section names must be
capitalized in schema
This is an automated email from the ASF dual-hosted git repository.
bdelacretaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git
commit 0696c3c01b640907e29eb446f2294e09b11999be
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Tue Jul 13 18:23:30 2021 +0200
SLING-10551 - section names must be capitalized in schema
---
.../aggregator/impl/DefaultSchemaAggregator.java | 12 +++++-
.../schema/aggregator/impl/CapitalizeTest.java | 43 ++++++++++++++++++++++
.../impl/DefaultSchemaAggregatorTest.java | 8 ++--
.../test/resources/several-providers-output.txt | 2 +-
4 files changed, 59 insertions(+), 6 deletions(-)
diff --git a/sling-org-apache-sling-graphql-schema/src/main/java/org/apache/sling/graphql/schema/aggregator/impl/DefaultSchemaAggregator.java b/sling-org-apache-sling-graphql-schema/src/main/java/org/apache/sling/graphql/schema/aggregator/impl/DefaultSchemaAggregator.java
index 1b47804..164fdc0 100644
--- a/sling-org-apache-sling-graphql-schema/src/main/java/org/apache/sling/graphql/schema/aggregator/impl/DefaultSchemaAggregator.java
+++ b/sling-org-apache-sling-graphql-schema/src/main/java/org/apache/sling/graphql/schema/aggregator/impl/DefaultSchemaAggregator.java
@@ -66,8 +66,18 @@ public class DefaultSchemaAggregator implements SchemaAggregator {
}
}
+ static String capitalize(String s) {
+ if(s == null) {
+ return null;
+ } else if(s.length() > 1) {
+ return String.format("%s%s", s.substring(0, 1).toUpperCase(), s.substring(1, s.length()).toLowerCase());
+ } else {
+ return s.toUpperCase();
+ }
+ }
+
private void copySection(Set<Partial> selected, String sectionName, boolean inBlock, Writer target) throws IOException {
- String prefixToWrite = inBlock ? String.format("%ntype %s {%n", sectionName) : null;
+ String prefixToWrite = inBlock ? String.format("%ntype %s {%n", capitalize(sectionName)) : null;
boolean anyOutput = false;
for(Partial p : selected) {
final Optional<Partial.Section> section = p.getSection(sectionName);
diff --git a/sling-org-apache-sling-graphql-schema/src/test/java/org/apache/sling/graphql/schema/aggregator/impl/CapitalizeTest.java b/sling-org-apache-sling-graphql-schema/src/test/java/org/apache/sling/graphql/schema/aggregator/impl/CapitalizeTest.java
new file mode 100644
index 0000000..aaca60d
--- /dev/null
+++ b/sling-org-apache-sling-graphql-schema/src/test/java/org/apache/sling/graphql/schema/aggregator/impl/CapitalizeTest.java
@@ -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.
+ */
+package org.apache.sling.graphql.schema.aggregator.impl;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+public class CapitalizeTest {
+ @Test
+ public void normalStrings() throws Exception {
+ assertEquals("Voici", DefaultSchemaAggregator.capitalize("voici"));
+ assertEquals("Ou bien", DefaultSchemaAggregator.capitalize("OU BIEN"));
+ }
+
+ @Test
+ public void emptyStrings() throws Exception {
+ assertEquals("", DefaultSchemaAggregator.capitalize(""));
+ assertEquals(null, DefaultSchemaAggregator.capitalize(null));
+ }
+
+ @Test
+ public void shortStrings() throws Exception {
+ assertEquals("A", DefaultSchemaAggregator.capitalize("a"));
+ assertEquals("B", DefaultSchemaAggregator.capitalize("B"));
+ }
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-graphql-schema/src/test/java/org/apache/sling/graphql/schema/aggregator/impl/DefaultSchemaAggregatorTest.java b/sling-org-apache-sling-graphql-schema/src/test/java/org/apache/sling/graphql/schema/aggregator/impl/DefaultSchemaAggregatorTest.java
index cf7e79c..cd4f26a 100644
--- a/sling-org-apache-sling-graphql-schema/src/test/java/org/apache/sling/graphql/schema/aggregator/impl/DefaultSchemaAggregatorTest.java
+++ b/sling-org-apache-sling-graphql-schema/src/test/java/org/apache/sling/graphql/schema/aggregator/impl/DefaultSchemaAggregatorTest.java
@@ -112,13 +112,13 @@ public class DefaultSchemaAggregatorTest {
assertTrue(reg.getType("SlingResourceConnection").isPresent());
assertTrue(reg.getType("PageInfo").isPresent());
- final Optional<TypeDefinition> query = reg.getType("QUERY");
- assertTrue("Expecting QUERY", query.isPresent());
+ final Optional<TypeDefinition> query = reg.getType("Query");
+ assertTrue("Expecting Query", query.isPresent());
assertTrue(query.get().getChildren().toString().contains("oneSchemaResource"));
assertTrue(query.get().getChildren().toString().contains("oneSchemaQuery"));
- final Optional<TypeDefinition> mutation = reg.getType("MUTATION");
- assertTrue("Expecting MUTATION", mutation.isPresent());
+ final Optional<TypeDefinition> mutation = reg.getType("Mutation");
+ assertTrue("Expecting Mutation", mutation.isPresent());
assertTrue(mutation.get().getChildren().toString().contains("someMutation"));
}
diff --git a/sling-org-apache-sling-graphql-schema/src/test/resources/several-providers-output.txt b/sling-org-apache-sling-graphql-schema/src/test/resources/several-providers-output.txt
index 2b2c828..b3fa1f7 100644
--- a/sling-org-apache-sling-graphql-schema/src/test/resources/several-providers-output.txt
+++ b/sling-org-apache-sling-graphql-schema/src/test/resources/several-providers-output.txt
@@ -1,6 +1,6 @@
# Schema aggregated by DefaultSchemaAggregator
-type QUERY {
+type Query {
# DefaultSchemaAggregator.source=B1a
Fake query for B1a.txt