31 lines
612 B
Go
31 lines
612 B
Go
package lang
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestGenerateGoForEach(t *testing.T) {
|
|
prog, err := Parse(`
|
|
package demo
|
|
|
|
fun main() {
|
|
val accounts: List<String> = listOf("one", "two")
|
|
for (account in accounts) {
|
|
println(account)
|
|
}
|
|
}
|
|
`)
|
|
if err != nil {
|
|
t.Fatalf("parse failed: %v", err)
|
|
}
|
|
out, err := GenerateGo(prog)
|
|
if err != nil {
|
|
t.Fatalf("generation failed: %v", err)
|
|
}
|
|
for _, want := range []string{"for _, account := range accounts {", "fmt.Println(account)"} {
|
|
if !strings.Contains(string(out), want) {
|
|
t.Fatalf("generated Go missing %q:\n%s", want, out)
|
|
}
|
|
}
|
|
}
|