public
Description: Localization (L10n) and Internationalization (i18n) support for the Merb MVC Framework
Homepage: http://merbglobal.piechotka.com.pl/
Clone URL: git://github.com/myabc/merb_global.git
Click here to lend your support to: merb_global and make a donation at www.pledgie.com !
lastobelus (author)
Thu Apr 16 21:02:33 -0700 2009
uzytkownik (committer)
Wed May 06 10:56:13 -0700 2009
commit  1ffc3f880a9c3a3edd3d3a57a97f23a1425b4771
tree    5514c2a38d6ac465ab00c21cac9ab27ba1de629a
parent  c39349f99ab21a2e3394da2d95a08c229133f6d2
merb_global / spec / numeric_providers_spec.rb
100644 83 lines (72 sloc) 2.247 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
require 'spec_helper'
 
class TestNumericProvider
  include Merb::Global::NumericProviders::Base
end
 
module Merb::Global::NumericProviders
  def self.clear
    @@provider = nil
    @@providers = {}
    @@providers_classes = {}
  end
  def self.provider= provider
    @@provider = provider
  end
end
 
describe Merb::Global::NumericProviders do
  before do
    Merb::Global::NumericProviders.clear
  end
  describe '.provider' do
    it 'should return fork as default' do
      provider = mock
      Merb::Global.expects(:config).with(:numeric_provider, 'fork').
                   returns('fork')
      Merb::Global::NumericProviders.expects(:[]).with('fork').returns(provider)
      Merb::Global::NumericProviders.provider.should == provider
    end
 
    it 'should return the name of the provider in config' do
      provider = mock
      Merb::Global.expects(:config).with(:numeric_provider, 'fork').
                   returns('name')
      Merb::Global::NumericProviders.expects(:[]).with('name').
                                     returns(provider)
      Merb::Global::NumericProviders.provider.should == provider
    end
 
    it 'should return cached provider' do
      provider = mock
      Merb::Global::NumericProviders.provider = provider
      Merb::Global::NumericProviders.provider.should == provider
    end
  end
end
 
describe Merb::Global::NumericProviders::Base do
  before do
    @provider = TestNumericProvider.new
  end
 
  describe '.localize' do
    it 'should raise NoMethodError' do
      lambda do
        @provider.localize 'en', 1.0
      end.should raise_error(NoMethodError)
    end
  end
end
 
describe 'Merb::Global.NumericProvider' do
  it 'should create a module' do
    mod = Module.new
    Module.expects(:new).returns(mod)
    Merb::Global.NumericProvider(:test).should == mod
  end
  
  it 'should include base only' do
    Module.any_instance.expects(:include).
                        with(Merb::Global::NumericProviders::Base)
    Merb::Global.NumericProvider(:test1)
  end
 
  it 'should register when include' do
    klass = Class.new
    Merb::Global::NumericProviders.expects(:register).with(:test2, klass)
    klass.instance_eval do
      include Merb::Global.NumericProvider(:test2)
    end
  end
end