64 lines
1.4 KiB
Go
64 lines
1.4 KiB
Go
|
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)
|
|||
|
})
|
|||
|
}
|
|||
|
}
|