Newer
Older
sisyphe-go / xml_test.go
@Nacim Nacim on 10 Feb 2022 1 KB add more validation for xml
package main

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

var xmlData = Message{
	corpusName: "test",
	name:       "test-default.xml",
	startAt:    "Thu Mar  4 13:08:00 2010 CET",
	extension:  ".xml",
	path:       "./example/xml/test-default.xml",
	mimetype:   "text/xml",
	size:       7123,
}

func TestValidXML(t *testing.T) {
	result := getXMlData(&xmlData)
	assert.Equal(t, result.isWellFormed, true, "XML is well formed")
	assert.Equal(t, result.wellFormedErrors, "", "Return empty if xml is not well formed")
	assert.Equal(t, result.doctype.sysid, "mydoctype.dtd", "Doctype is valid")
}

func TestInvalidXML(t *testing.T) {
	xmlData.path = "./example/xml/test-not-wellformed.xml"
	result := getXMlData(&xmlData)
	assert.Equal(t, result.isWellFormed, false, "XML is not well formed")
	assert.Equal(t, result.wellFormedErrors, "XML syntax error on line 6: element <my> closed by </to>", "Return error if xml is not well formed")
	assert.Equal(t, result.doctype.sysid, "", "Not get doctype if xml is invalid")
}