Module: Faktory::Testing

Defined in:
lib/faktory/testing.rb

Class Method Summary collapse

Class Method Details

.__set_test_mode(mode) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/faktory/testing.rb', line 11

def self.__set_test_mode(mode)
  if block_given?
    current_mode = self.__test_mode
    begin
      self.__test_mode = mode
      yield
    ensure
      self.__test_mode = current_mode
    end
  else
    self.__test_mode = mode
  end
end

.__test_modeObject



3
4
5
# File 'lib/faktory/testing.rb', line 3

def self.__test_mode
  @__test_mode
end

.__test_mode=(mode) ⇒ Object



7
8
9
# File 'lib/faktory/testing.rb', line 7

def self.__test_mode=(mode)
  @__test_mode = mode
end

.constantize(str) ⇒ Object



59
60
61
62
63
64
65
66
67
68
# File 'lib/faktory/testing.rb', line 59

def self.constantize(str)
  names = str.split('::')
  names.shift if names.empty? || names.first.empty?

  names.inject(Object) do |constant, name|
    # the false flag limits search for name to under the constant namespace
    # which mimics Rails' behaviour
    constant.const_defined?(name, false) ? constant.const_get(name, false) : constant.const_missing(name)
  end
end

.disable!(&block) ⇒ Object



25
26
27
# File 'lib/faktory/testing.rb', line 25

def self.disable!(&block)
  __set_test_mode(:disable, &block)
end

.disabled?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/faktory/testing.rb', line 47

def self.disabled?
  self.__test_mode == :disable
end

.enabled?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/faktory/testing.rb', line 43

def self.enabled?
  self.__test_mode != :disable
end

.fake!(&block) ⇒ Object



29
30
31
# File 'lib/faktory/testing.rb', line 29

def self.fake!(&block)
  __set_test_mode(:fake, &block)
end

.fake?Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/faktory/testing.rb', line 51

def self.fake?
  self.__test_mode == :fake
end

.inline!(&block) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/faktory/testing.rb', line 33

def self.inline!(&block)
  # Only allow inline testing inside of a block
  # https://github.com/mperham/sidekiq/issues/3495
  unless block_given?
    raise 'Must provide a block to Faktory::Testing.inline!'
  end

  __set_test_mode(:inline, &block)
end

.inline?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/faktory/testing.rb', line 55

def self.inline?
  self.__test_mode == :inline
end