class Webpoke::Test

A test

Public Class Methods

new(&block) click to toggle source
# File lib/Webpoke/Test.rb, line 8
def initialize(&block)
  @parse = true
  @on_success = [];
  instance_eval(&block);
  @group = @group || ''
  @method = @method || 'get'
  @headers = @headers || {}
  @on_success = [];
  @ran = false;
end

Public Instance Methods

default_success(code, body) click to toggle source
# File lib/Webpoke/Test.rb, line 42
def default_success (code, body)
  if @should_fail
    return code > 399
  else
    return (200..226).include?(code)
  end
end
dependant?() click to toggle source
# File lib/Webpoke/Test.rb, line 115
def dependant?
  @dependant
end
depends_on(otherTest) click to toggle source
# File lib/Webpoke/Test.rb, line 37
def depends_on otherTest
  otherTest.on_success << self
  self.dependant = true;
end
describe() click to toggle source
Returns the test description definition (so that we can auto-generate documentation)

end

# File lib/Webpoke/Test.rb, line 85
def describe
  
  query = []
  if (@query)
    @query.each do |k,v|
      query << {key: k, v:self.pt(v)}
    end
  end
  
  data = []
  if (@data)
    @data.each do |k,v|
      data << {key: k, v:self.pt(v)}
    end
  end
  
  return {
    description: @description,
    url: @url,
    method: @method,
    query: query,
    headers: @headers,
    data: data,
    sampleOutput: @sampleOutput,
    metadata: @metadata
  }
  
end
did_run?() click to toggle source
# File lib/Webpoke/Test.rb, line 23
def did_run?
  @ran
end
on(response, &block) click to toggle source
# File lib/Webpoke/Test.rb, line 27
def on (response, &block)
  
  if (response == 'success')
    @on_success << block
  else
    @on_error << block
  end
  
end
passed?(response, body) click to toggle source

Run the test

# File lib/Webpoke/Test.rb, line 123
def passed? (response, body)
  @ran = true
  @response = {
    body: body,
    code: response
  }
  if !self.default_success(response, body)
    return false
  end
  
  
  if @success
    begin
      result = @success.call(response, body)
    rescue Exception => e
      result = false
      raise Webpoke::TestSuccessError.new(e.message, e)
    end
  else
    result = self.default_success(response, body)
  end
  
  return result
  
end
pt(v) click to toggle source
# File lib/Webpoke/Test.rb, line 64
def pt(v)
  clase = v.class.to_s
  case clase
  when 'Fixnum'
    clase = 'Int'
  when 'Hash'
    v.each do |k,nv|
      v[k] = self.pt(nv)
    end
    return v
    
  when 'TrueClass', 'FalseClass'
    clase = 'Boolean'
  end
  
  clase.downcase
end
should_parse?() click to toggle source
# File lib/Webpoke/Test.rb, line 19
def should_parse?
  return @parse
end
success(&block) click to toggle source
# File lib/Webpoke/Test.rb, line 50
def success (&block)
  @success = block
end
to_s() click to toggle source

Returns the test description

# File lib/Webpoke/Test.rb, line 59
def to_s
  @description
end