You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by lk...@apache.org on 2021/10/16 18:13:58 UTC
[netbeans] 06/06: Added unittest for YamlSection.
This is an automated email from the ASF dual-hosted git repository.
lkishalmi pushed a commit to branch use-snakeyaml-parser-improved
in repository https://gitbox.apache.org/repos/asf/netbeans.git
commit 3b2b6c82ebec310198ea4fa5f4f1defcf5732099
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Sat Oct 16 11:13:06 2021 -0700
Added unittest for YamlSection.
---
.../modules/languages/yaml/YamlSection.java | 57 ++++-
.../modules/languages/yaml/YamlSectionTest.java | 259 +++++++++++++++++++++
2 files changed, 308 insertions(+), 8 deletions(-)
diff --git a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlSection.java b/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlSection.java
index 8ad1ed8..131e7af 100644
--- a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlSection.java
+++ b/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlSection.java
@@ -21,6 +21,7 @@ package org.netbeans.modules.languages.yaml;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
+import java.util.Objects;
import java.util.Optional;
import org.netbeans.modules.csl.api.Severity;
import org.netbeans.modules.csl.api.StructureItem;
@@ -78,10 +79,10 @@ public class YamlSection {
while ((index > 0) && Character.isWhitespace(source.charAt(index))) {
index--;
}
- while ((index > 0) && !Character.isWhitespace(source.charAt(index))) {
+ while ((index > -1) && !Character.isWhitespace(source.charAt(index))) {
index--;
}
- return before(index);
+ return before(index + 1);
}
public YamlSection trimHead() {
@@ -228,16 +229,26 @@ public class YamlSection {
}
}
+ List<YamlSection> split(int a) {
+ List<YamlSection> ret = new LinkedList<>();
+ YamlSection before = a < source.length() ? before(a) : trimTail();
+ YamlSection after = a > 0 ? after(a) : trimHead();
+ if (!after.isEmpty()) {
+ ret.add(after);
+ }
+ if (!before.isEmpty()) {
+ ret.add(before);
+ }
+ return ret;
+ }
+
List<YamlSection> split(int a, int b) {
+ if (a == b){
+ return split(a);
+ }
List<YamlSection> ret = new LinkedList<>();
YamlSection before = before(a);
YamlSection after = after(b);
- if (before.isEmpty()) {
- after = after.trimHead();
- }
- if (after.isEmpty()) {
- before = before.trimTail();
- }
if (!after.isEmpty()) {
ret.add(after);
}
@@ -252,6 +263,36 @@ public class YamlSection {
}
@Override
+ public int hashCode() {
+ int hash = 7;
+ hash = 79 * hash + this.offset;
+ hash = 79 * hash + Objects.hashCode(this.source);
+ return hash;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ final YamlSection other = (YamlSection) obj;
+ if (this.offset != other.offset) {
+ return false;
+ }
+ if (!Objects.equals(this.source, other.source)) {
+ return false;
+ }
+ return true;
+ }
+
+
+ @Override
public String toString() {
return "" + offset + ":" + source;
}
diff --git a/ide/languages.yaml/test/unit/src/org/netbeans/modules/languages/yaml/YamlSectionTest.java b/ide/languages.yaml/test/unit/src/org/netbeans/modules/languages/yaml/YamlSectionTest.java
new file mode 100644
index 0000000..3940b0e
--- /dev/null
+++ b/ide/languages.yaml/test/unit/src/org/netbeans/modules/languages/yaml/YamlSectionTest.java
@@ -0,0 +1,259 @@
+/*
+ * 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.netbeans.modules.languages.yaml;
+
+import java.util.Iterator;
+import java.util.List;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import static org.junit.Assert.*;
+import org.netbeans.modules.csl.api.StructureItem;
+import org.netbeans.modules.csl.spi.DefaultError;
+import org.netbeans.modules.parsing.api.Snapshot;
+import org.snakeyaml.engine.v2.exceptions.ParserException;
+import org.snakeyaml.engine.v2.exceptions.ScannerException;
+
+/**
+ *
+ * @author lkishalmi
+ */
+public class YamlSectionTest {
+
+ public YamlSectionTest() {
+ }
+
+ @BeforeClass
+ public static void setUpClass() {
+ }
+
+ @AfterClass
+ public static void tearDownClass() {
+ }
+
+ @Before
+ public void setUp() {
+ }
+
+ @After
+ public void tearDown() {
+ }
+
+ /**
+ * Test of before method, of class YamlSection.
+ */
+ @Test
+ public void testBefore() {
+ YamlSection instance = new YamlSection("name: John Smith");
+ YamlSection expResult = new YamlSection("name");
+ YamlSection result = instance.before(4);
+ assertEquals(expResult, result);
+ }
+
+ @Test
+ public void testBeforeEmpty1() {
+ YamlSection instance = new YamlSection("name: John Smith");
+ YamlSection result = instance.before(0);
+ assertTrue(result.isEmpty());
+ }
+
+ @Test
+ public void testBeforeEmpty2() {
+ YamlSection instance = new YamlSection("");
+ YamlSection result = instance.before(0);
+ assertTrue(instance.isEmpty());
+ assertTrue(result.isEmpty());
+ }
+
+ /**
+ * Test of after method, of class YamlSection.
+ */
+ @Test
+ public void testAfter() {
+ YamlSection instance = new YamlSection("name: John Smith");
+ YamlSection expResult = new YamlSection(4, ": John Smith");
+ YamlSection result = instance.after(4);
+ assertEquals(expResult, result);
+ }
+
+ @Test
+ public void testAfterEmpty1() {
+ YamlSection instance = new YamlSection("name: John Smith");
+ YamlSection result = instance.after(16);
+ assertEquals(16, result.offset);
+ assertTrue(result.isEmpty());
+ }
+
+ @Test
+ public void testAfterEmpty2() {
+ YamlSection instance = new YamlSection("");
+ YamlSection result = instance.after(0);
+ assertTrue(instance.isEmpty());
+ assertTrue(result.isEmpty());
+ }
+
+ @Test
+ public void testTrimTail() {
+ YamlSection instance = new YamlSection("name: { \t\n");
+ YamlSection expResult = new YamlSection("name: ");
+ YamlSection result = instance.trimTail();
+ assertEquals(expResult, result);
+ }
+
+ @Test
+ public void testTrimTailEmpty1() {
+ YamlSection instance = new YamlSection("name: ");
+ YamlSection expResult = new YamlSection("");
+ YamlSection result = instance.trimTail();
+ assertEquals(expResult, result);
+ }
+
+ @Test
+ public void testTrimTailEmpty2() {
+ YamlSection instance = new YamlSection(42, "");
+ YamlSection expResult = new YamlSection(42, "");
+ YamlSection result = instance.trimTail();
+ assertEquals(expResult, result);
+ }
+
+ @Test
+ public void testTrimHead() {
+ YamlSection instance = new YamlSection("name: { \t\n");
+ YamlSection expResult = new YamlSection(5, " { \t\n");
+ YamlSection result = instance.trimHead();
+ assertEquals(expResult, result);
+ }
+
+ @Test
+ public void testTrimHeadEmpty3() {
+ YamlSection instance = new YamlSection("name:");
+ YamlSection expResult = new YamlSection(5, "");
+ YamlSection result = instance.trimHead();
+ assertEquals(expResult, result);
+ }
+
+ @Test
+ public void testTrimHeadEmpty1() {
+ YamlSection instance = new YamlSection(" {");
+ YamlSection expResult = new YamlSection(2, "");
+ YamlSection result = instance.trimHead();
+ assertEquals(expResult, result);
+ }
+
+ @Test
+ public void testTrimHeadEmpty2() {
+ YamlSection instance = new YamlSection(42, "");
+ YamlSection expResult = new YamlSection(42, "");
+ YamlSection result = instance.trimHead();
+ assertEquals(expResult, result);
+ }
+
+ /**
+ * Test of isEmpty method, of class YamlSection.
+ */
+ @Test
+ public void testIsEmpty() {
+ YamlSection instance1 = new YamlSection(42, "");
+ YamlSection instance2 = new YamlSection(42, "name:");
+ assertTrue(instance1.isEmpty());
+ assertFalse(instance2.isEmpty());
+ }
+
+ /**
+ * Test of length method, of class YamlSection.
+ */
+ @Test
+ public void testLength() {
+ YamlSection instance = new YamlSection(42, "name:");
+ assertEquals(5, instance.length());
+ }
+
+ @Test
+ public void testSplit1() {
+ YamlSection instance = new YamlSection("name: John Smith");
+ YamlSection section1 = new YamlSection("name: ");
+ YamlSection section2 = new YamlSection(11, "Smith");
+ Iterator<YamlSection> result = instance.split(6, 11).iterator();
+ assertEquals(section2, result.next());
+ assertEquals(section1, result.next());
+ assertFalse(result.hasNext());
+ }
+
+ @Test
+ public void testSplit2() {
+ YamlSection instance = new YamlSection("name: John Smith");
+ YamlSection section1 = new YamlSection("name: ");
+ YamlSection section2 = new YamlSection(6, "John Smith");
+ Iterator<YamlSection> result = instance.split(6).iterator();
+ assertEquals(section2, result.next());
+ assertEquals(section1, result.next());
+ assertFalse(result.hasNext());
+ }
+
+ @Test
+ public void testSplitEmpty1() {
+ YamlSection instance = new YamlSection("name: John Smith");
+ Iterator<YamlSection> result = instance.split(0, 11).iterator();
+ YamlSection section2 = new YamlSection(11, "Smith");
+ assertEquals(section2, result.next());
+ assertFalse(result.hasNext());
+ }
+
+ @Test
+ public void testSplitEmpty2() {
+ YamlSection instance = new YamlSection("name: John Smith");
+ YamlSection section1 = new YamlSection("name: ");
+ Iterator<YamlSection> result = instance.split(6, 16).iterator();
+ assertEquals(section1, result.next());
+ assertFalse(result.hasNext());
+ }
+
+ @Test
+ public void testSplitEmpty3() {
+ YamlSection instance = new YamlSection("name: John Smith");
+ Iterator<YamlSection> result = instance.split(0, 16).iterator();
+ assertFalse(result.hasNext());
+ }
+
+ @Test
+ public void testSplitEmpty4() {
+ YamlSection instance = new YamlSection("name: { ");
+ YamlSection section1 = new YamlSection("name: ");
+ Iterator<YamlSection> result = instance.split(8).iterator();
+ assertEquals(section1, result.next());
+ assertFalse(result.hasNext());
+ }
+
+ @Test
+ public void testSplitEmpty5() {
+ YamlSection instance = new YamlSection(" \nname: {");
+ YamlSection section1 = new YamlSection(7, " {");
+ Iterator<YamlSection> result = instance.split(0).iterator();
+ assertEquals(section1, result.next());
+ assertFalse(result.hasNext());
+ }
+
+ @Test
+ public void testSplitEmpty6() {
+ YamlSection instance = new YamlSection("");
+ assertTrue(instance.split(0).isEmpty());
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists