althor880-activerecord-activesalesforce-adapter 2.3.5 → 2.3.6

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -12,7 +12,6 @@ begin
12
12
  gemspec.add_dependency('rails', '>= 2.3.3')
13
13
  gemspec.add_dependency('builder', '>= 1.2.4')
14
14
  gemspec.add_dependency('xmlparser', '>= 0.6')
15
- gemspec.add_dependency('facets', '>= 2.4')
16
15
 
17
16
  end
18
17
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.3.5
1
+ 2.3.6
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{althor880-activerecord-activesalesforce-adapter}
8
- s.version = "2.3.5"
8
+ s.version = "2.3.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Doug Chasman", "Luigi Montanez", "Senthil Nayagam", "Justin Ball", "Jesse Hallett", "Andrew Freeberg"]
12
- s.date = %q{2009-11-24}
12
+ s.date = %q{2010-02-25}
13
13
  s.email = %q{althor880@gmail.com}
14
14
  s.extra_rdoc_files = [
15
15
  "README"
@@ -36,6 +36,7 @@ Gem::Specification.new do |s|
36
36
  "lib/rforce/binding.rb",
37
37
  "lib/rforce/method_keys.rb",
38
38
  "lib/rforce/soap_pullable.rb",
39
+ "lib/rforce/soap_response.rb",
39
40
  "lib/rforce/soap_response_expat.rb",
40
41
  "lib/rforce/soap_response_hpricot.rb",
41
42
  "lib/rforce/soap_response_rexml.rb",
@@ -67,26 +68,26 @@ Gem::Specification.new do |s|
67
68
  s.summary = %q{ActiveSalesforce (ASF) is a Rails connection adapter that provides direct access to Salesforce.com hosted data and metadata via the ActiveRecord model layer. Objects, fields, and relationships are all auto surfaced as active record attributes and rels.}
68
69
  s.test_files = [
69
70
  "test/unit",
71
+ "test/unit/config.yml",
70
72
  "test/unit/basic_test.rb",
73
+ "test/unit/recorded_test_case.rb",
71
74
  "test/unit/recorded_results",
72
- "test/unit/recorded_results/AsfUnitTestsBasicTest.test_use_default_rule.recording",
73
- "test/unit/recorded_results/AsfUnitTestsBasicTest.test_use_update_mru.recording",
75
+ "test/unit/recorded_results/AsfUnitTestsBasicTest.test_save_a_contact.recording",
76
+ "test/unit/recorded_results/AsfUnitTestsBasicTest.test_create_a_contact.recording",
74
77
  "test/unit/recorded_results/AsfUnitTestsBasicTest.test_master_detail.recording",
78
+ "test/unit/recorded_results/AsfUnitTestsBasicTest.test_add_notes_to_contact.recording",
79
+ "test/unit/recorded_results/AsfUnitTestsBasicTest.test_assignment_rule_id.recording",
80
+ "test/unit/recorded_results/AsfUnitTestsBasicTest.test_count_contacts.recording",
81
+ "test/unit/recorded_results/AsfUnitTestsBasicTest.test_use_update_mru.recording",
82
+ "test/unit/recorded_results/AsfUnitTestsBasicTest.test_get_created_by_from_contact.recording",
75
83
  "test/unit/recorded_results/AsfUnitTestsBasicTest.test_read_all_content_columns.recording",
76
- "test/unit/recorded_results/AsfUnitTestsBasicTest.test_batch_insert.recording",
77
- "test/unit/recorded_results/AsfUnitTestsBasicTest.test_find_a_contact_by_first_name.recording",
78
84
  "test/unit/recorded_results/AsfUnitTestsBasicTest.test_client_id.recording",
79
- "test/unit/recorded_results/AsfUnitTestsBasicTest.test_create_a_contact.recording",
80
- "test/unit/recorded_results/AsfUnitTestsBasicTest.test_find_a_contact_by_id.recording",
81
- "test/unit/recorded_results/AsfUnitTestsBasicTest.test_add_notes_to_contact.recording",
82
85
  "test/unit/recorded_results/AsfUnitTestsBasicTest.test_find_addresses.recording",
86
+ "test/unit/recorded_results/AsfUnitTestsBasicTest.test_find_a_contact_by_first_name.recording",
87
+ "test/unit/recorded_results/AsfUnitTestsBasicTest.test_find_a_contact_by_id.recording",
88
+ "test/unit/recorded_results/AsfUnitTestsBasicTest.test_batch_insert.recording",
83
89
  "test/unit/recorded_results/AsfUnitTestsBasicTest.test_find_a_contact.recording",
84
- "test/unit/recorded_results/AsfUnitTestsBasicTest.test_count_contacts.recording",
85
- "test/unit/recorded_results/AsfUnitTestsBasicTest.test_save_a_contact.recording",
86
- "test/unit/recorded_results/AsfUnitTestsBasicTest.test_get_created_by_from_contact.recording",
87
- "test/unit/recorded_results/AsfUnitTestsBasicTest.test_assignment_rule_id.recording",
88
- "test/unit/config.yml",
89
- "test/unit/recorded_test_case.rb"
90
+ "test/unit/recorded_results/AsfUnitTestsBasicTest.test_use_default_rule.recording"
90
91
  ]
91
92
 
92
93
  if s.respond_to? :specification_version then
@@ -97,17 +98,15 @@ Gem::Specification.new do |s|
97
98
  s.add_runtime_dependency(%q<rails>, [">= 2.3.3"])
98
99
  s.add_runtime_dependency(%q<builder>, [">= 1.2.4"])
99
100
  s.add_runtime_dependency(%q<xmlparser>, [">= 0.6"])
100
- s.add_runtime_dependency(%q<facets>, [">= 2.4"])
101
101
  else
102
102
  s.add_dependency(%q<rails>, [">= 2.3.3"])
103
103
  s.add_dependency(%q<builder>, [">= 1.2.4"])
104
104
  s.add_dependency(%q<xmlparser>, [">= 0.6"])
105
- s.add_dependency(%q<facets>, [">= 2.4"])
106
105
  end
107
106
  else
108
107
  s.add_dependency(%q<rails>, [">= 2.3.3"])
109
108
  s.add_dependency(%q<builder>, [">= 1.2.4"])
110
109
  s.add_dependency(%q<xmlparser>, [">= 0.6"])
111
- s.add_dependency(%q<facets>, [">= 2.4"])
112
110
  end
113
111
  end
112
+
data/lib/rforce.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  =begin
2
- RForce v0.3
3
- Copyright (c) 2005-2008 Ian Dees and contributors
2
+ Copyright (c) 2005-2010 Ian Dees and contributors
4
3
 
5
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
5
  of this software and associated documentation files (the "Software"), to deal
@@ -29,7 +28,7 @@ SOFTWARE.
29
28
  #
30
29
  # Example:
31
30
  #
32
- # binding = RForce::Binding.new 'na1-api.salesforce.com'
31
+ # binding = RForce::Binding.new 'https://www.salesforce.com/services/Soap/u/10.0'
33
32
  # binding.login 'username', 'password'
34
33
  # answer = binding.search(
35
34
  # :searchString =>
@@ -47,37 +46,10 @@ SOFTWARE.
47
46
  # binding.create 'sObject {"xsi:type" => "Opportunity"}' => opportunity
48
47
  #
49
48
 
50
-
51
- require 'net/https'
52
- require 'uri'
53
- require 'zlib'
54
- require 'stringio'
55
-
56
- require 'rubygems'
57
-
58
- gem 'builder', '>= 2.0.0'
59
- require 'builder'
60
-
61
- gem 'facets', '>= 2.4'
62
- require 'facets/openhash'
63
-
64
49
  require 'rforce/binding'
65
- require 'rforce/soap_response_rexml'
66
- require 'rforce/soap_response_hpricot' rescue nil
67
- require 'rforce/soap_response_expat' rescue nil
68
-
50
+ require 'rforce/soap_response'
69
51
 
70
52
  module RForce
71
- # Use the fastest XML parser available.
72
- def self.parser(name)
73
- RForce.const_get(name) rescue nil
74
- end
75
-
76
- SoapResponse =
77
- parser(:SoapResponseExpat) ||
78
- parser(:SoapResponseHpricot) ||
79
- SoapResponseRexml
80
-
81
53
  # Expand Ruby data structures into XML.
82
54
  def expand(builder, args, xmlns = nil)
83
55
  # Nest arrays: [:a, 1, :b, 2] => [[:a, 1], [:b, 2]]
@@ -104,13 +76,12 @@ module RForce
104
76
  # Create an XML element and fill it with this
105
77
  # value's sub-items.
106
78
  case value
107
- when Hash, Array
79
+ when Hash, Array then
108
80
  builder.tag!(key, attributes) do expand builder, value; end
109
81
 
110
- when String
82
+ when String then
111
83
  builder.tag!(key, attributes) { builder.text! value }
112
84
  end
113
85
  end
114
86
  end
115
-
116
87
  end
@@ -1,3 +1,10 @@
1
+ require 'net/https'
2
+ require 'uri'
3
+ require 'zlib'
4
+ require 'stringio'
5
+ require 'builder'
6
+
7
+
1
8
  module RForce
2
9
  # Implements the connection to the SalesForce server.
3
10
  class Binding
@@ -69,7 +76,7 @@ module RForce
69
76
 
70
77
  response = call_remote(:login, [:username, user, :password, password])
71
78
 
72
- raise "Incorrect user name / password [#{response[:Fault][:faultstring]}]" unless response.loginResponse
79
+ raise "Incorrect user name / password [#{response.fault}]" unless response.loginResponse
73
80
 
74
81
  result = response[:loginResponse][:result]
75
82
  @session_id = result[:sessionId]
@@ -84,10 +91,13 @@ module RForce
84
91
  # a hash or (if order is important) an array of alternating
85
92
  # keys and values.
86
93
  def call_remote(method, args)
94
+
95
+ urn, soap_url = block_given? ? yield : ["urn:partner.soap.sforce.com", @url.path]
96
+
87
97
  # Create XML text from the arguments.
88
98
  expanded = ''
89
99
  @builder = Builder::XmlMarkup.new(:target => expanded)
90
- expand(@builder, {method => args}, 'urn:partner.soap.sforce.com')
100
+ expand(@builder, {method => args}, urn)
91
101
 
92
102
  extra_headers = ""
93
103
  extra_headers << (AssignmentRuleHeaderUsingRuleId % assignment_rule_id) if assignment_rule_id
@@ -128,7 +138,7 @@ module RForce
128
138
  end
129
139
 
130
140
  # Send the request to the server and read the response.
131
- response = @server.post2(@url.path, request.lstrip, headers)
141
+ response = @server.post2(soap_url, request.lstrip, headers)
132
142
 
133
143
  # decode if we have encoding
134
144
  content = decode(response)
@@ -142,7 +152,7 @@ module RForce
142
152
  request = encode(request)
143
153
 
144
154
  # Send the request to the server and read the response.
145
- response = @server.post2(@url.path, request.lstrip, headers)
155
+ response = @server.post2(soap_url, request.lstrip, headers)
146
156
 
147
157
  content = decode(response)
148
158
  end
@@ -160,7 +170,7 @@ module RForce
160
170
 
161
171
  # decode gzip
162
172
  case encoding.strip
163
- when 'gzip':
173
+ when 'gzip' then
164
174
  begin
165
175
  gzr = Zlib::GzipReader.new(StringIO.new(response.body))
166
176
  decoded = gzr.read
@@ -1,7 +1,9 @@
1
+ require 'rforce/method_keys'
2
+
1
3
  module RForce
2
4
  module SoapPullable
3
5
  SOAP_ENVELOPE = 'soapenv:Envelope'
4
-
6
+
5
7
  # Split off the local name portion of an XML tag.
6
8
  def local(tag)
7
9
  first, second = tag.split ':'
@@ -10,32 +12,28 @@ module RForce
10
12
  end
11
13
 
12
14
  def tag_start(name, attrs)
13
- tag_name = local name
14
-
15
15
  # For shorter hash keys, we can strip any namespaces of the SOAP
16
16
  # envelope tag from the tags inside it.
17
17
  if name == SOAP_ENVELOPE
18
18
  @namespaces = attrs.keys.grep(/xmlns:/).map {|k| k.split(':').last}
19
19
  return
20
20
  end
21
-
22
- @stack.push OpenHash.new({})
21
+
22
+ @stack.push(MethodHash.new)
23
23
  end
24
-
24
+
25
25
  def text(data)
26
- unless data.nil? || data.strip.empty?
27
- @current_value = "" if @current_value.nil?
28
- @current_value << data
26
+ adding = data.strip.empty? ? nil : data
27
+
28
+ if adding
29
+ @current_value = (@current_value || '') + adding
29
30
  end
30
31
  end
31
-
32
+
32
33
  def tag_end(name)
33
- return if @done
34
+ return if @done || name == SOAP_ENVELOPE
34
35
 
35
36
  tag_name = local name
36
-
37
- return if tag_name == SOAP_ENVELOPE
38
-
39
37
  working_hash = @stack.pop
40
38
 
41
39
  # We are either done or working on a certain depth in the current
@@ -44,16 +42,18 @@ module RForce
44
42
  @parsed = working_hash
45
43
  @done = true
46
44
  return
47
- else
48
- index = @stack.size - 1
49
45
  end
50
46
 
47
+ index = @stack.size - 1
48
+
51
49
  # working_hash and @current_value have a mutually exclusive relationship.
52
50
  # If the current element doesn't have a value then it means that there
53
51
  # is a nested data structure. In this case then working_hash is populated
54
52
  # and @current_value is nil. Conversely, if @current_value has a value
55
- # then we do not have a nested data sctructure and working_hash will
53
+ # then we do not have a nested data structure and working_hash will
56
54
  # be empty.
55
+ raise 'Parser is confused' unless working_hash.empty? || @current_value.nil?
56
+
57
57
  use_value = working_hash.empty? ? @current_value : working_hash
58
58
  tag_sym = tag_name.to_sym
59
59
  element = @stack[index][tag_sym]
@@ -85,7 +85,7 @@ module RForce
85
85
  # assigned yet.
86
86
  @stack[index][tag_sym] = use_value
87
87
  end
88
-
88
+
89
89
  # We are done with the current tag so reset the data for the next one
90
90
  @current_value = nil
91
91
  end
@@ -0,0 +1,12 @@
1
+ begin; require 'rforce/soap_response_hpricot'; rescue LoadError; end
2
+ begin; require 'rforce/soap_response_expat'; rescue LoadError; end
3
+ require 'rforce/soap_response_rexml'
4
+
5
+
6
+ module RForce
7
+ # Use the fastest XML parser available.
8
+ SoapResponse =
9
+ RForce::const_get(:SoapResponseExpat) ||
10
+ RForce::const_get(:SoapResponseHpricot) ||
11
+ SoapResponseRexml
12
+ end
@@ -4,28 +4,29 @@ require 'rforce/soap_pullable'
4
4
  module RForce
5
5
  class SoapResponseExpat
6
6
  include SoapPullable
7
+ include MethodKeys
7
8
 
8
9
  def initialize(content)
9
10
  @content = content
10
11
  end
11
-
12
- def parse
12
+
13
+ def parse
13
14
  @current_value = nil
14
15
  @stack = []
15
- @parsed = OpenHash.new({})
16
+ @parsed = {}
16
17
  @done = false
17
18
  @namespaces = []
18
19
 
19
20
  XML::Parser.new.parse(@content) do |type, name, data|
20
21
  case type
21
- when XML::Parser::START_ELEM
22
+ when XML::Parser::START_ELEM then
22
23
  tag_start name, data
23
- when XML::Parser::CDATA
24
+ when XML::Parser::CDATA then
24
25
  text data
25
- when XML::Parser::END_ELEM
26
+ when XML::Parser::END_ELEM then
26
27
  tag_end name
27
28
  end
28
-
29
+
29
30
  break if @done
30
31
  end
31
32
 
@@ -1,4 +1,5 @@
1
1
  require 'hpricot'
2
+ require 'cgi'
2
3
 
3
4
 
4
5
  module RForce
@@ -14,46 +15,50 @@ module RForce
14
15
  node = document % 'soapenv:Body'
15
16
  self.class.node_to_ruby node
16
17
  end
17
-
18
+
18
19
  private
19
-
20
+
21
+ def self.unescapeXML(string)
22
+ CGI.unescapeHTML(string).gsub("&apos;", "'")
23
+ end
24
+
20
25
  def self.node_to_ruby(node)
21
26
  # Convert text nodes into simple strings.
22
- children = node.children.reject do |c|
27
+ children = (node.children || []).reject do |c|
23
28
  c.is_a?(Hpricot::Text) && c.to_s.strip.empty?
24
29
  end
25
30
 
26
31
  if node.is_a?(Hpricot::Text)
27
- return node.inner_text
32
+ return SoapResponseHpricot.unescapeXML(node.inspect[1..-2])
28
33
  end
29
-
34
+
30
35
  if children.first.is_a?(Hpricot::Text)
31
- return children.first
36
+ return SoapResponseHpricot.unescapeXML(children.first.inspect[1..-2])
32
37
  end
33
38
 
34
39
  # Convert nodes with children into MethodHashes.
35
- elements = OpenHash.new({})
40
+ elements = MethodHash.new
36
41
 
37
42
  # Add all the element's children to the hash.
38
43
  children.each do |e|
39
44
  next if e.is_a?(Hpricot::Text) && e.to_s.strip.empty?
40
45
  name = e.name
41
-
46
+
42
47
  if name.include? ':'
43
48
  name = name.split(':').last
44
49
  end
45
-
50
+
46
51
  name = name.to_sym
47
52
 
48
53
  case elements[name]
49
54
  # The most common case: unique child element tags.
50
- when NilClass: elements[name] = node_to_ruby(e)
55
+ when NilClass then elements[name] = node_to_ruby(e)
51
56
 
52
57
  # Non-unique child elements become arrays:
53
58
 
54
59
  # We've already created the array: just
55
60
  # add the element.
56
- when Array: elements[name] << node_to_ruby(e)
61
+ when Array then elements[name] << node_to_ruby(e)
57
62
 
58
63
  # We haven't created the array yet: do so,
59
64
  # then put the existing element in, followed
@@ -8,10 +8,11 @@ module RForce
8
8
  # object whose methods correspond to nested XML elements.
9
9
  class SoapResponseRexml
10
10
  include SoapPullable
11
+ include MethodKeys
11
12
 
12
13
  %w(attlistdecl cdata comment doctype doctype_end elementdecl
13
14
  entity entitydecl instruction notationdecl xmldecl).each do |unused|
14
- define_method(unused) {}
15
+ define_method(unused) {|*args|}
15
16
  end
16
17
 
17
18
  def initialize(content)
@@ -22,7 +23,7 @@ module RForce
22
23
  def parse
23
24
  @current_value = nil
24
25
  @stack = []
25
- @parsed = OpenHash.new({})
26
+ @parsed = {}
26
27
  @done = false
27
28
  @namespaces = []
28
29
 
@@ -1,3 +1,3 @@
1
1
  module RForce
2
- VERSION = '0.3'
2
+ VERSION = '0.4'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: althor880-activerecord-activesalesforce-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.5
4
+ version: 2.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Doug Chasman
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2009-11-24 00:00:00 -05:00
17
+ date: 2010-02-25 00:00:00 -05:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -47,16 +47,6 @@ dependencies:
47
47
  - !ruby/object:Gem::Version
48
48
  version: "0.6"
49
49
  version:
50
- - !ruby/object:Gem::Dependency
51
- name: facets
52
- type: :runtime
53
- version_requirement:
54
- version_requirements: !ruby/object:Gem::Requirement
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- version: "2.4"
59
- version:
60
50
  description:
61
51
  email: althor880@gmail.com
62
52
  executables: []
@@ -87,6 +77,7 @@ files:
87
77
  - lib/rforce/binding.rb
88
78
  - lib/rforce/method_keys.rb
89
79
  - lib/rforce/soap_pullable.rb
80
+ - lib/rforce/soap_response.rb
90
81
  - lib/rforce/soap_response_expat.rb
91
82
  - lib/rforce/soap_response_hpricot.rb
92
83
  - lib/rforce/soap_response_rexml.rb
@@ -139,22 +130,22 @@ signing_key:
139
130
  specification_version: 3
140
131
  summary: ActiveSalesforce (ASF) is a Rails connection adapter that provides direct access to Salesforce.com hosted data and metadata via the ActiveRecord model layer. Objects, fields, and relationships are all auto surfaced as active record attributes and rels.
141
132
  test_files:
133
+ - test/unit/config.yml
142
134
  - test/unit/basic_test.rb
143
- - test/unit/recorded_results/AsfUnitTestsBasicTest.test_use_default_rule.recording
144
- - test/unit/recorded_results/AsfUnitTestsBasicTest.test_use_update_mru.recording
135
+ - test/unit/recorded_test_case.rb
136
+ - test/unit/recorded_results/AsfUnitTestsBasicTest.test_save_a_contact.recording
137
+ - test/unit/recorded_results/AsfUnitTestsBasicTest.test_create_a_contact.recording
145
138
  - test/unit/recorded_results/AsfUnitTestsBasicTest.test_master_detail.recording
139
+ - test/unit/recorded_results/AsfUnitTestsBasicTest.test_add_notes_to_contact.recording
140
+ - test/unit/recorded_results/AsfUnitTestsBasicTest.test_assignment_rule_id.recording
141
+ - test/unit/recorded_results/AsfUnitTestsBasicTest.test_count_contacts.recording
142
+ - test/unit/recorded_results/AsfUnitTestsBasicTest.test_use_update_mru.recording
143
+ - test/unit/recorded_results/AsfUnitTestsBasicTest.test_get_created_by_from_contact.recording
146
144
  - test/unit/recorded_results/AsfUnitTestsBasicTest.test_read_all_content_columns.recording
147
- - test/unit/recorded_results/AsfUnitTestsBasicTest.test_batch_insert.recording
148
- - test/unit/recorded_results/AsfUnitTestsBasicTest.test_find_a_contact_by_first_name.recording
149
145
  - test/unit/recorded_results/AsfUnitTestsBasicTest.test_client_id.recording
150
- - test/unit/recorded_results/AsfUnitTestsBasicTest.test_create_a_contact.recording
151
- - test/unit/recorded_results/AsfUnitTestsBasicTest.test_find_a_contact_by_id.recording
152
- - test/unit/recorded_results/AsfUnitTestsBasicTest.test_add_notes_to_contact.recording
153
146
  - test/unit/recorded_results/AsfUnitTestsBasicTest.test_find_addresses.recording
147
+ - test/unit/recorded_results/AsfUnitTestsBasicTest.test_find_a_contact_by_first_name.recording
148
+ - test/unit/recorded_results/AsfUnitTestsBasicTest.test_find_a_contact_by_id.recording
149
+ - test/unit/recorded_results/AsfUnitTestsBasicTest.test_batch_insert.recording
154
150
  - test/unit/recorded_results/AsfUnitTestsBasicTest.test_find_a_contact.recording
155
- - test/unit/recorded_results/AsfUnitTestsBasicTest.test_count_contacts.recording
156
- - test/unit/recorded_results/AsfUnitTestsBasicTest.test_save_a_contact.recording
157
- - test/unit/recorded_results/AsfUnitTestsBasicTest.test_get_created_by_from_contact.recording
158
- - test/unit/recorded_results/AsfUnitTestsBasicTest.test_assignment_rule_id.recording
159
- - test/unit/config.yml
160
- - test/unit/recorded_test_case.rb
151
+ - test/unit/recorded_results/AsfUnitTestsBasicTest.test_use_default_rule.recording