Commit 0d44cd8b217da7ba0f7720b2e0607839e2cc6090

Authored by Caio Salgado + Alessandro Palmeira
Committed by Paulo Meireles
1 parent 140932c0

[Mezuro] fixed fixtures and moved files

plugins/mezuro/lib/kalibro/client/project_result_client.rb
... ... @@ -1,46 +0,0 @@
1   -class Kalibro::Client::ProjectResultClient
2   -
3   - # TODO test this
4   - def self.last_result(project_name)
5   - new.last_result(project_name)
6   - end
7   -
8   - def initialize
9   - @port = Kalibro::Client::Port.new('ProjectResult')
10   - end
11   -
12   - def has_results_for(project_name)
13   - @port.request(:has_results_for, {:project_name => project_name})[:has_results]
14   - end
15   -
16   - def has_results_before(project_name, date)
17   - @port.request(:has_results_before, {:project_name => project_name, :date => date})[:has_results]
18   - end
19   -
20   - def has_results_after(project_name, date)
21   - @port.request(:has_results_after, {:project_name => project_name, :date => date})[:has_results]
22   - end
23   -
24   - def first_result(project_name)
25   - hash = @port.request(:get_first_result_of, {:project_name => project_name})[:project_result]
26   - Kalibro::Entities::ProjectResult.from_hash(hash)
27   - end
28   -
29   - def last_result(project_name)
30   - hash = @port.request(:get_last_result_of, {:project_name => project_name})[:project_result]
31   - Kalibro::Entities::ProjectResult.from_hash(hash)
32   - end
33   -
34   - def first_result_after(project_name, date)
35   - request_body = {:project_name => project_name, :date => date}
36   - hash = @port.request(:get_first_result_after, request_body)[:project_result]
37   - Kalibro::Entities::ProjectResult.from_hash(hash)
38   - end
39   -
40   - def last_result_before(project_name, date)
41   - request_body = {:project_name => project_name, :date => date}
42   - hash = @port.request(:get_last_result_before, request_body)[:project_result]
43   - Kalibro::Entities::ProjectResult.from_hash(hash)
44   - end
45   -
46   -end
47 0 \ No newline at end of file
plugins/mezuro/lib/kalibro/entities/module_node.rb
... ... @@ -1,21 +0,0 @@
1   -class Kalibro::Entities::ModuleNode < Kalibro::Entities::Entity
2   -
3   - attr_accessor :module, :child
4   -
5   - def module=(value)
6   - @module = to_entity(value, Kalibro::Entities::Module)
7   - end
8   -
9   - def child=(value)
10   - @child = to_entity_array(value, Kalibro::Entities::ModuleNode)
11   - end
12   -
13   - def children
14   - @child
15   - end
16   -
17   - def children=(children)
18   - @child = children
19   - end
20   -
21   -end
plugins/mezuro/lib/kalibro/entities/project_result.rb
... ... @@ -1,76 +0,0 @@
1   -class Kalibro::Entities::ProjectResult < Kalibro::Entities::Entity
2   -
3   - attr_accessor :project, :date, :load_time, :analysis_time, :source_tree, :collect_time
4   -
5   - def project=(value)
6   - @project = to_entity(value, Kalibro::Entities::Project)
7   - end
8   -
9   - def date=(value)
10   - @date = value
11   - @date = DateTime.parse(value) if value.is_a?(String)
12   - end
13   -
14   - def load_time=(value)
15   - @load_time = value.to_i
16   - end
17   -
18   - def collect_time=(value)
19   - @collect_time = value.to_i
20   - end
21   -
22   - def analysis_time=(value)
23   - @analysis_time = value.to_i
24   - end
25   -
26   - def source_tree=(value)
27   - @source_tree = to_entity(value, Kalibro::Entities::ModuleNode)
28   - end
29   -
30   - def formatted_load_time
31   - format_milliseconds(@load_time)
32   - end
33   -
34   - def formatted_analysis_time
35   - format_milliseconds(@analysis_time)
36   - end
37   -
38   - def format_milliseconds(value)
39   - seconds = value.to_i/1000
40   - hours = seconds/3600
41   - seconds -= hours * 3600
42   - minutes = seconds/60
43   - seconds -= minutes * 60
44   - "#{format(hours)}:#{format(minutes)}:#{format(seconds)}"
45   - end
46   -
47   - def format(amount)
48   - ('%2d' % amount).sub(/\s/, '0')
49   - end
50   -
51   - def node_of(module_name)
52   - if module_name.nil? or module_name == project.name
53   - node = source_tree
54   - else
55   - node = get_node(module_name)
56   - end
57   - end
58   -
59   - def get_node(module_name)
60   - path = Kalibro::Entities::Module.parent_names(module_name)
61   - parent = @source_tree
62   - path.each do |node_name|
63   - parent = get_leaf_from(parent, node_name)
64   - end
65   - return parent
66   - end
67   -
68   - private
69   - def get_leaf_from(node, module_name)
70   - node.children.each do |child_node|
71   - return child_node if child_node.module.name == module_name
72   - end
73   - nil
74   - end
75   -
76   -end
plugins/mezuro/lib/kalibro/model.rb
... ... @@ -64,5 +64,10 @@ class Kalibro::Model
64 64 def self.is_valid?(field)
65 65 field.to_s[0] != '@' and field != :attributes! and (field.to_s =~ /xsi/).nil?
66 66 end
  67 +
  68 + def self.date_with_milliseconds(date)
  69 + milliseconds = "." + (date.sec_fraction * 60 * 60 * 24 * 1000).to_s
  70 + date.to_s[0..18] + milliseconds + date.to_s[19..-1]
  71 + end
67 72  
68 73 end
... ...
plugins/mezuro/lib/kalibro/module_node.rb 0 → 100644
... ... @@ -0,0 +1,21 @@
  1 +class Kalibro::ModuleNode < Kalibro::Model
  2 +
  3 + attr_accessor :module, :child
  4 +
  5 + def module=(value)
  6 + @module = Kalibro::Module.to_object value
  7 + end
  8 +
  9 + def child=(value)
  10 + @child = Kalibro::ModuleNode.to_objects_array value
  11 + end
  12 +
  13 + def children
  14 + @child
  15 + end
  16 +
  17 + def children=(children)
  18 + @child = children
  19 + end
  20 +
  21 +end
... ...
plugins/mezuro/lib/kalibro/module_result.rb
... ... @@ -61,11 +61,4 @@ class Kalibro::ModuleResult &lt; Kalibro::Model
61 61 @compound_metric_with_error = compound_metrics_with_error
62 62 end
63 63  
64   - private
65   -
66   - def self.date_with_milliseconds(date)
67   - milliseconds = "." + (date.sec_fraction * 60 * 60 * 24 * 1000).to_s
68   - date.to_s[0..18] + milliseconds + date.to_s[19..-1]
69   - end
70   -
71 64 end
... ...
plugins/mezuro/lib/kalibro/project_result.rb
... ... @@ -3,35 +3,35 @@ class Kalibro::ProjectResult &lt; Kalibro::Model
3 3 attr_accessor :project, :date, :load_time, :analysis_time, :source_tree, :collect_time
4 4  
5 5 def self.last_result(project_name)
6   - last_result = request(:get_last_result_of, {:project_name => project_name})[:project_result]
  6 + last_result = request('ProjectResult', :get_last_result_of, {:project_name => project_name})[:project_result]
7 7 new last_result
8 8 end
9 9  
10 10 def self.first_result(project_name)
11   - first_result = request(:get_first_result_of, {:project_name => project_name})[:project_result]
  11 + first_result = request('ProjectResult',:get_first_result_of, {:project_name => project_name})[:project_result]
12 12 new first_result
13 13 end
14 14  
15 15 def self.first_result_after(project_name, date)
16   - first_result_after = request(:get_first_result_after, {:project_name => project_name, :date => date})[:project_result]
  16 + first_result_after = request('ProjectResult',:get_first_result_after, {:project_name => project_name, :date => date})[:project_result]
17 17 new first_result_after
18 18 end
19 19  
20 20 def self.last_result_before(project_name, date)
21   - last_result_before = request(:get_last_result_before, {:project_name => project_name, :date => date})[:project_result]
  21 + last_result_before = request('ProjectResult',:get_last_result_before, {:project_name => project_name, :date => date})[:project_result]
22 22 new last_result_before
23 23 end
24 24  
25 25 def self.has_results?(project_name)
26   - request(:has_results_for, {:project_name => project_name})[:has_results]
  26 + request('ProjectResult',:has_results_for, {:project_name => project_name})[:has_results]
27 27 end
28 28  
29 29 def self.has_results_before?(project_name, date)
30   - request(:has_results_before, {:project_name => project_name, :date => date})[:has_results]
  30 + request('ProjectResult',:has_results_before, {:project_name => project_name, :date => date})[:has_results]
31 31 end
32 32  
33 33 def self.has_results_after?(project_name, date)
34   - request(:has_results_after, {:project_name => project_name, :date => date})[:has_results]
  34 + request('ProjectResult',:has_results_after, {:project_name => project_name, :date => date})[:has_results]
35 35 end
36 36  
37 37 def project=(value)
... ... @@ -54,9 +54,8 @@ class Kalibro::ProjectResult &lt; Kalibro::Model
54 54 @analysis_time = value.to_i
55 55 end
56 56  
57   - #FIXME mudar a atribuição depois que refatorarmos o module_result client
58 57 def source_tree=(value)
59   - @source_tree = value.kind_of?(Hash) ? Kalibro::Entities::ModuleNode.from_hash(value) : value
  58 + @source_tree = value.kind_of?(Hash) ? Kalibro::ModuleNode.new(value) : value
60 59 end
61 60  
62 61 def formatted_load_time
... ... @@ -88,9 +87,8 @@ class Kalibro::ProjectResult &lt; Kalibro::Model
88 87 end
89 88 end
90 89  
91   -#FIXME mudar a atribuição depois que refatorarmos o module_result client
92 90 def get_node(module_name)
93   - path = Kalibro::Entities::Module.parent_names(module_name)
  91 + path = Kalibro::Module.parent_names(module_name)
94 92 parent = @source_tree
95 93 path.each do |node_name|
96 94 parent = get_leaf_from(parent, node_name)
... ... @@ -100,17 +98,6 @@ class Kalibro::ProjectResult &lt; Kalibro::Model
100 98  
101 99 private
102 100  
103   - def self.project_result
104   - endpoint = "ProjectResult"
105   - service_address = YAML.load_file("#{RAILS_ROOT}/plugins/mezuro/service.yaml")
106   - Savon::Client.new("#{service_address}#{endpoint}Endpoint/?wsdl")
107   - end
108   -
109   - def self.request(action, request_body = nil)
110   - response = project_result.request(:kalibro, action) { soap.body = request_body }
111   - response.to_hash["#{action}_response".to_sym]
112   - end
113   -
114 101 def get_leaf_from(node, module_name)
115 102 node.children.each do |child_node|
116 103 return child_node if child_node.module.name == module_name
... ...
plugins/mezuro/test/fixtures/module_fixtures.rb
1 1 class ModuleFixtures
2 2  
3 3 def self.module
4   - entity = Kalibro::Module.new module_hash
  4 + Kalibro::Module.new module_hash
5 5 end
6 6  
7 7 def self.module_hash
8   - {:name => 'Qt-Calculator', :granularity => 'APPLICATION'}
  8 + {
  9 + :name => 'Qt-Calculator',
  10 + :granularity => 'APPLICATION'
  11 + }
9 12 end
10 13  
11 14 end
... ...
plugins/mezuro/test/fixtures/module_node_fixtures.rb
  1 +require File.dirname(__FILE__) + '/module_fixtures'
  2 +
1 3 class ModuleNodeFixtures
2 4  
3   - def self.qt_calculator_tree
4   - node = Kalibro::Entities::ModuleNode.new
5   - node.module = ModuleFixtures.qt_calculator
6   - org_node = new_node('org', 'PACKAGE')
7   - org_node.children = [new_node('org.Window', 'CLASS')]
8   - node.children = [org_node, new_node('Dialog', 'CLASS'), new_node('main', 'CLASS')]
9   - node
  5 + def self.module_node
  6 + Kalibro::ModuleNode.new module_node_hash
10 7 end
11 8  
12   - def self.qt_calculator_tree_hash
13   - {:module => ModuleFixtures.qt_calculator_hash,
14   - :child => [
15   - {:module => {:name => 'org', :granularity => 'PACKAGE'},
16   - :child => [{:module => {:name => 'org.Window', :granularity => 'CLASS'}}]},
17   - {:module => {:name => 'Dialog', :granularity => 'CLASS'}},
18   - {:module => {:name => 'main', :granularity => 'CLASS'}}
19   - ]
  9 + def self.module_node_hash
  10 + {
  11 + :module => ModuleFixtures.module_hash,:attributes! => {:module => {
  12 + 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
  13 + 'xsi:type' => 'kalibro:moduleXml' }},
  14 + :child => [{
  15 + :module => {
  16 + :name => 'org',
  17 + :granularity => 'PACKAGE'
  18 + },:attributes! => {:module => {
  19 + 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
  20 + 'xsi:type' => 'kalibro:moduleXml' }},
  21 + :child => [{
  22 + :module => {
  23 + :name => 'org.Window',
  24 + :granularity => 'CLASS'
  25 + },:attributes! => {:module => {
  26 + 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
  27 + 'xsi:type' => 'kalibro:moduleXml' }}
  28 + }]
  29 + },{
  30 + :module => {
  31 + :name => 'Dialog',
  32 + :granularity => 'CLASS'
  33 + },:attributes! => {:module => {
  34 + 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
  35 + 'xsi:type' => 'kalibro:moduleXml' }}
  36 + },{
  37 + :module => {
  38 + :name => 'main',
  39 + :granularity => 'CLASS'
  40 + },:attributes! => {:module => {
  41 + 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
  42 + 'xsi:type' => 'kalibro:moduleXml' }}
  43 + }]
20 44 }
21 45 end
22 46  
23   - private
24   -
25   - def self.new_node(name, granularity)
26   - the_module = Kalibro::Entities::Module.new
27   - the_module.name = name
28   - the_module.granularity = granularity
29   - node = Kalibro::Entities::ModuleNode.new
30   - node.module = the_module
31   - node
32   - end
33   -
34 47 end
... ...
plugins/mezuro/test/fixtures/project_result_fixtures.rb
... ... @@ -4,21 +4,19 @@ require File.dirname(__FILE__) + &#39;/module_result_fixtures&#39;
4 4  
5 5 class ProjectResultFixtures
6 6  
7   - def self.qt_calculator
8   - result = Kalibro::Entities::ProjectResult.new
9   - result.project = ProjectFixtures.project
10   - result.date = ModuleResultFixtures.create.date
11   - result.load_time = 14878
12   - result.analysis_time = 1022
13   - result.source_tree = ModuleNodeFixtures.qt_calculator_tree
14   - result.collect_time = 14878
15   - result
  7 + def self.project_result
  8 + Kalibro::ProjectResult.new project_result_hash
16 9 end
17 10  
18   - def self.qt_calculator_hash
19   - {:project => ProjectFixtures.project_hash, :date => ModuleResultFixtures.create_hash[:date],
20   - :load_time => 14878, :analysis_time => 1022, :source_tree => ModuleNodeFixtures.qt_calculator_tree_hash,
21   - :collect_time => 14878}
  11 + def self.project_result_hash
  12 + {
  13 + :project => ProjectFixtures.project_hash,
  14 + :date => ModuleResultFixtures.module_result_hash[:date],
  15 + :load_time => 14878,
  16 + :analysis_time => 1022,
  17 + :source_tree => ModuleNodeFixtures.module_node_hash,
  18 + :collect_time => 14878
  19 + }
22 20 end
23 21  
24 22 end
... ...
plugins/mezuro/test/unit/kalibro/client/project_result_client_test.rb
... ... @@ -1,58 +0,0 @@
1   -require "test_helper"
2   -
3   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_result_fixtures"
4   -
5   -class ProjectResultClientTest < ActiveSupport::TestCase
6   -
7   - def setup
8   - @port = mock
9   - Kalibro::Client::Port.expects(:new).with('ProjectResult').returns(@port)
10   - @client = Kalibro::Client::ProjectResultClient.new
11   -
12   - @result = ProjectResultFixtures.qt_calculator
13   - @project_name = @result.project.name
14   - @date = @result.date
15   - @flag = DateTime.now.sec % 2 == 0
16   -
17   - @request = {:project_name => @project_name}
18   - @request_with_date = {:project_name => @project_name, :date => @date}
19   - @flag_response = {:has_results => @flag}
20   - @result_response = {:project_result => @result.to_hash}
21   - end
22   -
23   - should 'retrieve if project has results' do
24   - @port.expects(:request).with(:has_results_for, @request).returns(@flag_response)
25   - assert_equal @flag, @client.has_results_for(@project_name)
26   - end
27   -
28   - should 'retrieve if project has results before date' do
29   - @port.expects(:request).with(:has_results_before, @request_with_date).returns(@flag_response)
30   - assert_equal @flag, @client.has_results_before(@project_name, @date)
31   - end
32   -
33   - should 'retrieve if project has results after date' do
34   - @port.expects(:request).with(:has_results_after, @request_with_date).returns(@flag_response)
35   - assert_equal @flag, @client.has_results_after(@project_name, @date)
36   - end
37   -
38   - should 'get first result of project' do
39   - @port.expects(:request).with(:get_first_result_of, @request).returns(@result_response)
40   - assert_equal @result, @client.first_result(@project_name)
41   - end
42   -
43   - should 'get last result of project' do
44   - @port.expects(:request).with(:get_last_result_of, @request).returns(@result_response)
45   - assert_equal @result, @client.last_result(@project_name)
46   - end
47   -
48   - should 'get first result of project after date' do
49   - @port.expects(:request).with(:get_first_result_after, @request_with_date).returns(@result_response)
50   - assert_equal @result, @client.first_result_after(@project_name, @date)
51   - end
52   -
53   - should 'get last result of project before date' do
54   - @port.expects(:request).with(:get_last_result_before, @request_with_date).returns(@result_response)
55   - assert_equal @result, @client.last_result_before(@project_name, @date)
56   - end
57   -
58   -end
59 0 \ No newline at end of file
plugins/mezuro/test/unit/kalibro/entities/module_node_test.rb
... ... @@ -1,20 +0,0 @@
1   -require "test_helper"
2   -
3   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_node_fixtures"
4   -
5   -class ModuleNodeTest < ActiveSupport::TestCase
6   -
7   - def setup
8   - @hash = ModuleNodeFixtures.qt_calculator_tree_hash
9   - @node = ModuleNodeFixtures.qt_calculator_tree
10   - end
11   -
12   - should 'create module node from hash' do
13   - assert_equal @node, Kalibro::Entities::ModuleNode.from_hash(@hash)
14   - end
15   -
16   - should 'convert children hash to array of ModuleNode' do
17   - assert_equal @hash, @node.to_hash
18   - end
19   -
20   -end
21 0 \ No newline at end of file
plugins/mezuro/test/unit/kalibro/entities/project_result_test.rb
... ... @@ -1,49 +0,0 @@
1   -require "test_helper"
2   -
3   -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_result_fixtures"
4   -
5   -class ProjectResultTest < ActiveSupport::TestCase
6   -
7   - def setup
8   - @hash = ProjectResultFixtures.qt_calculator_hash
9   - @result = ProjectResultFixtures.qt_calculator
10   - end
11   -
12   - should 'create project result from hash' do
13   - assert_equal @result, Kalibro::Entities::ProjectResult.from_hash(@hash)
14   - end
15   -
16   - should 'convert project result to hash' do
17   - assert_equal @hash, @result.to_hash
18   - end
19   -
20   - should 'retrieve formatted load time' do
21   - assert_equal '00:00:14', @result.formatted_load_time
22   - end
23   -
24   - should 'retrieve formatted analysis time' do
25   - assert_equal '00:00:01', @result.formatted_analysis_time
26   - end
27   -
28   - should 'retrieve module node' do
29   - node = @result.get_node("main")
30   - assert_equal @hash[:source_tree][:child][2], node.to_hash
31   - end
32   -
33   - should 'retrive complex module' do
34   - node = @result.get_node("org.Window")
35   - assert_equal @hash[:source_tree][:child][0][:child].first, node.to_hash
36   - end
37   -
38   - should 'return source tree node when nil is given' do
39   - assert_equal @hash[:source_tree], @result.node_of(nil).to_hash
40   - end
41   -
42   - should 'return source tree node when project name is given' do
43   - assert_equal @hash[:source_tree], @result.node_of(@result.project.name).to_hash
44   - end
45   -
46   - should 'return correct node when module name is given' do
47   - assert_equal @hash[:source_tree][:child][2], @result.node_of("main").to_hash
48   - end
49   -end
plugins/mezuro/test/unit/kalibro/module_node_test.rb 0 → 100644
... ... @@ -0,0 +1,19 @@
  1 +require "test_helper"
  2 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_node_fixtures"
  3 +
  4 +class ModuleNodeTest < ActiveSupport::TestCase
  5 +
  6 + def setup
  7 + @hash = ModuleNodeFixtures.module_node_hash
  8 + @node = ModuleNodeFixtures.module_node
  9 + end
  10 +
  11 + should 'create module node from hash' do
  12 + assert_equal( @node.child[0].module.name, Kalibro::ModuleNode.new(@hash).child[0].module.name)
  13 + end
  14 +
  15 + should 'convert children hash to array of ModuleNode' do
  16 + assert_equal @hash, @node.to_hash
  17 + end
  18 +
  19 +end
... ...
plugins/mezuro/test/unit/kalibro/project_result_test.rb 0 → 100644
... ... @@ -0,0 +1,98 @@
  1 +require "test_helper"
  2 +
  3 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_result_fixtures"
  4 +
  5 +class ProjectResultTest < ActiveSupport::TestCase
  6 +
  7 + def setup
  8 + @hash = ProjectResultFixtures.project_result_hash
  9 + @project_result = ProjectResultFixtures.project_result
  10 +
  11 +# Kalibro::Client::Port.expects(:new).with('ProjectResult').returns(@port)
  12 +# @client = Kalibro::Client::ProjectResultClient.new
  13 +
  14 + @project_name = @project_result.project.name
  15 + @date = @project_result.date
  16 +# @flag = DateTime.now.sec % 2 == 0
  17 +
  18 + @request = {:project_name => @project_name}
  19 + @request_with_date = {:project_name => @project_name, :date => @date}
  20 +# @flag_response = {:has_results => @flag}
  21 + @result_response = {:project_result => @project_result.to_hash}
  22 + end
  23 +
  24 + should 'get last result' do
  25 + Kalibro::ProjectResult.expects(:request).with('ProjectResult',:get_last_result_of, @request).returns(@result_response)
  26 + assert_equal @project_result.analysis_time , Kalibro::ProjectResult.last_result(@project_name).analysis_time
  27 + end
  28 +=begin
  29 + should 'create project result from hash' do
  30 + assert_equal @result, Kalibro::ProjectResult.from_hash(@hash)
  31 + end
  32 +
  33 + should 'convert project result to hash' do
  34 + assert_equal @hash, @result.to_hash
  35 + end
  36 +
  37 + should 'retrieve formatted load time' do
  38 + assert_equal '00:00:14', @result.formatted_load_time
  39 + end
  40 +
  41 + should 'retrieve formatted analysis time' do
  42 + assert_equal '00:00:01', @result.formatted_analysis_time
  43 + end
  44 +
  45 + should 'retrieve module node' do
  46 + node = @result.get_node("main")
  47 + assert_equal @hash[:source_tree][:child][2], node.to_hash
  48 + end
  49 +
  50 + should 'retrive complex module' do
  51 + node = @result.get_node("org.Window")
  52 + assert_equal @hash[:source_tree][:child][0][:child].first, node.to_hash
  53 + end
  54 +
  55 + should 'return source tree node when nil is given' do
  56 + assert_equal @hash[:source_tree], @result.node_of(nil).to_hash
  57 + end
  58 +
  59 + should 'return source tree node when project name is given' do
  60 + assert_equal @hash[:source_tree], @result.node_of(@result.project.name).to_hash
  61 + end
  62 +
  63 + should 'return correct node when module name is given' do
  64 + assert_equal @hash[:source_tree][:child][2], @result.node_of("main").to_hash
  65 + end
  66 +
  67 + should 'retrieve if project has results' do
  68 + @port.expects(:request).with(:has_results_for, @request).returns(@flag_response)
  69 + assert_equal @flag, @client.has_results_for(@project_name)
  70 + end
  71 +
  72 + should 'retrieve if project has results before date' do
  73 + @port.expects(:request).with(:has_results_before, @request_with_date).returns(@flag_response)
  74 + assert_equal @flag, @client.has_results_before(@project_name, @date)
  75 + end
  76 +
  77 + should 'retrieve if project has results after date' do
  78 + @port.expects(:request).with(:has_results_after, @request_with_date).returns(@flag_response)
  79 + assert_equal @flag, @client.has_results_after(@project_name, @date)
  80 + end
  81 +
  82 + should 'get first result of project' do
  83 + @port.expects(:request).with(:get_first_result_of, @request).returns(@result_response)
  84 + assert_equal @result, @client.first_result(@project_name)
  85 + end
  86 +
  87 +
  88 + should 'get first result of project after date' do
  89 + @port.expects(:request).with(:get_first_result_after, @request_with_date).returns(@result_response)
  90 + assert_equal @result, @client.first_result_after(@project_name, @date)
  91 + end
  92 +
  93 + should 'get last result of project before date' do
  94 + @port.expects(:request).with(:get_last_result_before, @request_with_date).returns(@result_response)
  95 + assert_equal @result, @client.last_result_before(@project_name, @date)
  96 + end
  97 +=end
  98 +end
... ...