Class: Remi::Testing::BusinessRules::Tester

Inherits:
Object
  • Object
show all
Defined in:
lib/remi/testing/business_rules.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(job_name) ⇒ Tester

Returns a new instance of Tester.



131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/remi/testing/business_rules.rb', line 131

def initialize(job_name)
  job_class_name = "#{job_name.gsub(/\s/,'')}Job"
  require_job_file(job_class_name)
  @job = Object.const_get(job_class_name).new

  @job_sources = DataSubjectCollection.new
  @job_targets = DataSubjectCollection.new

  @sources = DataSubjectCollection.new
  @targets = DataSubjectCollection.new
  @examples = DataExampleCollection.new
end

Instance Attribute Details

#examplesObject (readonly)

Returns the value of attribute examples.



149
150
151
# File 'lib/remi/testing/business_rules.rb', line 149

def examples
  @examples
end

#jobObject (readonly)

Returns the value of attribute job.



144
145
146
# File 'lib/remi/testing/business_rules.rb', line 144

def job
  @job
end

#job_sourcesObject (readonly)

Returns the value of attribute job_sources.



145
146
147
# File 'lib/remi/testing/business_rules.rb', line 145

def job_sources
  @job_sources
end

#job_targetsObject (readonly)

Returns the value of attribute job_targets.



146
147
148
# File 'lib/remi/testing/business_rules.rb', line 146

def job_targets
  @job_targets
end

#sourcesObject (readonly)

Returns the value of attribute sources.



147
148
149
# File 'lib/remi/testing/business_rules.rb', line 147

def sources
  @sources
end

#targetsObject (readonly)

Returns the value of attribute targets.



148
149
150
# File 'lib/remi/testing/business_rules.rb', line 148

def targets
  @targets
end

Instance Method Details

#add_example(example_name, example_table) ⇒ Object



190
191
192
# File 'lib/remi/testing/business_rules.rb', line 190

def add_example(example_name, example_table)
  @examples.add_example(example_name, example_table)
end

#add_job_source(name) ⇒ Object



158
159
160
161
162
# File 'lib/remi/testing/business_rules.rb', line 158

def add_job_source(name)
  raise "Unknown source #{name} for job" unless @job.methods.include? name.symbolize
  @job_sources.add_subject(name, @job.send(name.symbolize))
  @job.send(name.symbolize).empty_stub_df
end

#add_job_target(name) ⇒ Object



164
165
166
167
# File 'lib/remi/testing/business_rules.rb', line 164

def add_job_target(name)
  raise "Unknown target #{name} for job" unless @job.methods.include? name.symbolize
  @job_targets.add_subject(name, @job.send(name.symbolize))
end

#add_source(name) ⇒ Object



173
174
175
# File 'lib/remi/testing/business_rules.rb', line 173

def add_source(name)
  @sources.add_subject(name, @job.send(name.symbolize))
end

#add_target(name) ⇒ Object



181
182
183
# File 'lib/remi/testing/business_rules.rb', line 181

def add_target(name)
  @targets.add_subject(name, @job.send(name.symbolize))
end

#require_job_file(job_class_name) ⇒ Object



151
152
153
154
155
156
# File 'lib/remi/testing/business_rules.rb', line 151

def require_job_file(job_class_name)
  job_file = Dir["#{Remi::Settings.jobs_dir}/**/*_job.rb"].map do |fname|
    fname if File.basename(fname) == "#{job_class_name.underscore}.rb"
  end.compact.pop
  require job_file
end

#run_transformsObject



194
195
196
# File 'lib/remi/testing/business_rules.rb', line 194

def run_transforms
  @job.execute(:transforms)
end

#set_job_parameter(name, value) ⇒ Object



169
170
171
# File 'lib/remi/testing/business_rules.rb', line 169

def set_job_parameter(name, value)
  @job.params[name.to_sym] = value
end

#sourceObject



177
178
179
# File 'lib/remi/testing/business_rules.rb', line 177

def source
  @sources.only
end

#targetObject



185
186
187
# File 'lib/remi/testing/business_rules.rb', line 185

def target
  @targets.only
end