class Fog::DNS::DNSimple::Mock

Public Class Methods

data() click to toggle source
# File lib/fog/dnsimple/dns.rb, line 30
def self.data
  @data ||= Hash.new do |hash, key|
    hash[key] = {
      :domains => [],
      :records => {}
    }
  end
end
new(options={}) click to toggle source
# File lib/fog/dnsimple/dns.rb, line 43
def initialize(options={})
  @dnsimple_email = options[:dnsimple_email]
  @dnsimple_password  = options[:dnsimple_password]
end
reset() click to toggle source
# File lib/fog/dnsimple/dns.rb, line 39
def self.reset
  @data = nil
end

Public Instance Methods

create_domain(name) click to toggle source
# File lib/fog/dnsimple/requests/dns/create_domain.rb, line 28
def create_domain(name)
  response = Excon::Response.new
  response.status = 201

  body = {
    "domain" =>  {
      "auto_renew"         => nil,
      "created_at"         => Time.now.iso8601,
      "expires_on"         => Date.today + 365,
      "id"                 => Fog::Mock.random_numbers(1).to_i,
      "language"           => nil,
      "lockable"           => true,
      "name"               => name,
      "name_server_status" => "unknown",
      "registrant_id"      => nil,
      "state"              => "registered",
      "token"              => "4fIFYWYiJayvL2tkf_mkBkqC4L+4RtYqDA",
      "unicode_name"       => name,
      "updated_at"         => Time.now.iso8601,
      "user_id"            => 1,
      "record_count"       => 0,
      "service_count"      => 0,
      "private_whois?"     => false
    }
  }
  self.data[:domains] << body

  response.body = body
  response
end
create_record(domain, name, type, content, options = {}) click to toggle source
# File lib/fog/dnsimple/requests/dns/create_record.rb, line 49
def create_record(domain, name, type, content, options = {})
  response = Excon::Response.new
  response.status = 201
  body = {
    "record" => {
      "name" => name,
      "record_type" => type,
      "content" => content,
      "created_at" => Time.now.iso8601,
      "updated_at" => Time.now.iso8601,
      "id" => Fog::Mock.random_numbers(1).to_i,
      "domain_id" => domain
    }.merge(options)
  }

  self.data[:records][domain] ||= []
  self.data[:records][domain] << body

  response.body = body
  response
end
data() click to toggle source
# File lib/fog/dnsimple/dns.rb, line 48
def data
  self.class.data[@dnsimple_email]
end
delete_domain(name) click to toggle source
# File lib/fog/dnsimple/requests/dns/delete_domain.rb, line 27
def delete_domain(name)
  self.data[:records].delete name
  self.data[:domains].reject! { |domain| domain["domain"]["name"] == name }
  response = Excon::Response.new
  response.status = 200
  response
end
delete_record(domain, record_id) click to toggle source
# File lib/fog/dnsimple/requests/dns/delete_record.rb, line 22
def delete_record(domain, record_id)
  self.data[:records][domain].reject! { |record| record["record"]["id"] == record_id }
  response = Excon::Response.new
  response.status = 200
  response
end
get_domain(id) click to toggle source
# File lib/fog/dnsimple/requests/dns/get_domain.rb, line 38
def get_domain(id)
  domain = self.data[:domains].detect { |domain| domain["domain"]["id"] == id }
  response = Excon::Response.new
  response.status = 200
  response.body = domain
  response
end
get_record(domain, record_id) click to toggle source
# File lib/fog/dnsimple/requests/dns/get_record.rb, line 35
def get_record(domain, record_id)
  response = Excon::Response.new
  if self.data[:records].has_key? domain
    response.status = 200
    response.body = self.data[:records][domain].detect { |record| record["record"]["id"] == record_id }

    if response.body.nil?
      response.status = 404
      response.body = {
        "error" => "Couldn't find Record with id = #{record_id}"
      }
    end
  else
    response.status = 404
    response.body = {
      "error" => "Couldn't find Domain with name = #{domain}"
    }
  end
  response
end
list_domains() click to toggle source
# File lib/fog/dnsimple/requests/dns/list_domains.rb, line 36
def list_domains
  response = Excon::Response.new
  response.status = 200
  response.body = self.data[:domains]
  response
end
list_records(domain) click to toggle source
# File lib/fog/dnsimple/requests/dns/list_records.rb, line 33
def list_records(domain)
  response = Excon::Response.new
  response.status = 200
  response.body = self.data[:records][domain] || []
  response
end
reset_data() click to toggle source
# File lib/fog/dnsimple/dns.rb, line 52
def reset_data
  self.class.data.delete(@dnsimple_email)
end
update_record(domain, record_id, options) click to toggle source
# File lib/fog/dnsimple/requests/dns/update_record.rb, line 43
def update_record(domain, record_id, options)
  record = self.data[:records][domain].detect { |record| record["record"]["id"] == record_id }
  response = Excon::Response.new

  if record.nil?
    response.status = 400
  else
    response.status = 200
    record["record"].merge!(options)
    record["record"]["updated_at"] = Time.now.iso8601
    response.body = record
  end

  response
end