Skip to content
This repository has been archived by the owner on Feb 12, 2022. It is now read-only.

Commit

Permalink
Fixes #478 NPE when using scheme under securityScheme. (#479)
Browse files Browse the repository at this point in the history
  • Loading branch information
pacafuentes authored Mar 28, 2018
1 parent 786578e commit 86aec94
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/main/java/org/raml/parser/rule/SchemaRule.java
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@ else if (node.getValue().matches("\\w.*"))
private ScalarNode getGlobalSchemaNode(String key)
{
GlobalSchemasRule schemasRule = (GlobalSchemasRule) getRootTupleRule().getRuleByFieldName("schemas");
if (schemasRule == null) return null;
return schemasRule.getSchema(key);
}

Expand Down
52 changes: 52 additions & 0 deletions src/test/java/org/raml/parser/builder/SecuritySchemaTestCase.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*
* Copyright 2016 (c) MuleSoft, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific
* language governing permissions and limitations under the License.
*/
package org.raml.parser.builder;

import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.raml.model.Raml;
import org.raml.parser.rule.ValidationResult;

import java.util.List;

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

public class SecuritySchemaTestCase extends AbstractRamlTestCase{

private static final String ramlSource = "org/raml/security-scheme-schema.yaml";
private static Raml raml;

@BeforeClass
public static void init()
{
raml = parseRaml(ramlSource);
}

@Test
public void build()
{
assertThat(raml.getSecuritySchemes().size(), is(1));
}

@Test
public void validate()
{
List<ValidationResult> errors = validateRaml(ramlSource);
Assert.assertTrue("Errors must be empty", errors.isEmpty());
}
}
22 changes: 22 additions & 0 deletions src/test/resources/org/raml/security-scheme-schema.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#%RAML 0.8
title: test

securitySchemes:
- x-token:
describedBy:
responses:
401:
body:
application/json:
schema: |
{
"type":"object",
"$schema": "http://json-schema.org/draft-03/schema",
"id":"http://jsonschema.net",
"properties": {
"message": {
"required": true,
"type": "string"
}
}
}

0 comments on commit 86aec94

Please sign in to comment.