drawio-export/pkg/drawio/export_test.go

64 lines
1.4 KiB
Go
Raw Normal View History

package drawio_test
import (
"strings"
"testing"
"git.mousesoft.ru/ms/drawio-exporter/pkg/drawio"
"github.com/stretchr/testify/assert"
)
// Тестовые данные
var testData = []struct {
name string // Наименование теста
source string // Данные файла с диаграммами
diagrams []string // Срез имён диаграмм
}{
{
name: "positive case",
source: `<mxfile host="test">
<diagram name="1" id="01">
<mxGraphModel page="1">
</mxGraphModel>
</diagram>
<diagram name="2" id="02">
<mxGraphModel page="1">
</mxGraphModel>
</diagram>
<diagram name="3" id="03">
<mxGraphModel page="1">
</mxGraphModel>
</diagram>
</mxfile>`,
diagrams: []string{"1", "2", "3"},
},
{
name: "invalid source",
source: `<nxfile host="test">
<diagram name="1" id="01">
<mxGraphModel page="1">
</mxGraphModel>
</diagram>
<diagram name="2" id="02">
<mxGraphModel page="1">
</mxGraphModel>
</diagram>
<diagram name="3" id="03">
<mxGraphModel page="1">
</mxGraphModel>
</diagram>
</nxfile>`,
diagrams: []string{},
},
}
func TestDiagrams(t *testing.T) {
for _, test := range testData {
t.Run(test.name, func(t *testing.T) {
diagrams, err := drawio.Diagrams(strings.NewReader(test.source))
assert.NoError(t, err)
assert.ElementsMatch(t, test.diagrams, diagrams)
})
}
}