summaryrefslogtreecommitdiff
path: root/json/tests/test/com/jetbrains/jsonSchema/impl/JsonSchemaFileValuesIndexTest.java
diff options
context:
space:
mode:
authorAndrej Shadura <andrew.shadura@collabora.co.uk>2019-08-28 14:13:29 +0200
committerAndrej Shadura <andrew.shadura@collabora.co.uk>2019-08-29 17:48:13 +0200
commite19ef5983707e6a5c8d127f1ac8f02754cef82fd (patch)
tree9e3852cb9abc81ed6aa444465928d45fd7763dea /json/tests/test/com/jetbrains/jsonSchema/impl/JsonSchemaFileValuesIndexTest.java
New upstream version 0~183.5153.4+dfsg
Diffstat (limited to 'json/tests/test/com/jetbrains/jsonSchema/impl/JsonSchemaFileValuesIndexTest.java')
-rw-r--r--json/tests/test/com/jetbrains/jsonSchema/impl/JsonSchemaFileValuesIndexTest.java75
1 files changed, 75 insertions, 0 deletions
diff --git a/json/tests/test/com/jetbrains/jsonSchema/impl/JsonSchemaFileValuesIndexTest.java b/json/tests/test/com/jetbrains/jsonSchema/impl/JsonSchemaFileValuesIndexTest.java
new file mode 100644
index 00000000..fddaf672
--- /dev/null
+++ b/json/tests/test/com/jetbrains/jsonSchema/impl/JsonSchemaFileValuesIndexTest.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * 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 com.jetbrains.jsonSchema.impl;
+
+import com.intellij.json.JsonTestCase;
+import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.util.indexing.FileContentImpl;
+
+import java.util.Map;
+
+import static com.jetbrains.jsonSchema.impl.JsonCachedValues.*;
+
+public class JsonSchemaFileValuesIndexTest extends JsonTestCase {
+
+ public void testEmpty() {
+ final VirtualFile file = myFixture.configureByFile("indexing/empty.json").getVirtualFile();
+ Map<String, String> map = new JsonSchemaFileValuesIndex().getIndexer().map(FileContentImpl.createByFile(file));
+ assertAllCacheNulls(map);
+ }
+
+ public void testSimple() {
+ final VirtualFile file = myFixture.configureByFile("indexing/empty.json").getVirtualFile();
+ Map<String, String> map = new JsonSchemaFileValuesIndex().getIndexer().map(FileContentImpl.createByFile(file));
+ assertAllCacheNulls(map);
+ }
+
+ public void testValid() {
+ final VirtualFile file = myFixture.configureByFile("indexing/valid.json").getVirtualFile();
+ Map<String, String> map = new JsonSchemaFileValuesIndex().getIndexer().map(FileContentImpl.createByFile(file));
+ assertEquals("the-id", map.get(ID_CACHE_KEY));
+ assertCacheNull(map.get(URL_CACHE_KEY));
+ }
+
+ public void testValid2() {
+ final VirtualFile file = myFixture.configureByFile("indexing/valid2.json5").getVirtualFile();
+ Map<String, String> map = new JsonSchemaFileValuesIndex().getIndexer().map(FileContentImpl.createByFile(file));
+ assertEquals("the-schema", map.get(URL_CACHE_KEY));
+ assertCacheNull(map.get(ID_CACHE_KEY));
+ }
+
+ public void testInvalid() {
+ final VirtualFile file = myFixture.configureByFile("indexing/invalid.json").getVirtualFile();
+ Map<String, String> map = new JsonSchemaFileValuesIndex().getIndexer().map(FileContentImpl.createByFile(file));
+ assertAllCacheNulls(map);
+ }
+
+ public void testStopsOnAllFound() {
+ final VirtualFile file = myFixture.configureByFile("indexing/duplicates.json5").getVirtualFile();
+ Map<String, String> map = new JsonSchemaFileValuesIndex().getIndexer().map(FileContentImpl.createByFile(file));
+ assertEquals("the-schema", map.get(URL_CACHE_KEY));
+ assertEquals("the-id", map.get(ID_CACHE_KEY));
+ assertEquals("the-obsolete-id", map.get(OBSOLETE_ID_CACHE_KEY));
+ }
+
+ private static void assertCacheNull(String value) {
+ assertEquals(JsonSchemaFileValuesIndex.NULL, value);
+ }
+
+ private static void assertAllCacheNulls(Map<String, String> map) {
+ map.values().forEach(JsonSchemaFileValuesIndexTest::assertCacheNull);
+ }
+}