Commit 1e0f1d797916e95662d42264c80c3828162b7285

Authored by João M. M. da Silva
1 parent 25ebd3b1

[Mezuro] Date Module Result and history of a module

plugins/mezuro/lib/kalibro/date_module_result.rb 0 → 100644
@@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
  1 +class Kalibro::DateModuleResult < Kalibro::Model
  2 +
  3 + attr_accessor :date, :module_result
  4 +
  5 + def date=(value)
  6 + @date = value.is_a?(String) ? DateTime.parse(value) : value
  7 + end
  8 +
  9 + def module_result=(value)
  10 + @module_result = Kalibro::ModuleResult.to_object value
  11 + end
  12 +
  13 +end
plugins/mezuro/lib/kalibro/module_result.rb
@@ -19,4 +19,8 @@ class Kalibro::ModuleResult &lt; Kalibro::Model @@ -19,4 +19,8 @@ class Kalibro::ModuleResult &lt; Kalibro::Model
19 @grade = value.to_f 19 @grade = value.to_f
20 end 20 end
21 21
  22 + def self.history_of(module_result_id)
  23 + self.request(:history_of_module, {:module_result_id => module_result_id})[:date_module_result].to_a.map {|date_module_result| Kalibro::DateModuleResult.new date_module_result}
  24 + end
  25 +
22 end 26 end
plugins/mezuro/test/fixtures/date_module_result_fixtures.rb 0 → 100644
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
  1 +require File.dirname(__FILE__) + '/module_result_fixtures'
  2 +
  3 +class DateModuleResultFixtures
  4 +
  5 + def self.date_module_result
  6 + Kalibro::DateModuleResult.new date_module_result_hash
  7 + end
  8 +
  9 + def self.date_module_result_hash
  10 + {
  11 + :date => '2011-10-20T18:26:43.151+00:00',
  12 + :module_result => ModuleResultFixtures.module_result_hash,
  13 + :attributes! =>
  14 + {
  15 + :module_result =>
  16 + {
  17 + "xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
  18 + "xsi:type"=>"kalibro:moduleResultXml"
  19 + }
  20 + }
  21 + }
  22 + end
  23 +
  24 +end
plugins/mezuro/test/unit/kalibro/date_module_result_test.rb 0 → 100644
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
  1 +require "test_helper"
  2 +
  3 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/date_module_result_fixtures"
  4 +
  5 +class DateModuleResultTest < ActiveSupport::TestCase
  6 +
  7 + def setup
  8 + @hash = DateModule.date_module_result_hash
  9 + @date_module_result = DateModuleResultFixtures.date_module_result
  10 + end
  11 +
  12 + should 'create date_module_result from hash' do
  13 + assert_equal @hash[:module_result][:id], Kalibro::DateModuleResult.new(@hash).module_result.id
  14 + end
  15 +
  16 + should 'convert date_module_result to hash' do
  17 + assert_equal @hash, @date_module_result.to_hash
  18 + end
  19 +
  20 +end
plugins/mezuro/test/unit/kalibro/module_result_test.rb
@@ -29,4 +29,9 @@ class ModuleResultTest &lt; ActiveSupport::TestCase @@ -29,4 +29,9 @@ class ModuleResultTest &lt; ActiveSupport::TestCase
29 assert @hash[:id], @module_result.children.first.id 29 assert @hash[:id], @module_result.children.first.id
30 end 30 end
31 31
  32 + should 'return history of a module result' do
  33 + Kalibro::ModuleResult.expects(:request).with(:history_of_module, {:module_result_id => module_id}).returns({:date_module_result => [DateModuleResultFixtures.date_module_result_hash]})
  34 + assert_equal DateModuleResultFixtures.date_module_result_hash[:module_result][:id], Kalibro::ModuleResult.history_of(@module_result.id).first.module_result.id
  35 + end
  36 +
32 end 37 end