Sha256: 22ca876d1fa20409be1f35bd8d15904b1e93a06e72c490d7a3535f69d48b25fb

Contents?: true

Size: 1.47 KB

Versions: 1

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

1 entries across 1 versions & 1 rubygems

Version Path
tbpgr_utils-0.0.151 spec/open_classes/module_spec.rb