Sha256: 659d7c0fea0f8c2554f535d382208403cf81986d744f23f28282178eb7035060

Contents?: true

Size: 1.17 KB

Versions: 22

Compression:

Stored size: 1.17 KB

Contents

require 'spec_helper'

describe Postmark::Inflector do
  describe ".to_postmark" do
    it 'converts rubyish underscored format to camel cased symbols accepted by the Postmark API' do
      expect(subject.to_postmark(:foo_bar)).to eq 'FooBar'
      expect(subject.to_postmark(:_bar)).to eq 'Bar'
      expect(subject.to_postmark(:really_long_long_long_long_symbol)).to eq 'ReallyLongLongLongLongSymbol'
      expect(subject.to_postmark(:foo_bar_1)).to eq 'FooBar1'
    end

    it 'accepts strings as well' do
      expect(subject.to_postmark('foo_bar')).to eq 'FooBar'
    end

    it 'acts idempotentely' do
      expect(subject.to_postmark('FooBar')).to eq 'FooBar'
    end
  end

  describe ".to_ruby" do
    it 'converts camel cased symbols returned by the Postmark API to underscored Ruby symbols' do
      expect(subject.to_ruby('FooBar')).to eq :foo_bar
      expect(subject.to_ruby('LongTimeAgoInAFarFarGalaxy')).to eq :long_time_ago_in_a_far_far_galaxy
      expect(subject.to_ruby('MessageID')).to eq :message_id
    end

    it 'acts idempotentely' do
      expect(subject.to_ruby(:foo_bar)).to eq :foo_bar
      expect(subject.to_ruby(:foo_bar_1)).to eq :foo_bar_1
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
postmark-1.25.1 spec/unit/postmark/inflector_spec.rb
postmark-1.25.0 spec/unit/postmark/inflector_spec.rb
postmark-1.24.1 spec/unit/postmark/inflector_spec.rb
postmark-1.24.0 spec/unit/postmark/inflector_spec.rb
postmark-1.23.0 spec/unit/postmark/inflector_spec.rb
postmark-1.22.3 spec/unit/postmark/inflector_spec.rb
postmark-1.22.2 spec/unit/postmark/inflector_spec.rb
postmark-1.22.1 spec/unit/postmark/inflector_spec.rb
postmark-1.22.0 spec/unit/postmark/inflector_spec.rb
postmark-1.21.8 spec/unit/postmark/inflector_spec.rb
postmark-1.21.7 spec/unit/postmark/inflector_spec.rb
postmark-1.21.6 spec/unit/postmark/inflector_spec.rb
postmark-1.21.5 spec/unit/postmark/inflector_spec.rb
postmark-1.21.4 spec/unit/postmark/inflector_spec.rb
postmark-1.21.3 spec/unit/postmark/inflector_spec.rb
postmark-1.21.2 spec/unit/postmark/inflector_spec.rb
postmark-1.21.1 spec/unit/postmark/inflector_spec.rb
postmark-1.21.0 spec/unit/postmark/inflector_spec.rb
postmark-1.20.0 spec/unit/postmark/inflector_spec.rb
postmark-1.19.2 spec/unit/postmark/inflector_spec.rb