From 83c75a5c6a2a418e562638de40a4e119b1b081aa Mon Sep 17 00:00:00 2001 From: AntonioTerceiro Date: Mon, 28 Jan 2008 15:12:57 +0000 Subject: [PATCH] ActionItem153: adding EnvironmentStatisticsBlock --- app/models/environment_statistics_block.rb | 19 +++++++++++++++++++ test/unit/environment_statistics_block_test.rb | 29 +++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 0 deletions(-) create mode 100644 app/models/environment_statistics_block.rb create mode 100644 test/unit/environment_statistics_block_test.rb diff --git a/app/models/environment_statistics_block.rb b/app/models/environment_statistics_block.rb new file mode 100644 index 0000000..7d98660 --- /dev/null +++ b/app/models/environment_statistics_block.rb @@ -0,0 +1,19 @@ +class EnvironmentStatisticsBlock < Block + + def self.description + _('Statitical overview of your environment.') + end + + def content + users = owner.people.count + enterprises = owner.enterprises.count + + info = [ + n_('One user', '%{num} users', users) % { :num => users }, + n_('One enterprise', '%{num} enterprises', enterprises) % { :num => enterprises} + ] + + content_tag('h3', _('Statistics for %s') % owner.name, :class => 'block-title' ) + content_tag('ul', info.map {|item| content_tag('li', item) }.join("\n")) + end + +end diff --git a/test/unit/environment_statistics_block_test.rb b/test/unit/environment_statistics_block_test.rb new file mode 100644 index 0000000..d4de1a9 --- /dev/null +++ b/test/unit/environment_statistics_block_test.rb @@ -0,0 +1,29 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class EnvironmentStatisticsBlockTest < Test::Unit::TestCase + + should 'inherit from Block' do + assert_kind_of Block, EnvironmentStatisticsBlock.new + end + + should 'describe itself' do + assert_not_equal Block.description, EnvironmentStatisticsBlock.description + end + + should 'generate statistics' do + env = Environment.create!(:name => "My test environment") + user1 = create_user('testuser1', :environment_id => env.id) + user2 = create_user('testuser2', :environment_id => env.id) + + env.enterprises.build(:identifier => 'mytestenterprise', :name => 'My test enterprise').save! + + block = EnvironmentStatisticsBlock.new + env.boxes.first.blocks << block + + content = block.content + + assert_match /One enterprise/, content + assert_match /2 users/, content + end + +end -- libgit2 0.21.2