aws-sdk の spec 読んでみる (2)

Amazon Route 53 API Reference と突き合せてみます。
まずここから

ええと試験としてはリクエストな yaml は単一で以下を確認している模様。

  • makes a POST request
    • POST メソド発行してること
    • リクエスト uri の確認
    • yaml から変換されたリクエストな XML の確認
  • scripts the /hostedzone/ prefix from the :hosted_zone_id param
    • :options の :hosted_zone_id を "zone-id" から "/hostedzone/zone-id" に変更してリクエスト uri の確認
  • parses the xml response
    • レスポンスの status と XML の確認
    • 戻される yaml の確認

基本的にリクエストとレスポンスの確認しかしてないですね。そんなものなのかどうか。
次はこれ

こちらもリクエストな yaml は単一な模様。ruby 1.9 限定な確認が多いです。

  • makes a POST request with an XML body
    • POST メソド発行してること
    • リクエスト uri の確認
    • yaml から変換されたリクエストな XML の確認
  • does not require the comment param
    • :options から :hosted_zone_config な要素を削除可能なことを確認
  • parses the XML response and headers
    • レスポンスの status と戻されるヘッダと XML の確認
    • 戻される yaml の確認
    • あ、レスポンスを規定してるのは mock なのか
      • mock なソレは lib/aws/api_config 配下だった

ええと、レスポンスなナニを検査する場合

        it 'parses the xml response' do

          handler.should_receive(:handle) do |req,resp|
            resp.status = 200
            resp.body = <<-XML.strip
              <?xml version="1.0"?>
              <ChangeResourceRecordSetsResponse #{namespace}>
                <ChangeInfo>
                  <Id>/change/change-id</Id>
                  <Status>PENDING</Status>
                  <SubmittedAt>#{now.iso8601}</SubmittedAt>
                </ChangeInfo>
              </ChangeResourceRecordSetsResponse>
            XML
          end

と書いて :handle に渡されるソレを指定することができるのか。そして以下で検査な模様。

          resp = client.change_resource_record_sets(options)
          resp.data.should eq({
            :change_info => {
              :id => "/change/change-id",
              :status => "PENDING",
              :submitted_at => Time.parse(now.iso8601),
            },
          })

        end

なるほど。別場所にあるのはフォーマットの規定のみでした。続きは

です。

  • makes a DELETE request
    • DELETE メソド発行してること
    • リクエスト uri の確認
    • body は空なこと
  • strips the /hosted/ prefix from the zone id
    • :options の :delete_hosted_zone_id を "zone-id" から "/hostedzone/zone-id" に変更してリクエスト uri の確認
  • parsers the response
    • レスポンスなステイタスと body を設定して変換された yaml を確認

うん。基本的にリクエストパラメータの確認とモックから戻るレスポンスを yaml に変換して云々、という事しかしていないですね。
ちょっと以降は機械的に確認。

試験は以下。

  • makes a GET request
    • メソド、パラメータの確認とリクエスト body が空なことを確認
  • strips the /change/ prefix from the zone id
    • uri なパラメータ組み立ての確認
  • parses the response
    • レスポンスの確認

試験は以下。

  • makes a GET request
    • メソド、パラメータの確認とリクエスト body が空なことを確認
  • strips the /hostedzone/ prefix from the id
    • uri なパラメータ組み立ての確認

試験は以下。

  • makes a GET request
    • メソド、パラメータの確認とリクエスト body が空なことを確認
  • accepts :marker
    • marker というパラメータがある模様
  • accepts :max_items
    • max_items というパラメータがある模様
  • accepts :marker and :max_items
    • 上のパラメータ両方受取った場合
  • parses the XML response and headers
    • レスポンスの確認

試験は以下。

  • makes a GET request
    • メソド、パラメータの確認とリクエスト body が空なことを確認
  • removes the /hostedzone/ prefix
    • 余計なパラメータの削除
  • accepts options
    • オプションパラメータの確認
    • なんとなく粗い印象
    • レスポンス追加でパラメータに追加されてる、のであればこれでも良いのか
  • parses the response
    • レスポンスの確認