write tests to have 100% coverage again

This commit is contained in:
Benjamin Neff 2015-11-30 00:28:20 +01:00
parent 9d999918e5
commit 06695610dd
4 changed files with 50 additions and 29 deletions

View file

@ -82,8 +82,6 @@ module DiasporaFederation
type.first.entity_name.to_sym type.first.entity_name.to_sym
elsif type.ancestors.include?(Entity) elsif type.ancestors.include?(Entity)
type.entity_name.to_sym type.entity_name.to_sym
else
raise ArgumentError, "unknown type #{type} supplied"
end end
end end

View file

@ -9,7 +9,7 @@ module Validation
# @option params [Fixnum] :maximum maximum allowed id count # @option params [Fixnum] :maximum maximum allowed id count
def initialize(params) def initialize(params)
unless params.include?(:maximum) && params[:maximum].is_a?(Fixnum) unless params.include?(:maximum) && params[:maximum].is_a?(Fixnum)
raise "A number has to be specified for :maximum" raise ArgumentError, "A number has to be specified for :maximum"
end end
@params = params @params = params

View file

@ -49,11 +49,19 @@ RSA
describe ".verify_signature" do describe ".verify_signature" do
it "verifies correct signature" do it "verifies correct signature" do
expect(Signing.verify_signature(hash, signature, pkey)).to be_truthy expect(Signing.verify_signature(hash, signature, pkey.public_key)).to be_truthy
end end
it "doesn't verify wrong signature" do it "doesn't verify wrong signature" do
expect(Signing.verify_signature(hash, "false signature==", pkey)).to be_falsy expect(Signing.verify_signature(hash, "false signature==", pkey.public_key)).to be_falsy
end
it "doesn't verify when signature is missing" do
expect(Signing.verify_signature(hash, nil, pkey.public_key)).to be_falsy
end
it "doesn't verify when public key is missing" do
expect(Signing.verify_signature(hash, signature, nil)).to be_falsy
end end
end end
end end

View file

@ -8,36 +8,51 @@ describe Validation::Rule::DiasporaIdCount do
}.to raise_error ArgumentError }.to raise_error ArgumentError
end end
it "validates less ids" do it "requires a integer as parameter" do
validator = Validation::Validator.new(OpenStruct.new(ids: id_str)) validator = Validation::Validator.new({})
validator.rule(:ids, diaspora_id_count: {maximum: 5}) [nil, "", 5.5].each do |val|
expect {
expect(validator).to be_valid validator.rule(:ids, diaspora_id_count: {maximum: val})
expect(validator.errors).to be_empty }.to raise_error ArgumentError, "A number has to be specified for :maximum"
end
end end
it "fails for less but non ids" do it "has an error key" do
bad_str = "user@example.com;i am a weird diaspora id @@@ ### 12345;shouldnt be reached by a rule" expect(described_class.new(maximum: 5).error_key).to eq(:diaspora_id_count)
validator = Validation::Validator.new(OpenStruct.new(ids: bad_str))
validator.rule(:ids, diaspora_id_count: {maximum: 5})
expect(validator).not_to be_valid
expect(validator.errors).to include(:ids)
end end
it "validates exactly as many ids" do context "validation" do
validator = Validation::Validator.new(OpenStruct.new(ids: id_str)) it "validates less ids" do
validator.rule(:ids, diaspora_id_count: {maximum: 3}) validator = Validation::Validator.new(OpenStruct.new(ids: id_str))
validator.rule(:ids, diaspora_id_count: {maximum: 5})
expect(validator).to be_valid expect(validator).to be_valid
expect(validator.errors).to be_empty expect(validator.errors).to be_empty
end end
it "fails for too many ids" do it "fails for less but non ids" do
validator = Validation::Validator.new(OpenStruct.new(ids: id_str)) bad_str = "user@example.com;i am a weird diaspora id @@@ ### 12345;shouldnt be reached by a rule"
validator.rule(:ids, diaspora_id_count: {maximum: 1}) validator = Validation::Validator.new(OpenStruct.new(ids: bad_str))
validator.rule(:ids, diaspora_id_count: {maximum: 5})
expect(validator).not_to be_valid expect(validator).not_to be_valid
expect(validator.errors).to include(:ids) expect(validator.errors).to include(:ids)
end
it "validates exactly as many ids" do
validator = Validation::Validator.new(OpenStruct.new(ids: id_str))
validator.rule(:ids, diaspora_id_count: {maximum: 3})
expect(validator).to be_valid
expect(validator.errors).to be_empty
end
it "fails for too many ids" do
validator = Validation::Validator.new(OpenStruct.new(ids: id_str))
validator.rule(:ids, diaspora_id_count: {maximum: 1})
expect(validator).not_to be_valid
expect(validator.errors).to include(:ids)
end
end end
end end