Sha256: 89104a3982e54d039e6ba6aea4e3b555462e3f7898d791b560f9573368715f0d

Contents?: true

Size: 1.47 KB

Versions: 136

Compression:

Stored size: 1.47 KB

Contents

# encoding: utf-8
require 'spec_helper'
require 'open_classes/module'

describe Module do
  context :alias_methods do
    class Hoge
      def hoge
        'hoge'
      end

      alias_methods [:hige, :hege, :huge], :hoge
    end
    cases = [
      {
        case_no: 1,
        case_title: 'valid case',
        klass: Hoge,
        target: :hoge,
        inputs: [:hige, :hege, :huge],
        expected: 'hoge',
      },
      {
        case_no: 2,
        case_title: 'not Array error case',
        klass: Hoge,
        expect_error: true,
      },
    ]

    cases.each do |c|
      it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
        begin
          case_before c

          # -- given --
          hoge = c[:klass].new

          # -- when --
          if c[:expect_error]
            lambda do
              class Hige
                def hige
                  'hige'
                end
                alias_methods 'invalid type', :hige
              end
            end.should raise_error(TypeError)
            next
          end

          c[:inputs].each do |m|
            actual = hoge.send m
            # -- then --
            expect(actual).to eq(c[:expected])
          end
        ensure
          case_after c
        end
      end

      def case_before(c)
        # implement each case before
      end

      def case_after(c)
        # implement each case after
      end
    end
  end
end

Version data entries

136 entries across 136 versions & 1 rubygems

Version Path
tbpgr_utils-0.0.150 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.149 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.148 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.147 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.146 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.145 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.144 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.143 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.142 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.141 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.140 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.139 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.138 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.137 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.136 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.135 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.134 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.133 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.132 spec/open_classes/module_spec.rb
tbpgr_utils-0.0.131 spec/open_classes/module_spec.rb