mock_test.go 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614
  1. package mock
  2. import (
  3. "errors"
  4. "github.com/stretchr/testify/assert"
  5. "testing"
  6. )
  7. /*
  8. Test objects
  9. */
  10. // ExampleInterface represents an example interface.
  11. type ExampleInterface interface {
  12. TheExampleMethod(a, b, c int) (int, error)
  13. }
  14. // TestExampleImplementation is a test implementation of ExampleInterface
  15. type TestExampleImplementation struct {
  16. Mock
  17. }
  18. func (i *TestExampleImplementation) TheExampleMethod(a, b, c int) (int, error) {
  19. args := i.Mock.Called(a, b, c)
  20. return args.Int(0), errors.New("Whoops")
  21. }
  22. func (i *TestExampleImplementation) TheExampleMethod2(yesorno bool) {
  23. i.Mock.Called(yesorno)
  24. }
  25. /*
  26. Mock
  27. */
  28. func Test_Mock_TestData(t *testing.T) {
  29. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  30. if assert.NotNil(t, mockedService.TestData()) {
  31. mockedService.TestData().Set("something", 123)
  32. assert.Equal(t, 123, mockedService.TestData().Get("something").Data())
  33. }
  34. }
  35. func Test_Mock_On(t *testing.T) {
  36. // make a test impl object
  37. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  38. assert.Equal(t, mockedService.Mock.On("TheExampleMethod"), &mockedService.Mock)
  39. assert.Equal(t, "TheExampleMethod", mockedService.Mock.onMethodName)
  40. }
  41. func Test_Mock_On_WithArgs(t *testing.T) {
  42. // make a test impl object
  43. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  44. assert.Equal(t, mockedService.Mock.On("TheExampleMethod", 1, 2, 3), &mockedService.Mock)
  45. assert.Equal(t, "TheExampleMethod", mockedService.Mock.onMethodName)
  46. assert.Equal(t, 1, mockedService.Mock.onMethodArguments[0])
  47. assert.Equal(t, 2, mockedService.Mock.onMethodArguments[1])
  48. assert.Equal(t, 3, mockedService.Mock.onMethodArguments[2])
  49. }
  50. func Test_Mock_Return(t *testing.T) {
  51. // make a test impl object
  52. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  53. assert.Equal(t, mockedService.Mock.On("TheExampleMethod", "A", "B", true).Return(1, "two", true), &mockedService.Mock)
  54. // ensure the call was created
  55. if assert.Equal(t, 1, len(mockedService.Mock.ExpectedCalls)) {
  56. call := mockedService.Mock.ExpectedCalls[0]
  57. assert.Equal(t, "TheExampleMethod", call.Method)
  58. assert.Equal(t, "A", call.Arguments[0])
  59. assert.Equal(t, "B", call.Arguments[1])
  60. assert.Equal(t, true, call.Arguments[2])
  61. assert.Equal(t, 1, call.ReturnArguments[0])
  62. assert.Equal(t, "two", call.ReturnArguments[1])
  63. assert.Equal(t, true, call.ReturnArguments[2])
  64. assert.Equal(t, 0, call.Repeatability)
  65. }
  66. }
  67. func Test_Mock_Return_Once(t *testing.T) {
  68. // make a test impl object
  69. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  70. mockedService.Mock.On("TheExampleMethod", "A", "B", true).Return(1, "two", true).Once()
  71. // ensure the call was created
  72. if assert.Equal(t, 1, len(mockedService.Mock.ExpectedCalls)) {
  73. call := mockedService.Mock.ExpectedCalls[0]
  74. assert.Equal(t, "TheExampleMethod", call.Method)
  75. assert.Equal(t, "A", call.Arguments[0])
  76. assert.Equal(t, "B", call.Arguments[1])
  77. assert.Equal(t, true, call.Arguments[2])
  78. assert.Equal(t, 1, call.ReturnArguments[0])
  79. assert.Equal(t, "two", call.ReturnArguments[1])
  80. assert.Equal(t, true, call.ReturnArguments[2])
  81. assert.Equal(t, 1, call.Repeatability)
  82. }
  83. }
  84. func Test_Mock_Return_Twice(t *testing.T) {
  85. // make a test impl object
  86. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  87. mockedService.Mock.On("TheExampleMethod", "A", "B", true).Return(1, "two", true).Twice()
  88. // ensure the call was created
  89. if assert.Equal(t, 1, len(mockedService.Mock.ExpectedCalls)) {
  90. call := mockedService.Mock.ExpectedCalls[0]
  91. assert.Equal(t, "TheExampleMethod", call.Method)
  92. assert.Equal(t, "A", call.Arguments[0])
  93. assert.Equal(t, "B", call.Arguments[1])
  94. assert.Equal(t, true, call.Arguments[2])
  95. assert.Equal(t, 1, call.ReturnArguments[0])
  96. assert.Equal(t, "two", call.ReturnArguments[1])
  97. assert.Equal(t, true, call.ReturnArguments[2])
  98. assert.Equal(t, 2, call.Repeatability)
  99. }
  100. }
  101. func Test_Mock_Return_Times(t *testing.T) {
  102. // make a test impl object
  103. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  104. mockedService.Mock.On("TheExampleMethod", "A", "B", true).Return(1, "two", true).Times(5)
  105. // ensure the call was created
  106. if assert.Equal(t, 1, len(mockedService.Mock.ExpectedCalls)) {
  107. call := mockedService.Mock.ExpectedCalls[0]
  108. assert.Equal(t, "TheExampleMethod", call.Method)
  109. assert.Equal(t, "A", call.Arguments[0])
  110. assert.Equal(t, "B", call.Arguments[1])
  111. assert.Equal(t, true, call.Arguments[2])
  112. assert.Equal(t, 1, call.ReturnArguments[0])
  113. assert.Equal(t, "two", call.ReturnArguments[1])
  114. assert.Equal(t, true, call.ReturnArguments[2])
  115. assert.Equal(t, 5, call.Repeatability)
  116. }
  117. }
  118. func Test_Mock_Return_Nothing(t *testing.T) {
  119. // make a test impl object
  120. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  121. assert.Equal(t, mockedService.Mock.On("TheExampleMethod", "A", "B", true).Return(), &mockedService.Mock)
  122. // ensure the call was created
  123. if assert.Equal(t, 1, len(mockedService.Mock.ExpectedCalls)) {
  124. call := mockedService.Mock.ExpectedCalls[0]
  125. assert.Equal(t, "TheExampleMethod", call.Method)
  126. assert.Equal(t, "A", call.Arguments[0])
  127. assert.Equal(t, "B", call.Arguments[1])
  128. assert.Equal(t, true, call.Arguments[2])
  129. assert.Equal(t, 0, len(call.ReturnArguments))
  130. }
  131. }
  132. func Test_Mock_findExpectedCall(t *testing.T) {
  133. m := new(Mock)
  134. m.On("One", 1).Return("one")
  135. m.On("Two", 2).Return("two")
  136. m.On("Two", 3).Return("three")
  137. f, c := m.findExpectedCall("Two", 3)
  138. if assert.Equal(t, 2, f) {
  139. if assert.NotNil(t, c) {
  140. assert.Equal(t, "Two", c.Method)
  141. assert.Equal(t, 3, c.Arguments[0])
  142. assert.Equal(t, "three", c.ReturnArguments[0])
  143. }
  144. }
  145. }
  146. func Test_Mock_findExpectedCall_For_Unknown_Method(t *testing.T) {
  147. m := new(Mock)
  148. m.On("One", 1).Return("one")
  149. m.On("Two", 2).Return("two")
  150. m.On("Two", 3).Return("three")
  151. f, _ := m.findExpectedCall("Two")
  152. assert.Equal(t, -1, f)
  153. }
  154. func Test_Mock_findExpectedCall_Respects_Repeatability(t *testing.T) {
  155. m := new(Mock)
  156. m.On("One", 1).Return("one")
  157. m.On("Two", 2).Return("two").Once()
  158. m.On("Two", 3).Return("three").Twice()
  159. m.On("Two", 3).Return("three").Times(8)
  160. f, c := m.findExpectedCall("Two", 3)
  161. if assert.Equal(t, 2, f) {
  162. if assert.NotNil(t, c) {
  163. assert.Equal(t, "Two", c.Method)
  164. assert.Equal(t, 3, c.Arguments[0])
  165. assert.Equal(t, "three", c.ReturnArguments[0])
  166. }
  167. }
  168. }
  169. func Test_callString(t *testing.T) {
  170. assert.Equal(t, `Method(int,bool,string)`, callString("Method", []interface{}{1, true, "something"}, false))
  171. }
  172. func Test_Mock_Called(t *testing.T) {
  173. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  174. mockedService.Mock.On("Test_Mock_Called", 1, 2, 3).Return(5, "6", true)
  175. returnArguments := mockedService.Mock.Called(1, 2, 3)
  176. if assert.Equal(t, 1, len(mockedService.Mock.Calls)) {
  177. assert.Equal(t, "Test_Mock_Called", mockedService.Mock.Calls[0].Method)
  178. assert.Equal(t, 1, mockedService.Mock.Calls[0].Arguments[0])
  179. assert.Equal(t, 2, mockedService.Mock.Calls[0].Arguments[1])
  180. assert.Equal(t, 3, mockedService.Mock.Calls[0].Arguments[2])
  181. }
  182. if assert.Equal(t, 3, len(returnArguments)) {
  183. assert.Equal(t, 5, returnArguments[0])
  184. assert.Equal(t, "6", returnArguments[1])
  185. assert.Equal(t, true, returnArguments[2])
  186. }
  187. }
  188. func Test_Mock_Called_For_Bounded_Repeatability(t *testing.T) {
  189. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  190. mockedService.Mock.On("Test_Mock_Called_For_Bounded_Repeatability", 1, 2, 3).Return(5, "6", true).Once()
  191. mockedService.Mock.On("Test_Mock_Called_For_Bounded_Repeatability", 1, 2, 3).Return(-1, "hi", false)
  192. returnArguments1 := mockedService.Mock.Called(1, 2, 3)
  193. returnArguments2 := mockedService.Mock.Called(1, 2, 3)
  194. if assert.Equal(t, 2, len(mockedService.Mock.Calls)) {
  195. assert.Equal(t, "Test_Mock_Called_For_Bounded_Repeatability", mockedService.Mock.Calls[0].Method)
  196. assert.Equal(t, 1, mockedService.Mock.Calls[0].Arguments[0])
  197. assert.Equal(t, 2, mockedService.Mock.Calls[0].Arguments[1])
  198. assert.Equal(t, 3, mockedService.Mock.Calls[0].Arguments[2])
  199. assert.Equal(t, "Test_Mock_Called_For_Bounded_Repeatability", mockedService.Mock.Calls[1].Method)
  200. assert.Equal(t, 1, mockedService.Mock.Calls[1].Arguments[0])
  201. assert.Equal(t, 2, mockedService.Mock.Calls[1].Arguments[1])
  202. assert.Equal(t, 3, mockedService.Mock.Calls[1].Arguments[2])
  203. }
  204. if assert.Equal(t, 3, len(returnArguments1)) {
  205. assert.Equal(t, 5, returnArguments1[0])
  206. assert.Equal(t, "6", returnArguments1[1])
  207. assert.Equal(t, true, returnArguments1[2])
  208. }
  209. if assert.Equal(t, 3, len(returnArguments2)) {
  210. assert.Equal(t, -1, returnArguments2[0])
  211. assert.Equal(t, "hi", returnArguments2[1])
  212. assert.Equal(t, false, returnArguments2[2])
  213. }
  214. }
  215. func Test_Mock_Called_For_SetTime_Expectation(t *testing.T) {
  216. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  217. mockedService.Mock.On("TheExampleMethod", 1, 2, 3).Return(5, "6", true).Times(4)
  218. mockedService.TheExampleMethod(1, 2, 3)
  219. mockedService.TheExampleMethod(1, 2, 3)
  220. mockedService.TheExampleMethod(1, 2, 3)
  221. mockedService.TheExampleMethod(1, 2, 3)
  222. assert.Panics(t, func() {
  223. mockedService.TheExampleMethod(1, 2, 3)
  224. })
  225. }
  226. func Test_Mock_Called_Unexpected(t *testing.T) {
  227. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  228. // make sure it panics if no expectation was made
  229. assert.Panics(t, func() {
  230. mockedService.Mock.Called(1, 2, 3)
  231. }, "Calling unexpected method should panic")
  232. }
  233. func Test_AssertExpectationsForObjects_Helper(t *testing.T) {
  234. var mockedService1 *TestExampleImplementation = new(TestExampleImplementation)
  235. var mockedService2 *TestExampleImplementation = new(TestExampleImplementation)
  236. var mockedService3 *TestExampleImplementation = new(TestExampleImplementation)
  237. mockedService1.Mock.On("Test_AssertExpectationsForObjects_Helper", 1).Return()
  238. mockedService2.Mock.On("Test_AssertExpectationsForObjects_Helper", 2).Return()
  239. mockedService3.Mock.On("Test_AssertExpectationsForObjects_Helper", 3).Return()
  240. mockedService1.Called(1)
  241. mockedService2.Called(2)
  242. mockedService3.Called(3)
  243. assert.True(t, AssertExpectationsForObjects(t, mockedService1.Mock, mockedService2.Mock, mockedService3.Mock))
  244. }
  245. func Test_AssertExpectationsForObjects_Helper_Failed(t *testing.T) {
  246. var mockedService1 *TestExampleImplementation = new(TestExampleImplementation)
  247. var mockedService2 *TestExampleImplementation = new(TestExampleImplementation)
  248. var mockedService3 *TestExampleImplementation = new(TestExampleImplementation)
  249. mockedService1.Mock.On("Test_AssertExpectationsForObjects_Helper_Failed", 1).Return()
  250. mockedService2.Mock.On("Test_AssertExpectationsForObjects_Helper_Failed", 2).Return()
  251. mockedService3.Mock.On("Test_AssertExpectationsForObjects_Helper_Failed", 3).Return()
  252. mockedService1.Called(1)
  253. mockedService3.Called(3)
  254. tt := new(testing.T)
  255. assert.False(t, AssertExpectationsForObjects(tt, mockedService1.Mock, mockedService2.Mock, mockedService3.Mock))
  256. }
  257. func Test_Mock_AssertExpectations(t *testing.T) {
  258. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  259. mockedService.Mock.On("Test_Mock_AssertExpectations", 1, 2, 3).Return(5, 6, 7)
  260. tt := new(testing.T)
  261. assert.False(t, mockedService.AssertExpectations(tt))
  262. // make the call now
  263. mockedService.Mock.Called(1, 2, 3)
  264. // now assert expectations
  265. assert.True(t, mockedService.AssertExpectations(tt))
  266. }
  267. func Test_Mock_AssertExpectations_With_Repeatability(t *testing.T) {
  268. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  269. mockedService.Mock.On("Test_Mock_AssertExpectations_With_Repeatability", 1, 2, 3).Return(5, 6, 7).Twice()
  270. tt := new(testing.T)
  271. assert.False(t, mockedService.AssertExpectations(tt))
  272. // make the call now
  273. mockedService.Mock.Called(1, 2, 3)
  274. assert.False(t, mockedService.AssertExpectations(tt))
  275. mockedService.Mock.Called(1, 2, 3)
  276. // now assert expectations
  277. assert.True(t, mockedService.AssertExpectations(tt))
  278. }
  279. func Test_Mock_AssertNumberOfCalls(t *testing.T) {
  280. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  281. mockedService.Mock.On("Test_Mock_AssertNumberOfCalls", 1, 2, 3).Return(5, 6, 7)
  282. mockedService.Mock.Called(1, 2, 3)
  283. assert.True(t, mockedService.AssertNumberOfCalls(t, "Test_Mock_AssertNumberOfCalls", 1))
  284. mockedService.Mock.Called(1, 2, 3)
  285. assert.True(t, mockedService.AssertNumberOfCalls(t, "Test_Mock_AssertNumberOfCalls", 2))
  286. }
  287. func Test_Mock_AssertCalled(t *testing.T) {
  288. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  289. mockedService.Mock.On("Test_Mock_AssertCalled", 1, 2, 3).Return(5, 6, 7)
  290. mockedService.Mock.Called(1, 2, 3)
  291. assert.True(t, mockedService.AssertCalled(t, "Test_Mock_AssertCalled", 1, 2, 3))
  292. }
  293. func Test_Mock_AssertCalled_WithArguments(t *testing.T) {
  294. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  295. mockedService.Mock.On("Test_Mock_AssertCalled_WithArguments", 1, 2, 3).Return(5, 6, 7)
  296. mockedService.Mock.Called(1, 2, 3)
  297. tt := new(testing.T)
  298. assert.True(t, mockedService.AssertCalled(tt, "Test_Mock_AssertCalled_WithArguments", 1, 2, 3))
  299. assert.False(t, mockedService.AssertCalled(tt, "Test_Mock_AssertCalled_WithArguments", 2, 3, 4))
  300. }
  301. func Test_Mock_AssertCalled_WithArguments_With_Repeatability(t *testing.T) {
  302. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  303. mockedService.Mock.On("Test_Mock_AssertCalled_WithArguments_With_Repeatability", 1, 2, 3).Return(5, 6, 7).Once()
  304. mockedService.Mock.On("Test_Mock_AssertCalled_WithArguments_With_Repeatability", 2, 3, 4).Return(5, 6, 7).Once()
  305. mockedService.Mock.Called(1, 2, 3)
  306. mockedService.Mock.Called(2, 3, 4)
  307. tt := new(testing.T)
  308. assert.True(t, mockedService.AssertCalled(tt, "Test_Mock_AssertCalled_WithArguments_With_Repeatability", 1, 2, 3))
  309. assert.True(t, mockedService.AssertCalled(tt, "Test_Mock_AssertCalled_WithArguments_With_Repeatability", 2, 3, 4))
  310. assert.False(t, mockedService.AssertCalled(tt, "Test_Mock_AssertCalled_WithArguments_With_Repeatability", 3, 4, 5))
  311. }
  312. func Test_Mock_AssertNotCalled(t *testing.T) {
  313. var mockedService *TestExampleImplementation = new(TestExampleImplementation)
  314. mockedService.Mock.On("Test_Mock_AssertNotCalled", 1, 2, 3).Return(5, 6, 7)
  315. mockedService.Mock.Called(1, 2, 3)
  316. assert.True(t, mockedService.AssertNotCalled(t, "Test_Mock_NotCalled"))
  317. }
  318. /*
  319. Arguments helper methods
  320. */
  321. func Test_Arguments_Get(t *testing.T) {
  322. var args Arguments = []interface{}{"string", 123, true}
  323. assert.Equal(t, "string", args.Get(0).(string))
  324. assert.Equal(t, 123, args.Get(1).(int))
  325. assert.Equal(t, true, args.Get(2).(bool))
  326. }
  327. func Test_Arguments_Is(t *testing.T) {
  328. var args Arguments = []interface{}{"string", 123, true}
  329. assert.True(t, args.Is("string", 123, true))
  330. assert.False(t, args.Is("wrong", 456, false))
  331. }
  332. func Test_Arguments_Diff(t *testing.T) {
  333. var args Arguments = []interface{}{"Hello World", 123, true}
  334. var diff string
  335. var count int
  336. diff, count = args.Diff([]interface{}{"Hello World", 456, "false"})
  337. assert.Equal(t, 2, count)
  338. assert.Contains(t, diff, `%!s(int=456) != %!s(int=123)`)
  339. assert.Contains(t, diff, `false != %!s(bool=true)`)
  340. }
  341. func Test_Arguments_Diff_DifferentNumberOfArgs(t *testing.T) {
  342. var args Arguments = []interface{}{"string", 123, true}
  343. var diff string
  344. var count int
  345. diff, count = args.Diff([]interface{}{"string", 456, "false", "extra"})
  346. assert.Equal(t, 3, count)
  347. assert.Contains(t, diff, `extra != (Missing)`)
  348. }
  349. func Test_Arguments_Diff_WithAnythingArgument(t *testing.T) {
  350. var args Arguments = []interface{}{"string", 123, true}
  351. var count int
  352. _, count = args.Diff([]interface{}{"string", Anything, true})
  353. assert.Equal(t, 0, count)
  354. }
  355. func Test_Arguments_Diff_WithAnythingArgument_InActualToo(t *testing.T) {
  356. var args Arguments = []interface{}{"string", Anything, true}
  357. var count int
  358. _, count = args.Diff([]interface{}{"string", 123, true})
  359. assert.Equal(t, 0, count)
  360. }
  361. func Test_Arguments_Diff_WithAnythingOfTypeArgument(t *testing.T) {
  362. var args Arguments = []interface{}{"string", AnythingOfType("int"), true}
  363. var count int
  364. _, count = args.Diff([]interface{}{"string", 123, true})
  365. assert.Equal(t, 0, count)
  366. }
  367. func Test_Arguments_Diff_WithAnythingOfTypeArgument_Failing(t *testing.T) {
  368. var args Arguments = []interface{}{"string", AnythingOfType("string"), true}
  369. var count int
  370. var diff string
  371. diff, count = args.Diff([]interface{}{"string", 123, true})
  372. assert.Equal(t, 1, count)
  373. assert.Contains(t, diff, `string != type int - %!s(int=123)`)
  374. }
  375. func Test_Arguments_Assert(t *testing.T) {
  376. var args Arguments = []interface{}{"string", 123, true}
  377. assert.True(t, args.Assert(t, "string", 123, true))
  378. }
  379. func Test_Arguments_String_Representation(t *testing.T) {
  380. var args Arguments = []interface{}{"string", 123, true}
  381. assert.Equal(t, `string,int,bool`, args.String())
  382. }
  383. func Test_Arguments_String(t *testing.T) {
  384. var args Arguments = []interface{}{"string", 123, true}
  385. assert.Equal(t, "string", args.String(0))
  386. }
  387. func Test_Arguments_Error(t *testing.T) {
  388. var err error = errors.New("An Error")
  389. var args Arguments = []interface{}{"string", 123, true, err}
  390. assert.Equal(t, err, args.Error(3))
  391. }
  392. func Test_Arguments_Error_Nil(t *testing.T) {
  393. var args Arguments = []interface{}{"string", 123, true, nil}
  394. assert.Equal(t, nil, args.Error(3))
  395. }
  396. func Test_Arguments_Int(t *testing.T) {
  397. var args Arguments = []interface{}{"string", 123, true}
  398. assert.Equal(t, 123, args.Int(1))
  399. }
  400. func Test_Arguments_Bool(t *testing.T) {
  401. var args Arguments = []interface{}{"string", 123, true}
  402. assert.Equal(t, true, args.Bool(2))
  403. }