Sha256: d34d0fb49bb90a67b37e9005619951f37c9443d28127b92e25e1e96b786ece9d

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

require 'spec_helper'

RSpec.describe String do
  describe '#to_measurement' do
    describe 'with valid quantity' do
      subject { '3' }
      specify { expect(subject.to_measurement).to eq Measurement.new(3) }
    end

    describe 'with valid quantity and unit' do
      subject { '3 dozen' }
      specify { expect(subject.to_measurement).to eq Measurement.new(3, :dozen) }
    end

    describe 'with valid quantity and invalid unit' do
      subject { '3 people' }
      specify { expect { subject.to_measurement }.to raise_error(ArgumentError, "Invalid unit: 'people'") }
    end

    describe 'with invalid input' do
      subject { 'foobar' }
      specify { expect { subject.to_measurement }.to raise_error(ArgumentError, "Invalid unit: 'foobar'") }
    end
  end

  describe '#to_unit' do
    describe 'with valid unit' do
      subject { 'dozen' }
      specify { expect(subject.to_unit).to eq Measurement::Unit[:dozen] }
    end

    describe 'with invalid unit' do
      subject { 'person' }
      specify { expect { subject.to_unit }.to raise_error(ArgumentError, "Invalid unit: 'person'") }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ruby-measurement-1.3.0 spec/ruby-measurement/core_ext/string_spec.rb