123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package compiler
- import (
- "testing"
- "github.com/remogatto/prettytest"
- "gogs.carducci-dante.gov.it/andrea.fazzi/karmen/config"
- "gogs.carducci-dante.gov.it/andrea.fazzi/karmen/webdav"
- )
- type testSuite struct {
- prettytest.Suite
- }
- var (
- compiler *Compiler
- client *webdav.Client
- simpleMain string = `
- package main
- func main() {
- println("Hello World!")
- }
- `
- webDAVTemplateProgram string = `
- package main
- import (
- "bytes"
- "fmt"
- "text/template"
- "gogs.carducci-dante.gov.it/andrea.fazzi/karmen/webdav"
- )
- func main() {
- var (
- WebDAVUrl = "http://localhost:8082/remote.php/webdav/"
- WebDavUsername = "admin"
- WebDAVPassword = "password"
- data struct{ Data string }
- output bytes.Buffer
- )
- client, err := webdav.NewClient(WebDAVUrl, WebDavUsername, WebDAVPassword)
- if err != nil {
- fmt.Print(err)
- }
- content, err := client.Download("Templates/template.tpl")
- if err != nil {
- fmt.Print(err)
- }
- tpl, err := template.New("template.tpl").Parse(string(content))
- if err != nil {
- fmt.Print(err)
- }
- data.Data = "Foo"
- err = tpl.Execute(&output, data)
- if err != nil {
- fmt.Print(err)
- }
- err = client.Mkdir("Test")
- if err != nil {
- fmt.Print(err)
- }
- err = client.Upload(output.Bytes(), "Test/foo.txt")
- if err != nil {
- fmt.Print(err)
- }
- fmt.Print("ok")
- }
- `
- )
- func TestRunner(t *testing.T) {
- prettytest.Run(
- t,
- new(testSuite),
- )
- }
- func (t *testSuite) BeforeAll() {
- var err error
- compiler = New("http://localhost:8083/compile")
- client, err = webdav.NewClient(
- config.WebDAVUrl,
- config.WebDavUsername,
- config.WebDAVPassword,
- )
- if err != nil {
- panic(err)
- }
- }
- func (t *testSuite) TestRunSimpleMain() {
- program := &Program{simpleMain}
- result, err := compiler.Run(program)
- t.Nil(err)
- t.Equal("Hello World!\n", result.Events[0].Message)
- }
- func (t *testSuite) TestWebDAVTemplate() {
- program := &Program{webDAVTemplateProgram}
- result, err := compiler.Run(program)
- t.Nil(err)
- t.Equal("", result.Errors)
- if result.Errors == "" {
- t.Equal("ok", result.Events[0].Message)
- data, err := client.Download("Test/foo.txt")
- t.Nil(err)
- t.Equal("Foo", string(data))
- }
- }
- func (t *testSuite) After() {
- client.Delete("Test")
- }
|