myabc / merb_global

Localization (L10n) and Internationalization (i18n) support for the Merb MVC Framework

This URL has Read+Write access

fbettag (author)
Tue Sep 01 05:33:09 -0700 2009
myabc (committer)
Tue Sep 01 05:33:09 -0700 2009
commit  6e58d387d700322de45dd5fff3f63cd446793c53
tree    33fc4fe028e981f9384dcbbdfc0fa75f4d9dc62a
parent  1ffc3f880a9c3a3edd3d3a57a97f23a1425b4771
merb_global / spec / providers_spec.rb
100644 61 lines (50 sloc) 1.464 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
require 'spec_helper'
 
module TestProviders
  include Merb::Global::Providers
  
  def self.providers_classes
    @@providers_classes
  end
  
  def self.providers_classes=(providers_classes)
    @@providers_classes = providers_classes
  end
  
  def self.clear
    @@providers = {}
    @@providers_classes = {}
  end
end
 
describe Merb::Global::Providers do
  after do
    TestProviders.clear
  end
  
  describe '.[]' do
    it 'should lookup classes' do
      provider = mock
      provider_klass = mock do |klass|
        klass.expects(:new).returns(provider)
      end
      TestProviders.providers_classes = {:test => provider_klass}
      TestProviders[:test].should == provider
    end
    
    it 'should load the provider' do
      provider = 'test'
      provider_path = 'merb_global/test_providers/test'
      TestProviders.expects(:require).with(provider_path)
      class TestProviders::Test; end
      TestProviders[provider] === TestProviders::Test
    end
 
    it 'should create the provider' do
      provider = 'test'
      TestProviders.stubs(:require)
      class TestProviders::Test; end
      TestProviders::Test.expects(:new)
      TestProviders[provider] === TestProviders::Test
    end
  end
  
  describe '.register' do
    it 'should add the provider to hash' do
      provider_class = mock
      TestProviders.register(:test, provider_class)
      TestProviders.providers_classes.should == {:test => provider_class}
    end
  end
end