// 3rd_party_lib:commonmark4cj/build/release/commonmark4cj
// 3rd_party_lib_ohos:commonmark4cj/build/aarch64-linux-ohos/commonmark4cj
// dependence: z_test.cj
import commonmark4cj.commonmark.*
class visitorImpl <: AbstractVisitor {
public func visit(code: Code): Unit {
code.insertAfter(Text("new text"))
code.unlink()
}
}
class visitorCodeImpl <: AbstractVisitor {
public func visit(text: Text): Unit {
text.insertAfter(Code("new text"))
text.unlink()
}
}
class visitorEmphasisImpl <: AbstractVisitor {
public func visit(text: Text): Unit {
text.appendChild(Code("new text"))
}
}
@Test
public class VisitorTest {
@TestCase
public func visitorDocument(): Unit {
let visitor: Visitor = visitorImpl()
var document: Document = Document()
var paragraph = Paragraph()
var text = Text("text")
var code = Code("code")
document.appendChild(paragraph)
document.appendChild(text)
document.appendChild(code)
document.accept(visitor)
assertEquals("Text{literal=new text}", document.getLastChild()().toString())
}
@TestCase
public func visitorBlockQuote(): Unit {
let visitor: Visitor = visitorImpl()
var blockQuote: BlockQuote = BlockQuote()
var text = Text("text")
var code = Code("code")
blockQuote.appendChild(text)
blockQuote.appendChild(code)
blockQuote.accept(visitor)
assertEquals("Text{literal=new text}", blockQuote.getLastChild()().toString())
assertEquals("Text{literal=text}", blockQuote.getFirstChild()().toString())
}
@TestCase
public func visitorBulletListQuote(): Unit {
let visitor: Visitor = visitorImpl()
var bulletList: BulletList = BulletList(r'*')
var text = Text("text")
var code = Code("code")
bulletList.appendChild(text)
bulletList.appendChild(code)
bulletList.accept(visitor)
assertEquals("Text{literal=new text}", bulletList.getLastChild()().toString())
assertEquals("Text{literal=text}", bulletList.getFirstChild()().toString())
}
@TestCase
public func visitorCodeQuote(): Unit {
let visitor: Visitor = visitorCodeImpl()
var bulletList: Code = Code("p")
var text = Text("text")
var code = Code("code")
bulletList.appendChild(text)
bulletList.appendChild(code)
bulletList.accept(visitor)
assertEquals("Code{}", bulletList.getLastChild()().toString())
assertEquals("Code{}", bulletList.getFirstChild()().toString())
}
@TestCase
public func visitorFencedCodeBlockQuote(): Unit {
let visitor: Visitor = visitorCodeImpl()
var node: FencedCodeBlock = FencedCodeBlock()
var text = Text("text")
var code = Code("code")
var paragraph = Paragraph()
node.appendChild(text)
node.appendChild(code)
node.appendChild(paragraph)
node.accept(visitor)
assertEquals("Code{}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getNext()().toString())
assertEquals("Paragraph{}", node.getFirstChild()().getNext()().getNext()().toString())
}
@TestCase
public func visitorHtmlBlockQuote(): Unit {
let visitor: Visitor = visitorCodeImpl()
var node: HtmlBlock = HtmlBlock()
var text = Text("text")
var code = Code("code")
var paragraph = Paragraph()
node.appendChild(text)
node.appendChild(code)
node.appendChild(paragraph)
node.accept(visitor)
assertEquals("Code{}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getNext()().toString())
assertEquals("Paragraph{}", node.getFirstChild()().getNext()().getNext()().toString())
}
@TestCase
public func visitorIndentedCodeBlockQuote(): Unit {
let visitor: Visitor = visitorCodeImpl()
var node: IndentedCodeBlock = IndentedCodeBlock()
var text = Text("text")
var code = Code("code")
var paragraph = Paragraph()
node.appendChild(text)
node.appendChild(code)
node.appendChild(paragraph)
node.accept(visitor)
assertEquals("Code{}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getNext()().toString())
assertEquals("Paragraph{}", node.getFirstChild()().getNext()().getNext()().toString())
}
@TestCase
public func visitorOrderedListQuote(): Unit {
let visitor: Visitor = visitorCodeImpl()
var node: OrderedList = OrderedList(1, r',')
var text = Text("text")
var code = Code("code")
var paragraph = Paragraph()
node.appendChild(text)
node.appendChild(code)
node.appendChild(paragraph)
node.accept(visitor)
assertEquals("Code{}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getNext()().toString())
assertEquals("Paragraph{}", node.getFirstChild()().getNext()().getNext()().toString())
}
@TestCase
public func visitorListItemQuote(): Unit {
let visitor: Visitor = visitorCodeImpl()
var node: ListItem = ListItem()
var text = Text("text")
var code = Code("code")
var paragraph = Paragraph()
node.appendChild(text)
node.appendChild(code)
node.appendChild(paragraph)
node.accept(visitor)
assertEquals("Code{}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getNext()().toString())
assertEquals("Paragraph{}", node.getFirstChild()().getNext()().getNext()().toString())
}
@TestCase
public func visitorThematicBreakQuote(): Unit {
let visitor: Visitor = visitorCodeImpl()
var node: ThematicBreak = ThematicBreak()
var text = Text("text")
var code = Code("code")
var paragraph = Paragraph()
node.appendChild(text)
node.appendChild(code)
node.appendChild(paragraph)
node.accept(visitor)
assertEquals("Code{}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getNext()().toString())
assertEquals("Paragraph{}", node.getFirstChild()().getNext()().getNext()().toString())
}
@TestCase
public func visitorHeadingQuote(): Unit {
let visitor: Visitor = visitorCodeImpl()
var node: Heading = Heading()
var text = Text("text")
var code = Code("code")
var paragraph = Paragraph()
node.appendChild(text)
node.appendChild(code)
node.appendChild(paragraph)
node.accept(visitor)
assertEquals("Code{}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getNext()().toString())
assertEquals("Paragraph{}", node.getFirstChild()().getNext()().getNext()().toString())
}
@TestCase
public func visitorEmphasisQuote(): Unit {
let visitor: Visitor = visitorEmphasisImpl()
var node: Emphasis = Emphasis("*")
var child: Text = Text("hello")
node.appendChild(child)
node.accept(visitor)
assertEquals("Text{literal=hello}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getFirstChild()().toString())
}
@TestCase
public func visitorHardLineBreakQuote(): Unit {
let visitor: Visitor = visitorEmphasisImpl()
var node: HardLineBreak = HardLineBreak()
var child: Text = Text("hello")
node.appendChild(child)
node.accept(visitor)
assertEquals("Text{literal=hello}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getFirstChild()().toString())
}
@TestCase
public func visitorHtmlInlineQuote(): Unit {
let visitor: Visitor = visitorEmphasisImpl()
var node: HtmlInline = HtmlInline("p1")
var child: Text = Text("hello")
node.appendChild(child)
node.accept(visitor)
assertEquals("Text{literal=hello}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getFirstChild()().toString())
}
@TestCase
public func visitorImageQuote(): Unit {
let visitor: Visitor = visitorEmphasisImpl()
var node: Image = Image("path", "title")
var child: Text = Text("hello")
node.appendChild(child)
node.accept(visitor)
assertEquals("Text{literal=hello}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getFirstChild()().toString())
}
@TestCase
public func visitorLink(): Unit {
let visitor: Visitor = visitorEmphasisImpl()
var node: Link = Link("path", "title")
var child: Text = Text("hello")
node.appendChild(child)
node.accept(visitor)
assertEquals("Text{literal=hello}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getFirstChild()().toString())
}
@TestCase
public func visitorSoftLineBreak(): Unit {
let visitor: Visitor = visitorEmphasisImpl()
var node: SoftLineBreak = SoftLineBreak()
var child: Text = Text("hello")
node.appendChild(child)
node.accept(visitor)
assertEquals("Text{literal=hello}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getFirstChild()().toString())
}
@TestCase
public func visitorStrongEmphasis(): Unit {
let visitor: Visitor = visitorEmphasisImpl()
var node: StrongEmphasis = StrongEmphasis("***")
var child: Text = Text("hello")
node.appendChild(child)
node.accept(visitor)
assertEquals("Text{literal=hello}", node.getFirstChild()().toString())
assertEquals("Code{}", node.getFirstChild()().getFirstChild()().toString())
}
}