Sha256: a70d0202d9604e537b6e08eac5d1ce4e061a09745248650d4e30c96853160e37

Contents?: true

Size: 1.66 KB

Versions: 2

Compression:

Stored size: 1.66 KB

Contents

# -*- encoding: utf-8 -*-
require 'spec_helper'

describe CodiceFiscale do
  describe '#calculate' do
    before do
      subject.config.city_code = nil
      subject.config.country_code = nil
    end

    it 'returns the expected code' do
      # Please note that the following are completely made-up data
      [
        [{:name => 'mario', :surname => 'rossi', :gender => :male, :birthdate => Date.new(1987, 1, 1), :province_code => 'lc', :city_name => 'Abbadia Lariana'}, "RSSMRA87A01A005V"],
        [{:name => "Marco", :surname => "Rossi", :gender => :male, :birthdate => Date.new(1983, 5, 3), :city_name => "Oggiono", :province_code => "LC"}, "RSSMRC83E03G009W"],
        [{:name => "John", :surname => "Smith", :gender => :male, :birthdate => Date.new(1988, 5, 3), :country_name => "Francia"}, "SMTJHN88E03Z110R"],
        [{:name => "John", :surname => "Smith", :gender => :male, :birthdate => Date.new(1988, 5, 3), :country_name => "France"}, "SMTJHN88E03Z110R"],
        [{:name => "John", :surname => "Smith", :gender => :male, :birthdate => Date.new(1988, 5, 3), :country_name => "Sao Tomé e Principe"}, "SMTJHN88E03Z341A"],
        [{:name => "Marco", :surname => "Rossi", :gender => :male, :birthdate => Date.new(1983, 5, 3), :city_name => "Forlì", :province_code =>"FC"}, "RSSMRC83E03D704X"],
      ].each do |row|
        params, expected_code = row[0], row[1]
        expect(subject.calculate(params)).to eq expected_code
      end
    end

    context 'when params are not valid' do
      let(:invalid_attributes) { {:name => ''} }

      it 'raises an error' do
        expect { subject.calculate(invalid_attributes) }.to raise_error(ArgumentError)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
codice-fiscale-1.0.1 spec/lib/codice_fiscale_spec.rb
codice-fiscale-1.0.0 spec/lib/codice_fiscale_spec.rb