Consolidated ASP Classic MVC framework from best components
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

123 lignes
3.6KB

  1. <%
  2. Class ASPUnitJSONResponder
  3. Private _
  4. m_Serializer
  5. Private Sub Class_Initialize()
  6. Set m_Serializer = New ASPUnitScenarioSerializer
  7. End Sub
  8. Private Sub Class_Terminate()
  9. Set m_Serializer = Nothing
  10. End Sub
  11. Public Property Set Serializer(objValue)
  12. Set m_Serializer = objValue
  13. End Property
  14. Public Sub Respond(objModules)
  15. Response.ContentType = "application/json"
  16. Response.Write m_Serializer.ToJSON(objModules)
  17. End Sub
  18. End Class
  19. ' Private Classes
  20. Class ASPUnitScenarioSerializer
  21. Function ToJSON(objScenario)
  22. Dim objStream, _
  23. objModule, _
  24. objTest, _
  25. i, j, _
  26. strReturn
  27. Set objStream = Server.CreateObject("ADODB.Stream")
  28. objStream.Type = 2 ' adTypeText
  29. objStream.Mode = 3 ' adModeReadWrite
  30. objStream.Open
  31. Call objStream.WriteText("{")
  32. Call objStream.WriteText(JSONNumberPair("testCount", objScenario.TestCount) & ",")
  33. Call objStream.WriteText(JSONNumberPair("passCount", objScenario.PassCount) & ",")
  34. Call objStream.WriteText(JSONBooleanPair("passed", objScenario.Passed) & ",")
  35. Call objStream.WriteText(JSONString("modules") & ":[")
  36. For i = 0 To (objScenario.Modules.Count - 1)
  37. Set objModule = objScenario.Modules.Item(i)
  38. Call objStream.WriteText("{")
  39. Call objStream.WriteText(JSONStringPair("name", objModule.Name) & ",")
  40. Call objStream.WriteText(JSONNumberPair("testCount", objModule.TestCount) & ",")
  41. Call objStream.WriteText(JSONNumberPair("passCount", objModule.PassCount) & ",")
  42. Call objStream.WriteText(JSONNumberPair("failCount", (objModule.FailCount)) & ",")
  43. Call objStream.WriteText(JSONBooleanPair("passed", objModule.Passed) & ",")
  44. Call objStream.WriteText(JSONNumberPair("duration", objModule.Duration) & ",")
  45. Call objStream.WriteText(JSONString("tests") & ":[")
  46. For j = 0 To (objModule.Tests.Count - 1)
  47. Set objTest = objModule.Tests.Item(j)
  48. Call objStream.WriteText("{")
  49. Call objStream.WriteText(JSONStringPair("name", objTest.Name) & ",")
  50. Call objStream.WriteText(JSONBooleanPair("passed", objTest.Passed) & ",")
  51. Call objStream.WriteText(JSONStringPair("description", objTest.Description))
  52. Call objStream.WriteText("}")
  53. If j < (objModule.Tests.Count - 1) Then
  54. Call objStream.WriteText(",")
  55. End If
  56. Set objTest = Nothing
  57. Next
  58. Call objStream.WriteText("]")
  59. Call objStream.WriteText("}")
  60. If i < (objScenario.Modules.Count - 1) Then
  61. Call objStream.WriteText(",")
  62. End If
  63. Set objModule = Nothing
  64. Next
  65. Call objStream.WriteText("]")
  66. Call objStream.WriteText("}")
  67. objStream.Position = 0
  68. strReturn = objStream.ReadText()
  69. objStream.Close
  70. Set objStream = Nothing
  71. ToJSON = strReturn
  72. End Function
  73. Private Function JSONString(strValue)
  74. JSONString = """" & JSONStringEscape(strValue) & """"
  75. End Function
  76. Private Function JSONStringPair(strName, strValue)
  77. JSONStringPair = JSONString(strName) & ":" & JSONString(strValue)
  78. End Function
  79. Private Function JSONNumberPair(strName, varValue)
  80. JSONNumberPair = JSONString(strName) & ":" & varValue
  81. End Function
  82. Private Function JSONBooleanPair(strName, blnValue)
  83. JSONBooleanPair = JSONString(strName) & ":" & LCase(blnValue)
  84. End Function
  85. Private Function JSONStringEscape(strValue)
  86. Dim strReturn
  87. strReturn = strValue
  88. strReturn = Replace(strReturn, "\", "\\")
  89. strReturn = Replace(strReturn, """", "\""")
  90. strReturn = Replace(strReturn, vbLf, "\n")
  91. strReturn = Replace(strReturn, vbCr, "\n")
  92. strReturn = Replace(strReturn, vbCrLf, "\n")
  93. strReturn = Replace(strReturn, vbTab, "\t")
  94. JSONStringEscape = strReturn
  95. End Function
  96. End Class
  97. %>

Powered by TurnKey Linux.