diff --git a/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/impl/RMYamlUnitTest.java b/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/impl/RMYamlUnitTest.java
new file mode 100644
index 0000000000..c06741e97b
--- /dev/null
+++ b/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/impl/RMYamlUnitTest.java
@@ -0,0 +1,138 @@
+/*
+ * #%L
+ * Alfresco Records Management Module
+ * %%
+ * Copyright (C) 2005 - 2017 Alfresco Software Limited
+ * %%
+ * This file is part of the Alfresco software.
+ * -
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
+ * provided under the following open source license terms:
+ * -
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * -
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ * -
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ * #L%
+ */
+
+package org.alfresco.rm.rest.api.impl;
+
+import static junit.framework.TestCase.assertFalse;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.regex.Pattern;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
+import com.github.fge.jackson.JsonLoader;
+import com.github.fge.jsonschema.core.exceptions.ProcessingException;
+import com.github.fge.jsonschema.core.report.ProcessingReport;
+import com.github.fge.jsonschema.main.JsonSchema;
+import com.github.fge.jsonschema.main.JsonSchemaFactory;
+
+import io.swagger.models.Swagger;
+import io.swagger.parser.SwaggerParser;
+import org.alfresco.module.org_alfresco_module_rm.test.util.BaseUnitTest;
+import org.junit.Test;
+import org.reflections.Reflections;
+import org.reflections.scanners.ResourcesScanner;
+
+/**
+ * Unit Test class for RM Yaml file validation.
+ *
+ * @author Sara Aspery
+ * @since 2.6
+ *
+ */
+public class RMYamlUnitTest extends BaseUnitTest
+{
+ private static String SWAGGER_2_SCHEMA = "C:\\Users\\saspery\\Documents\\iWeek\\schema.json";
+ private static String OPEN_API_SPECIFICATION = "2.0";
+
+ @Test
+ public void validateYamlFile() throws Exception
+ {
+ final JsonSchema swaggerSchema = getSwaggerSchema(SWAGGER_2_SCHEMA);
+
+ final Set yamlFileNames = getYamlFileNames();
+ assertFalse(yamlFileNames.isEmpty());
+
+ for (String yamlFilePath : yamlFileNames)
+ {
+ // check the yaml file is valid against Swagger JSON schema
+ assertTrue(validateYamlFile(yamlFilePath, swaggerSchema));
+
+ // check we can read the swagger object for the swagger version
+ Swagger swagger = new SwaggerParser().read(yamlFilePath);
+ assertEquals(swagger.getSwagger(), OPEN_API_SPECIFICATION);
+ }
+ }
+
+ private JsonSchema getSwaggerSchema(final String filePath) throws IOException, ProcessingException
+ {
+ final String swaggerSchema = new String(Files.readAllBytes(Paths.get(filePath)));
+ final JsonNode schemaNode = JsonLoader.fromString(swaggerSchema);
+ final JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
+ return factory.getJsonSchema(schemaNode);
+ }
+
+ /**
+ * Helper method to return a list of Yaml filenames
+ */
+ private Set getYamlFileNames()
+ {
+ /*
+ String basePackageName = "org.alfresco.module.org_alfresco_module_rm";
+ Reflections reflections = new Reflections(basePackageName, new ResourcesScanner());
+ Set yamlFileNames = reflections.getResources(Pattern.compile("\\*"));
+
+ String s = this.getClass().getClassLoader().getResource("").getPath();
+ */
+ Set yamlFileNames = new HashSet<>();
+ yamlFileNames.add("C:\\dev5\\records-management\\rm-community\\rm-community-rest-api-explorer\\src\\main\\webapp\\definitions\\gs-core-api.yaml");
+ yamlFileNames.add("C:\\dev5\\records-management\\rm-enterprise\\rm-enterprise-rest-api-explorer\\src\\main\\webapp\\definitions\\ig-classification-api.yaml");
+ //yamlFileNames.add("C:\\dev5\\records-management\\rm-community\\rm-community-rest-api-explorer\\src\\main\\webapp\\definitions\\gs-core-api02.yaml");
+
+ return yamlFileNames;
+ }
+
+ private boolean validateYamlFile(final String swaggerFilePath, final JsonSchema jsonSchema) throws IOException, ProcessingException
+ {
+ // Get yaml string and convert to JSON string
+ final String yaml = new String(Files.readAllBytes(Paths.get(swaggerFilePath)));
+ final ObjectMapper yamlReader = new ObjectMapper(new YAMLFactory());
+ final Object obj = yamlReader.readValue(yaml, Object.class);
+ final ObjectMapper jsonWriter = new ObjectMapper();
+ final String yamlAsJson = jsonWriter.writeValueAsString(obj);
+
+ return validateJSON(yamlAsJson, jsonSchema);
+ }
+
+ /**
+ * Helper method to validate JSON string against JSON schema
+ */
+ private boolean validateJSON(final String jsonData, final JsonSchema schema) throws IOException, ProcessingException
+ {
+ final JsonNode dataNode = JsonLoader.fromString(jsonData);
+ final ProcessingReport report = schema.validate(dataNode);
+ return report.isSuccess();
+ }
+}
+