func (t *TestCase) InputCode() string { op := t.API.Operations[t.API.ExportableName(t.Operation)] if op.InputRef.Shape == nil { return "" } return helpers.ParamsStructFromJSON(t.Input, op.InputRef.Shape, true) }
func (i *TestCase) TestCase(idx int) string { var buf bytes.Buffer opName := i.API.StructName() + i.TestSuite.title + "Case" + strconv.Itoa(idx+1) if i.Params != nil { // input test // query test should sort body as form encoded values switch i.API.Metadata.Protocol { case "query", "ec2": m, _ := url.ParseQuery(i.InputTest.Body) i.InputTest.Body = m.Encode() case "rest-xml": i.InputTest.Body = util.SortXML(bytes.NewReader([]byte(i.InputTest.Body))) case "json", "rest-json": i.InputTest.Body = strings.Replace(i.InputTest.Body, " ", "", -1) } input := tplInputTestCaseData{ TestCase: i, OpName: strings.ToUpper(opName[0:1]) + opName[1:], ParamsString: helpers.ParamsStructFromJSON(i.Params, i.Given.InputRef.Shape, false), } if err := tplInputTestCase.Execute(&buf, input); err != nil { panic(err) } } else { output := tplOutputTestCaseData{ TestCase: i, Body: fmt.Sprintf("%q", i.OutputTest.Body), OpName: strings.ToUpper(opName[0:1]) + opName[1:], Assertions: utilassert.GenerateAssertions(i.Data, i.Given.OutputRef.Shape, "out"), } if err := tplOutputTestCase.Execute(&buf, output); err != nil { panic(err) } } return util.GoFmt(buf.String()) }