1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
require 'drb/drb'
require 'rw-lib'
require 'interopResultBase'
class RWikiInteropService
def initialize
@rwiki_uri = 'druby://localhost:7174'
@rwiki = DRbObject.new(nil, @rwiki_uri)
end
# [ 'addResults', [:in, 'interopResults' ]]
# [ 'deleteResults', [:in, 'client'], [:in, 'server']]
def addResults(interopResults)
pageName = pageName(interopResults.client, interopResults.server)
passResults = interopResults.find_all { | testResult |
testResult.result
}
passStr = passResults.collect { | passResult |
str = "* #{ passResult.testName } ((<[wiredump]|\"##{passResult.testName}\">))\n"
if passResult.comment
str << "\n #{ passResult.comment.gsub(/[\r\n]/, '') }\n"
end
str
}
passStr = 'Nothing...' if passStr.empty?
failResults = interopResults.find_all { | testResult |
!testResult.result
}
failStr = failResults.collect { | failResult |
str = ":#{ failResult.testName } ((<[wiredump]|\"##{failResult.testName}\">))\n Result:\n"
resultStr = failResult.comment.gsub(/\r?\n/, "\n ")
str << " #{ resultStr }\n"
str
}
failStr = 'Nothing!' if failStr.empty?
pageStr =<<__EOS__
= #{ pageName }
* Date: #{ interopResults.dateTime }
* Server
* Name: #{ interopResults.server.name }
* Endpoint: #{ interopResults.server.uri }
* WSDL: #{ interopResults.server.wsdl }
* Client
* Name: #{ interopResults.client.name }
* Endpoint: #{ interopResults.client.uri }
* WSDL: #{ interopResults.client.wsdl }
== Pass
#{ passResults.size } / #{ interopResults.size }
#{ passStr }
== Fail
#{ failResults.size } / #{ interopResults.size }
#{ failStr }
== Wiredumps
__EOS__
interopResults.each do | testResult |
pageStr <<<<__EOS__
=== #{ testResult.testName }
#{ testResult.wiredump.gsub(/\r/, '^M').gsub(/\t/, '^I').gsub(/\n/, "\n ") }
__EOS__
end
set(pageName, pageStr)
msg = "; #{ passResults.size } / #{ interopResults.size } (#{ interopResults.dateTime })"
addLink(pageName, msg)
end
def deleteResults(client, server)
set(pageName(client, server), '')
end
private
def set(pageName, pageSrc)
page = @rwiki.page(pageName)
page.src = pageSrc
end
def pageName(client, server)
"InteropResults::#{ client.name }-#{ server.name }"
end
def addLink(pageName, msg)
page = @rwiki.page('InteropResults')
# Race condition... Page source might be mixed with others's.
page.src = (page.src || '') << "\n* ((<\"#{ pageName }\">))\n #{ msg }"
end
end
|