Add test for bosh release sub-properties

This commit is contained in:
Kris De Volder
2017-07-10 14:55:32 -07:00
parent 4835a13891
commit bdea619fe5
2 changed files with 44 additions and 5 deletions

View File

@@ -50,18 +50,18 @@ public class BoshDeploymentManifestSchema implements YamlSchema {
TYPE_UTIL = f.TYPE_UTIL;
TOPLEVEL_TYPE = f.ybean("BoshDeploymentManifest");
addProp(TOPLEVEL_TYPE, "name", t_ne_string);
addProp(TOPLEVEL_TYPE, "director_uuid", t_ne_string);
addProp(TOPLEVEL_TYPE, "name", t_ne_string).isRequired(true);
addProp(TOPLEVEL_TYPE, "director_uuid", t_ne_string).isRequired(true);
YAtomicType t_version = f.yatomic("Version");
t_version.addHints("latest");
t_version.parseWith(ValueParsers.NE_STRING);
YBeanType t_release = f.ybean("Release");
addProp(t_release, "name", t_ne_string);
addProp(t_release, "version", t_version);
addProp(t_release, "name", t_ne_string).isRequired(true);
addProp(t_release, "version", t_version).isRequired(true);
addProp(TOPLEVEL_TYPE, "releases", f.yseq(t_release));
addProp(TOPLEVEL_TYPE, "releases", f.yseq(t_release)).isRequired(true);
}
@Override

View File

@@ -14,6 +14,7 @@ import org.junit.Before;
import org.junit.Test;
import org.springframework.ide.vscode.bosh.BoshLanguageServer;
import org.springframework.ide.vscode.commons.util.text.LanguageId;
import org.springframework.ide.vscode.commons.yaml.reconcile.YamlSchemaProblems;
import org.springframework.ide.vscode.languageserver.testharness.Editor;
import org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness;
@@ -70,4 +71,42 @@ public class BoshEditorTest {
);
}
@Test public void releasesBlockCompletions() throws Exception {
Editor editor = harness.newEditor(
"releases:\n" +
"- <*>"
);
editor.ignoreProblem(YamlSchemaProblems.MISSING_PROPERTY);
editor.assertCompletions(
"releases:\n" +
"- name: <*>"
, //========
"releases:\n" +
"- version: <*>"
);
}
@Test public void releasesBlockReconcileAndHovers() throws Exception {
Editor editor = harness.newEditor(
"releases:\n" +
"- name: some-release\n" +
" version: some-version\n" +
" woot: dunno\n"
);
editor.ignoreProblem(YamlSchemaProblems.MISSING_PROPERTY);
editor.assertProblems(
"woot|Unknown property"
);
editor.assertHoverContains("name", "Name of a release used in the deployment");
editor.assertHoverContains("version", "The version of the release to use");
editor = harness.newEditor(
"releases:\n" +
"- name: some-release\n" +
" version: <*>\n"
);
editor.assertCompletionLabels("latest");
}
}