assert_test.go 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package awstesting_test
  2. import (
  3. "encoding/xml"
  4. "testing"
  5. "github.com/aws/aws-sdk-go/awstesting"
  6. )
  7. func TestAssertJSON(t *testing.T) {
  8. cases := []struct {
  9. e, a string
  10. asserts bool
  11. }{
  12. {
  13. e: `{"RecursiveStruct":{"RecursiveMap":{"foo":{"NoRecurse":"foo"},"bar":{"NoRecurse":"bar"}}}}`,
  14. a: `{"RecursiveStruct":{"RecursiveMap":{"bar":{"NoRecurse":"bar"},"foo":{"NoRecurse":"foo"}}}}`,
  15. asserts: true,
  16. },
  17. }
  18. for i, c := range cases {
  19. mockT := &testing.T{}
  20. if awstesting.AssertJSON(mockT, c.e, c.a) != c.asserts {
  21. t.Error("Assert JSON result was not expected.", i)
  22. }
  23. }
  24. }
  25. func TestAssertXML(t *testing.T) {
  26. cases := []struct {
  27. e, a string
  28. asserts bool
  29. container struct {
  30. XMLName xml.Name `xml:"OperationRequest"`
  31. NS string `xml:"xmlns,attr"`
  32. RecursiveStruct struct {
  33. RecursiveMap struct {
  34. Entries []struct {
  35. XMLName xml.Name `xml:"entries"`
  36. Key string `xml:"key"`
  37. Value struct {
  38. XMLName xml.Name `xml:"value"`
  39. NoRecurse string
  40. }
  41. }
  42. }
  43. }
  44. }
  45. }{
  46. {
  47. e: `<OperationRequest xmlns="https://foo/"><RecursiveStruct xmlns="https://foo/"><RecursiveMap xmlns="https://foo/"><entry xmlns="https://foo/"><key xmlns="https://foo/">foo</key><value xmlns="https://foo/"><NoRecurse xmlns="https://foo/">foo</NoRecurse></value></entry><entry xmlns="https://foo/"><key xmlns="https://foo/">bar</key><value xmlns="https://foo/"><NoRecurse xmlns="https://foo/">bar</NoRecurse></value></entry></RecursiveMap></RecursiveStruct></OperationRequest>`,
  48. a: `<OperationRequest xmlns="https://foo/"><RecursiveStruct xmlns="https://foo/"><RecursiveMap xmlns="https://foo/"><entry xmlns="https://foo/"><key xmlns="https://foo/">bar</key><value xmlns="https://foo/"><NoRecurse xmlns="https://foo/">bar</NoRecurse></value></entry><entry xmlns="https://foo/"><key xmlns="https://foo/">foo</key><value xmlns="https://foo/"><NoRecurse xmlns="https://foo/">foo</NoRecurse></value></entry></RecursiveMap></RecursiveStruct></OperationRequest>`,
  49. asserts: true,
  50. },
  51. }
  52. for i, c := range cases {
  53. // mockT := &testing.T{}
  54. if awstesting.AssertXML(t, c.e, c.a, c.container) != c.asserts {
  55. t.Error("Assert XML result was not expected.", i)
  56. }
  57. }
  58. }
  59. func TestAssertQuery(t *testing.T) {
  60. cases := []struct {
  61. e, a string
  62. asserts bool
  63. }{
  64. {
  65. e: `Action=OperationName&Version=2014-01-01&Foo=val1&Bar=val2`,
  66. a: `Action=OperationName&Version=2014-01-01&Foo=val2&Bar=val3`,
  67. asserts: false,
  68. },
  69. {
  70. e: `Action=OperationName&Version=2014-01-01&Foo=val1&Bar=val2`,
  71. a: `Action=OperationName&Version=2014-01-01&Foo=val1&Bar=val2`,
  72. asserts: true,
  73. },
  74. }
  75. for i, c := range cases {
  76. mockT := &testing.T{}
  77. if awstesting.AssertQuery(mockT, c.e, c.a) != c.asserts {
  78. t.Error("Assert Query result was not expected.", i)
  79. }
  80. }
  81. }