func testStmtParse(t *testing.T, stmtAsString string, formFixture interfaces.Form) stmt.Form { lex := lexer.NewLexer([]byte(stmtAsString)) parser := parser.NewParser() parseResult, err := parser.Parse(lex) if err != nil { t.Fatalf("Encountered fatal error during parse: %s", err) } if parsedForn, parseResultIsForm := parseResult.(stmt.Form); parseResultIsForm { if firstFormIdentifier, secondFormIdentifier := parsedForn.Identifier(), formFixture.Identifier(); firstFormIdentifier != secondFormIdentifier { t.Errorf("Form identifiers not equal: %s and %s", firstFormIdentifier, secondFormIdentifier) } if !util.AreStmtListsEqual(parsedForn.Content(), formFixture.Content()) { t.Errorf("Form content not equal: %v and %v", parsedForn, formFixture) } } else { t.Fatalf("Parse result is not form") } return parseResult.(stmt.Form) }