Sha256: c6fb5947d895d707fbc4764767efdf8fa6380cf7046f8552a744f30088b62d2b

Contents?: true

Size: 1.07 KB

Versions: 2

Compression:

Stored size: 1.07 KB

Contents

require 'spec_helper'

# load 'award_bonus' procedure into the database
require 'award_bonus'

describe "Award bonus" do
  include EmployeeFactory

  [ [1000,  1234.55,  0.10,   1123.46],
    [nil,   1234.56,  0.10,   123.46],
    [1000,  1234.54,  0.10,   1123.45]
  ].each do |salary, sales_amt, commission_pct, result|
    it "should calculate base salary #{salary.inspect} + sales amount #{sales_amt} * commission percentage #{commission_pct} = salary #{result.inspect}" do
      employee = create_employee(
        :commission_pct => commission_pct,
        :salary => salary
      )
      plsql.award_bonus(employee[:employee_id], sales_amt)
      get_employee(employee[:employee_id])[:salary].should == result
    end
  end

  it "should raise ORA-06510 exception if commission percentage is missing" do
    salary, sales_amt, commission_pct = 1000,  1234.55,  NULL
    employee = create_employee(
      :commission_pct => commission_pct,
      :salary => salary
    )
    lambda {
      plsql.award_bonus(employee[:employee_id], sales_amt)
    }.should raise_error(/ORA-06510/)
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby-plsql-spec-0.2.1 examples/spec/award_bonus_spec.rb
ruby-plsql-spec-0.1.0 examples/spec/award_bonus_spec.rb