Commit 049fef28bee83befca0862fdd1794e76a26e0caa

Authored by Gabriela Navarro
1 parent 998c6298
Exists in master

Fix type to return a string instead of the class. Add tests for person

Signed-off-by: Arthur Del Esposte <arthurmde@gmail.com>
Signed-off-by: Gabriela Navarro <navarro1703@gmail.com>
Showing 2 changed files with 64 additions and 1 deletions   Show diff stats
lib/ext/profile.rb
... ... @@ -3,7 +3,7 @@ require_dependency &#39;profile&#39;
3 3 class Profile
4 4 def attr_to_hash
5 5 attrs = {
6   - "type" => self.type,
  6 + "type" => self.type.to_s,
7 7 "data" => {
8 8 "id" => self.id,
9 9 "identifier" => self.identifier,
... ... @@ -12,6 +12,7 @@ class Profile
12 12 }
13 13 }
14 14  
  15 + attrs['articles-count'] = self.articles.count
15 16 attrs['articles'] = []
16 17 self.articles.each do |article|
17 18 attrs['articles'] << article.attr_to_hash
... ...
test/unit/person_test.rb 0 → 100644
... ... @@ -0,0 +1,62 @@
  1 +require File.dirname(__FILE__) + '/../../../../test/test_helper'
  2 +
  3 +class PersonTest < ActiveSupport::TestCase
  4 + def setup
  5 + @john = fast_create(Person, :name => "John Snow")
  6 + @arya = fast_create(Person, :name => "Arya Stark")
  7 + @joffrey = fast_create(Person, :name => "Joffrey Lannister")
  8 +
  9 + @arya.add_friend @john
  10 + @arya.friends.reload
  11 +
  12 + @stark = fast_create(Community, :name => "House Stark")
  13 + @stark.add_member @john
  14 + @stark.add_admin @arya
  15 +
  16 + @lannister = fast_create(Community, :name => "House Lannister")
  17 + @lannister.add_admin @joffrey
  18 +
  19 + @game_of_thrones = fast_create(Community, :name => "Game of Thrones")
  20 + @game_of_thrones.add_member @john
  21 + @game_of_thrones.add_member @arya
  22 + @game_of_thrones.add_member @joffrey
  23 + end
  24 +
  25 + should 'get the attributes of Joffrey Lannister' do
  26 + attributes = @joffrey.attr_to_hash
  27 +
  28 + assert_equal attributes["type"], "Person"
  29 + assert_equal attributes["data"]["name"], "Joffrey Lannister"
  30 +
  31 + assert_equal attributes["articles-count"], 0
  32 +
  33 + assert_equal attributes["friends-count"], 0
  34 +
  35 + assert_equal attributes["communities-count"], 2
  36 + end
  37 +
  38 + should 'get friendship information' do
  39 + attributes_joffrey = @joffrey.attr_to_hash
  40 + attributes_arya = @arya.attr_to_hash
  41 +
  42 + assert_equal attributes_joffrey["friends-count"], 0
  43 + assert_equal attributes_arya["friends-count"], 1
  44 + assert_equal attributes_arya["friends"][0]["name"], "John Snow"
  45 + end
  46 +
  47 + should 'get softwares information' do
  48 + @environment = Environment.default
  49 + @environment.enabled_plugins = ['MpogSoftwarePlugin']
  50 + @environment.add_admin(@arya)
  51 + @environment.save
  52 +
  53 + @thrones_the_game = SoftwareInfo.new
  54 + @thrones_the_game.community_id = @game_of_thrones.id
  55 + @thrones_the_game.save
  56 +
  57 + attributes = @john.attr_to_hash
  58 +
  59 + assert_equal attributes["softwares-count"], 1
  60 + assert_equal attributes["softwares"][0]["name"], "Game of Thrones"
  61 + end
  62 +end
... ...