25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 

68 satır
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. let input = mdlRole(id: nil, name: name, description: description, createuserid: cuserid, updateuserid: uuserid)
  15. //Insert object
  16. try app.test(.POST, basepath, beforeRequest: {
  17. req in
  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. input.name = "TestUpdate"
  29. try req.content.encode(input)
  30. }, afterResponse: {
  31. res in
  32. XCTAssertEqual(res.status, .accepted)
  33. let obj = try res.content.decode(mdlRole.self)
  34. XCTAssertEqual(obj.name, name)
  35. })
  36. //Read all objects in the table
  37. try app.test(.GET, basepath, afterResponse: { res in
  38. XCTAssertEqual(res.status, .ok)
  39. XCTAssertEqual(res.headers.contentType, .json)
  40. _ = try res.content.decode([mdlRole].self)
  41. })
  42. //Read the object just inserted
  43. let parameter = try CustomCrypto.EncryptString(input: String(id!))
  44. var path = "\(basepath)\(parameter)"
  45. try app.test(.GET, path, afterResponse: { res in
  46. XCTAssertEqual(res.status, .ok)
  47. XCTAssertEqual(res.headers.contentType, .json)
  48. _ = try res.content.decode(mdlRole.self)
  49. })
  50. //Delete object just inserted
  51. let encryptedid = try CustomCrypto.EncryptString(input: String(id!))
  52. path = "api/v2.0/role/"
  53. let url = "\(path)\(encryptedid)"
  54. try app.test(.DELETE, url, afterResponse: {
  55. res in
  56. XCTAssertEqual(res.status, .ok)
  57. _ = try res.content.decode(mdlRole.self)
  58. })
  59. })
  60. }
  61. }