Sha256: ba9f8d0d55947d3554f21571980c17baf98a678ff21a67ed5d1a5e6adddacdfe

Contents?: true

Size: 968 Bytes

Versions: 5

Compression:

Stored size: 968 Bytes

Contents

# encoding: binary
require 'spec_helper'

describe RbNaCl::PublicKey do
  let(:alicepk)     { vector :alice_public }

  subject { RbNaCl::PublicKey.new(alicepk) }

  context "new" do
    it "accepts a valid key" do
      expect { RbNaCl::PublicKey.new(alicepk) }.not_to raise_error
    end

    it "rejects a nil key" do
      expect { RbNaCl::PublicKey.new(nil) }.to raise_error(TypeError)
    end

    it "rejects a short key" do
      expect { RbNaCl::PublicKey.new("short") }.to raise_error(ArgumentError)
    end
  end

  context "#to_bytes" do
    it "returns the bytes of the key" do
      subject.to_bytes.should eq alicepk
    end
  end

  context "#to_s" do
    it "returns the bytes of the key" do
      subject.to_s.should eq alicepk
    end
  end

  include_examples "key equality" do
    let(:key) { subject }
    let(:key_bytes) { subject.to_bytes }
    let(:other_key) { described_class.new(alicepk.succ) }
  end

  include_examples "serializable"
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rbnacl-3.1.0 spec/rbnacl/boxes/curve25519xsalsa20poly1305/public_key_spec.rb
rbnacl-3.0.1 spec/rbnacl/boxes/curve25519xsalsa20poly1305/public_key_spec.rb
rbnacl-3.0.0 spec/rbnacl/boxes/curve25519xsalsa20poly1305/public_key_spec.rb
rbnacl-2.0.0 spec/rbnacl/boxes/curve25519xsalsa20poly1305/public_key_spec.rb
rbnacl-2.0.0.pre spec/rbnacl/boxes/curve25519xsalsa20poly1305/public_key_spec.rb