Sha256: 1183da3cac0e667f75daa4ec8e154b60500c826b42b8585d1233a0d2c609c538

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

require "test_helper"
require "azure/tables/auth/shared_key_lite"

describe Azure::Tables::Auth::SharedKeyLite do
  subject do
    Azure::Tables::Auth::SharedKeyLite.new(
      "account-name",
      Base64.strict_encode64("access-key")
    )
  end

  it "#signable_string includes the relevant bits" do
    string = subject.signable_string(:get, double(path: "/path"), {
      "Date" => "Time"
    })

    string.must_equal "Time\n/account-name/path"
  end

  it "#signable_string requires a Date or x-ms-date header" do
    proc {
      subject.signable_string(:get, double(path: "/path"), {})
    }.must_raise KeyError, "Headers must include Date"
  end

  it "#sign will return a Base64-encoded, HMAC/SHA256-encrypted version of the signable string" do
    def subject.signable_string(*)
      "TestString"
    end

    expected = Base64.strict_encode64(
      OpenSSL::HMAC.digest("sha256", "access-key", "TestString")
    )

    actual = subject.sign(MiniTest::Mock.new, MiniTest::Mock.new, MiniTest::Mock.new)

    actual.must_equal expected
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
azure-0.1.1 test/unit/tables/auth/shared_key_lite_test.rb
azure-0.1.0 test/unit/tables/auth/shared_key_lite_test.rb