Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

67 строки
2.5 KiB

  1. @testable import App
  2. import Fluent
  3. import XCTVapor
  4. final class RoleTests: XCTestCase {
  5. func test1() async throws{
  6. let app = Application(.testing)
  7. defer{app.shutdown()}
  8. try await configure(app)
  9. let basepath = "/api/v2.0/roles/"
  10. let name = "testRole"
  11. let description = "Testing Role methods"
  12. let cuserid = -1
  13. let uuserid = -1
  14. //Insert object
  15. try app.test(.POST, basepath, beforeRequest: {
  16. req in
  17. let input = mdlRole(id: nil, name: name, description: description, createuserid: cuserid, updateuserid: uuserid)
  18. try req.content.encode(input)
  19. }, afterResponse: {
  20. res in
  21. XCTAssertEqual(res.status, .created)
  22. let obj = try res.content.decode(mdlRole.self)
  23. XCTAssertEqual(obj.name, name)
  24. let id = obj.id
  25. //Update object just created
  26. try app.test(.POST, basepath, beforeRequest:{
  27. req in
  28. let input = mdlRole(id: nil, name: name, description: "Test Update", createuserid: cuserid, updateuserid: uuserid)
  29. }, afterResponse: {
  30. res in
  31. XCTAssertEqual(res.status, .accepted)
  32. let obj = try res.content.decode(mdlRole.self)
  33. XCTAssertEqual(obj.name, name)
  34. })
  35. //Read all objects in the table
  36. try app.test(.GET, basepath, afterResponse: { res in
  37. XCTAssertEqual(res.status, .ok)
  38. XCTAssertEqual(res.headers.contentType, .json)
  39. _ = try res.content.decode([mdlRole].self)
  40. })
  41. //Read the object just inserted
  42. var parameter = try CustomCrypto.EncryptString(input: String(id!))
  43. var path = "\(basepath)\(parameter)"
  44. try app.test(.GET, path, afterResponse: { res in
  45. XCTAssertEqual(res.status, .ok)
  46. XCTAssertEqual(res.headers.contentType, .json)
  47. _ = try res.content.decode(mdlRole.self)
  48. })
  49. //Delete object just inserted
  50. let encryptedid = try CustomCrypto.EncryptString(input: String(id!))
  51. path = "api/v2.0/role/"
  52. let url = "\(path)\(encryptedid)"
  53. try app.test(.DELETE, url, afterResponse: {
  54. res in
  55. XCTAssertEqual(res.status, .ok)
  56. _ = try res.content.decode(mdlRole.self)
  57. })
  58. })
  59. }
  60. }