mirror of
https://github.com/latex-lsp/texlab.git
synced 2025-12-23 09:19:21 +00:00
Add more unit tests
This commit is contained in:
parent
7cc9858a10
commit
7d7c44cd86
3 changed files with 97 additions and 4 deletions
46
src/test/kotlin/texlab/rename/BibtexEntryRenamerTests.kt
Normal file
46
src/test/kotlin/texlab/rename/BibtexEntryRenamerTests.kt
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
package texlab.rename
|
||||
|
||||
import org.eclipse.lsp4j.Position
|
||||
import org.eclipse.lsp4j.Range
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Assertions.assertNull
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.junit.jupiter.params.ParameterizedTest
|
||||
import org.junit.jupiter.params.provider.CsvSource
|
||||
import texlab.WorkspaceBuilder
|
||||
import java.io.File
|
||||
|
||||
class BibtexEntryRenamerTests {
|
||||
@ParameterizedTest
|
||||
@CsvSource("foo.bib, 0, 9", "bar.tex, 1, 6")
|
||||
fun `it should be able to rename an entry`(document: String, line: Int, character: Int) {
|
||||
val edit = WorkspaceBuilder()
|
||||
.document("foo.bib", "@article{foo, bar = baz}")
|
||||
.document("bar.tex", "\\addbibresource{foo.bib}\n\\cite{foo}")
|
||||
.rename(document, line, character, "qux")
|
||||
.let { BibtexEntryRenamer.rename(it) }!!
|
||||
|
||||
assertEquals(2, edit.changes.size)
|
||||
|
||||
val document1 = File("foo.bib").toURI().toString()
|
||||
val change1 = edit.changes.getValue(document1)
|
||||
assertEquals(1, change1.size)
|
||||
assertEquals(Range(Position(0, 9), Position(0, 12)), change1[0].range)
|
||||
assertEquals("qux", change1[0].newText)
|
||||
|
||||
val document2 = File("bar.tex").toURI().toString()
|
||||
val change2 = edit.changes.getValue(document2)
|
||||
assertEquals(1, change2.size)
|
||||
assertEquals(Range(Position(1, 6), Position(1, 9)), change2[0].range)
|
||||
assertEquals("qux", change2[0].newText)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `it should not rename unrelated structures`() {
|
||||
WorkspaceBuilder()
|
||||
.document("foo.bib", "@article{foo, bar = baz}")
|
||||
.rename("foo.bib", 0, 14, "qux")
|
||||
.let { BibtexEntryRenamer.rename(it) }
|
||||
.also { assertNull(it) }
|
||||
}
|
||||
}
|
||||
|
|
@ -18,15 +18,15 @@ class LatexCommandRenamerTests {
|
|||
.let { LatexCommandRenamer.rename(it) }!!
|
||||
|
||||
assertEquals(2, edit.changes.size)
|
||||
val document1 = File("foo.tex").toURI().toString()
|
||||
val document2 = File("bar.tex").toURI().toString()
|
||||
val change1 = edit.changes.getValue(document1)
|
||||
val change2 = edit.changes.getValue(document2)
|
||||
|
||||
val document1 = File("foo.tex").toURI().toString()
|
||||
val change1 = edit.changes.getValue(document1)
|
||||
assertEquals(1, change1.size)
|
||||
assertEquals(Range(Position(1, 0), Position(1, 4)), change1[0].range)
|
||||
assertEquals("\\qux", change1[0].newText)
|
||||
|
||||
val document2 = File("bar.tex").toURI().toString()
|
||||
val change2 = edit.changes.getValue(document2)
|
||||
assertEquals(1, change2.size)
|
||||
assertEquals(Range(Position(0, 0), Position(0, 4)), change2[0].range)
|
||||
assertEquals("\\qux", change2[0].newText)
|
||||
|
|
|
|||
47
src/test/kotlin/texlab/rename/LatexLabelRenamerTests.kt
Normal file
47
src/test/kotlin/texlab/rename/LatexLabelRenamerTests.kt
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
package texlab.rename
|
||||
|
||||
import org.eclipse.lsp4j.Position
|
||||
import org.eclipse.lsp4j.Range
|
||||
import org.junit.jupiter.api.Assertions
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Assertions.assertNull
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.junit.jupiter.params.ParameterizedTest
|
||||
import org.junit.jupiter.params.provider.CsvSource
|
||||
import texlab.WorkspaceBuilder
|
||||
import java.io.File
|
||||
|
||||
class LatexLabelRenamerTests {
|
||||
@ParameterizedTest
|
||||
@CsvSource("foo.tex, 0, 7", "bar.tex, 0, 5")
|
||||
fun `it should be able to rename a label`(document: String, line: Int, character: Int) {
|
||||
val edit = WorkspaceBuilder()
|
||||
.document("foo.tex", "\\label{foo}\n\\include{bar}")
|
||||
.document("bar.tex", "\\ref{foo}")
|
||||
.rename(document, line, character, "bar")
|
||||
.let { LatexLabelRenamer.rename(it) }!!
|
||||
|
||||
Assertions.assertEquals(2, edit.changes.size)
|
||||
|
||||
val document1 = File("foo.tex").toURI().toString()
|
||||
val change1 = edit.changes.getValue(document1)
|
||||
assertEquals(1, change1.size)
|
||||
assertEquals(Range(Position(0, 7), Position(0, 10)), change1[0].range)
|
||||
assertEquals("bar", change1[0].newText)
|
||||
|
||||
val document2 = File("bar.tex").toURI().toString()
|
||||
val change2 = edit.changes.getValue(document2)
|
||||
assertEquals(1, change2.size)
|
||||
assertEquals(Range(Position(0, 5), Position(0, 8)), change2[0].range)
|
||||
assertEquals("bar", change2[0].newText)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `it should not rename unrelated structures`() {
|
||||
WorkspaceBuilder()
|
||||
.document("foo.tex", "\\foo{bar}")
|
||||
.rename("foo.tex", 0, 5, "baz")
|
||||
.let { BibtexEntryRenamer.rename(it) }
|
||||
.also { assertNull(it) }
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue