Commit e50674fe27ed01e7f77546fbb28bd61fe81984ad

Authored by João M. M. da Silva + Alessandro Palmeira
Committed by João M. M. da Silva
1 parent 8f142887

[Mezuro] completed reading fixtures, tests and implementation and fixed

reading_group_test
plugins/mezuro/lib/kalibro/model.rb
... ... @@ -50,7 +50,7 @@ class Kalibro::Model
50 50  
51 51 def save
52 52 begin
53   - self.class.request(save_endpoint, save_action, save_params)
  53 + self.id = self.class.request(save_endpoint, save_action, save_params)
54 54 true
55 55 rescue Exception => exception
56 56 add_error exception
... ...
plugins/mezuro/lib/kalibro/reading.rb 0 → 100644
... ... @@ -0,0 +1,17 @@
  1 +class Kalibro::Reading < Kalibro::Model
  2 +
  3 + attr_accessor :id, :label, :grade, :color
  4 +
  5 + def self.find(id)
  6 + new request("Reading", :get_reading, {:reading_id => id})[:reading]
  7 + end
  8 +
  9 + def self.readings_of( group_id )
  10 + request("Reading", :readings_of, {:group_id => group_id})[:reading].to_a.map { |reading| new reading }
  11 + end
  12 +
  13 + def self.reading_of( range_id )
  14 + new request("Reading", :reading_of, {:range_id => range_id} )[:reading]
  15 + end
  16 +
  17 +end
... ...
plugins/mezuro/test/fixtures/reading_fixtures.rb 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +class ReadingFixtures
  2 +
  3 + def self.reading
  4 + Kalibro::Reading.new reading_hash
  5 + end
  6 +
  7 + def self.created_reading # A created object has no id before being sent to kalibro
  8 + Kalibro::Reading.new :label => "Reading Test Label", :grade => 10.5, :color => "AABBCC"
  9 + end
  10 +
  11 + def self.reading_hash
  12 + {:id => 42, :label => "Reading Test Label", :grade => 10.5, :color => "AABBCC" }
  13 + end
  14 +
  15 +end
  16 +
... ...
plugins/mezuro/test/fixtures/reading_group_fixtures.rb
... ... @@ -4,6 +4,10 @@ class ReadingGroupFixtures
4 4 Kalibro::ReadingGroup.new reading_group_hash
5 5 end
6 6  
  7 + def self.created_reading_group # A created object has no id before being sent to kalibro
  8 + Kalibro::ReadingGroup.new :name => "Reading Group Test", :description => "Reading group in the fixtures"
  9 + end
  10 +
7 11 def self.reading_group_hash
8 12 {:id => 42, :name => "Reading Group Test", :description => "Reading group in the fixtures"}
9 13 end
... ...
plugins/mezuro/test/unit/kalibro/reading_group_test.rb
... ... @@ -6,6 +6,7 @@ class ReadingGroupTest &lt; ActiveSupport::TestCase
6 6 def setup
7 7 @hash = ReadingGroupFixtures.reading_group_hash
8 8 @reading_group = ReadingGroupFixtures.reading_group
  9 + @created_reading_group = ReadingGroupFixtures.created_reading_group
9 10 end
10 11  
11 12 should 'create reading group from hash' do
... ... @@ -29,7 +30,7 @@ class ReadingGroupTest &lt; ActiveSupport::TestCase
29 30  
30 31 should 'get all reading groups' do
31 32 Kalibro::ReadingGroup.expects(:request).with("ReadingGroup", :all_reading_groups).returns({:reading_group => [@hash]})
32   - assert_equal @hash[:name], Kalibro::ReadingGroup.all[0].name
  33 + assert_equal @hash[:name], Kalibro::ReadingGroup.all.first.name
33 34 end
34 35  
35 36 should 'get reading group of a metric configuration' do
... ... @@ -39,13 +40,16 @@ class ReadingGroupTest &lt; ActiveSupport::TestCase
39 40 end
40 41  
41 42 should 'return true when reading group is saved successfully' do
42   - Kalibro::ReadingGroup.expects(:request).with("ReadingGroup", :save_reading_group, {:reading_group => @reading_group.to_hash}).returns(-1)
43   - assert @reading_group.save
  43 + id_from_kalibro = 1
  44 + Kalibro::ReadingGroup.expects(:request).with("ReadingGroup", :save_reading_group, {:reading_group => @created_reading_group.to_hash}).returns(id_from_kalibro)
  45 + assert @created_reading_group.save
  46 + assert_equal id_from_kalibro, @created_reading_group.id
44 47 end
45 48  
46 49 should 'return false when reading group is not saved successfully' do
47   - Kalibro::ReadingGroup.expects(:request).with("ReadingGroup", :save_reading_group, {:reading_group => @reading_group.to_hash}).raises(Exception.new)
48   - assert !(@reading_group.save)
  50 + Kalibro::ReadingGroup.expects(:request).with("ReadingGroup", :save_reading_group, {:reading_group => @created_reading_group.to_hash}).raises(Exception.new)
  51 + assert !(@created_reading_group.save)
  52 + assert_nil @created_reading_group.id
49 53 end
50 54  
51 55 should 'destroy reading group by id' do
... ...
plugins/mezuro/test/unit/kalibro/reading_test.rb 0 → 100644
... ... @@ -0,0 +1,57 @@
  1 +require "test_helper"
  2 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/reading_fixtures"
  3 +
  4 +class ReadingTest < ActiveSupport::TestCase
  5 +
  6 + def setup
  7 + @hash = ReadingFixtures.reading_hash
  8 + @reading = ReadingFixtures.reading
  9 + @created_reading = ReadingFixtures.created_reading
  10 + end
  11 +
  12 + should 'create reading from hash' do
  13 + assert_equal @hash[:label], Kalibro::Reading.new(@hash).label
  14 + end
  15 +
  16 + should 'convert reading to hash' do
  17 + assert_equal @hash, @reading.to_hash
  18 + end
  19 +
  20 + should 'get reading' do
  21 + Kalibro::Reading.expects(:request).with("Reading", :get_reading, {:reading_id => @hash[:id]}).
  22 + returns({:reading => @hash})
  23 + assert_equal @hash[:label], Kalibro::Reading.find(@hash[:id]).label
  24 + end
  25 +
  26 + should 'get reading of a range' do
  27 + range_id = 31
  28 + Kalibro::Reading.expects(:request).with("Reading", :reading_of, {:range_id => range_id}).returns({:reading => @hash})
  29 + assert_equal @hash[:label], Kalibro::Reading.reading_of(range_id).label
  30 + end
  31 +
  32 + should 'get readings of a reading group' do
  33 + reading_group_id = 31
  34 + Kalibro::Reading.expects(:request).with("Reading", :readings_of, {:group_id => reading_group_id}).returns({:reading => [@hash]})
  35 + assert_equal @hash[:label], Kalibro::Reading.readings_of(reading_group_id).first.label
  36 + end
  37 +
  38 + should 'return true when reading is saved successfully' do
  39 + id_from_kalibro = 1
  40 + Kalibro::Reading.expects(:request).with("Reading", :save_reading, {:reading => @created_reading.to_hash}).returns(id_from_kalibro)
  41 + assert @created_reading.save
  42 + assert_equal id_from_kalibro, @created_reading.id
  43 + end
  44 +
  45 + should 'return false when reading is not saved successfully' do
  46 + Kalibro::Reading.expects(:request).with("Reading", :save_reading, {:reading => @created_reading.to_hash}).raises(Exception.new)
  47 + assert !(@created_reading.save)
  48 + assert_nil @created_reading.id
  49 + end
  50 +
  51 + should 'destroy reading by id' do
  52 + Kalibro::Reading.expects(:request).with("Reading", :delete_reading, {:reading_id => @reading.id})
  53 + @reading.destroy
  54 + end
  55 +
  56 +end
  57 +
... ...