Sha256: 5eae7c64bec24dae4aa9303fe0b25b57ef78605f86a51801f4a94d26ffc0611e

Contents?: true

Size: 1.72 KB

Versions: 2

Compression:

Stored size: 1.72 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/spec_helper')

describe "NSISam::FakeClient" do
  before :all do
    @nsisam = NSISam::FakeClient.new
  end

  it "can store a value" do
    response = @nsisam.store("something")
    response.should_not be_nil
    response.should have_key("key")
    response.should have_key("checksum")
  end

  it "can store a file" do
    response = @nsisam.store_file("some file not in base64")
    response.should_not be_nil
    response.key.should_not be_nil
    response.checksum.should_not be_nil
  end

  it "can delete a stored value" do
    resp = @nsisam.store("delete this")
    response = @nsisam.delete(resp["key"])
    response["deleted"].should be_true
  end

  it "raises error when key not found" do
    expect { @nsisam.delete("i dont exist") }.to
             raise_error(NSISam::Errors::Client::KeyNotFoundError)

    expect { @nsisam.get("i dont exist") }.to
             raise_error(NSISam::Errors::Client::KeyNotFoundError)

    expect { @nsisam.update("i dont exist", "nothing") }.to
             raise_error(NSISam::Errors::Client::KeyNotFoundError)
  end

  it "can retrieve a stored value" do
    resp = @nsisam.store("retrieve this")
    response = @nsisam.get(resp['key'])
    response["data"].should == "retrieve this"
  end

  it "can retrieve a stored file" do
    resp = @nsisam.store_file("file not in base64")
    response = @nsisam.get_file(resp.key)
    response.data.should_not be_nil
  end

  it "can update values in keys already stored" do
    resp = @nsisam.store("update this")
    response = @nsisam.update(resp['key'], "updated")
    response["key"].should == resp['key']
    @nsisam.get(response['key'])['data'].should == "updated"
    response.should have_key("checksum")
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nsisam-0.6.1 spec/fake_client_spec.rb
nsisam-0.6.0 spec/fake_client_spec.rb