| validate required attributes in ReportCache - reportable - Fork of reportable r… | |
| Log | |
| Files | |
| Refs | |
| README | |
| --- | |
| commit 9a0e5ad1403a13890c482901cfbf6dc9c8ee1e09 | |
| parent b026d0c5c59126e57f28e5405c04c9505671a955 | |
| Author: Marco Otte-Witte <[email protected]> | |
| Date: Wed, 24 Mar 2010 21:58:17 +0100 | |
| validate required attributes in ReportCache | |
| Diffstat: | |
| M lib/saulabs/reportable/report_cach… | 7 +++++++ | |
| M spec/classes/report_cache_spec.rb | 85 +++++++++++++++++++++++++++++… | |
| 2 files changed, 92 insertions(+), 0 deletions(-) | |
| --- | |
| diff --git a/lib/saulabs/reportable/report_cache.rb b/lib/saulabs/reportable/re… | |
| @@ -9,6 +9,13 @@ module Saulabs | |
| set_table_name :reportable_cache | |
| + validates_presence_of :model_name | |
| + validates_presence_of :report_name | |
| + validates_presence_of :grouping | |
| + validates_presence_of :aggregation | |
| + validates_presence_of :value | |
| + validates_presence_of :reporting_period | |
| + | |
| self.skip_time_zone_conversion_for_attributes = [:reporting_period] | |
| # Clears the cache for the specified +klass+ and +report+ | |
| diff --git a/spec/classes/report_cache_spec.rb b/spec/classes/report_cache_spec… | |
| @@ -6,6 +6,91 @@ describe Saulabs::Reportable::ReportCache do | |
| @report = Saulabs::Reportable::Report.new(User, :registrations, :limit => … | |
| end | |
| + describe 'validations' do | |
| + | |
| + before do | |
| + @report_cache = Saulabs::Reportable::ReportCache.new( | |
| + :model_name => User.name, | |
| + :report_name => 'registrations', | |
| + :grouping => 'date', | |
| + :aggregation => 'count', | |
| + :value => 1.0, | |
| + :reporting_period => '2070/03/23' | |
| + ) | |
| + end | |
| + | |
| + it 'should succeed when all required attributes are set' do | |
| + @report_cache.should be_valid | |
| + end | |
| + | |
| + it 'should not succeed when no model_name is set' do | |
| + @report_cache.model_name = nil | |
| + | |
| + @report_cache.should_not be_valid | |
| + end | |
| + | |
| + it 'should not succeed when a blank model_name is set' do | |
| + @report_cache.model_name = '' | |
| + | |
| + @report_cache.should_not be_valid | |
| + end | |
| + | |
| + it 'should not succeed when no report_name is set' do | |
| + @report_cache.report_name = nil | |
| + | |
| + @report_cache.should_not be_valid | |
| + end | |
| + | |
| + it 'should not succeed when a blank report_name is set' do | |
| + @report_cache.report_name = '' | |
| + | |
| + @report_cache.should_not be_valid | |
| + end | |
| + | |
| + it 'should not succeed when no grouping is set' do | |
| + @report_cache.grouping = nil | |
| + | |
| + @report_cache.should_not be_valid | |
| + end | |
| + | |
| + it 'should not succeed when a blank grouping is set' do | |
| + @report_cache.grouping = '' | |
| + | |
| + @report_cache.should_not be_valid | |
| + end | |
| + | |
| + it 'should not succeed when no aggregation is set' do | |
| + @report_cache.aggregation = nil | |
| + | |
| + @report_cache.should_not be_valid | |
| + end | |
| + | |
| + it 'should not succeed when a blank aggregation is set' do | |
| + @report_cache.aggregation = '' | |
| + | |
| + @report_cache.should_not be_valid | |
| + end | |
| + | |
| + it 'should not succeed when no value is set' do | |
| + @report_cache.value = nil | |
| + | |
| + @report_cache.should_not be_valid | |
| + end | |
| + | |
| + it 'should not succeed when no reporting_period is set' do | |
| + @report_cache.reporting_period = nil | |
| + | |
| + @report_cache.should_not be_valid | |
| + end | |
| + | |
| + it 'should not succeed when a blank reporting_period is set' do | |
| + @report_cache.reporting_period = '' | |
| + | |
| + @report_cache.should_not be_valid | |
| + end | |
| + | |
| + end | |
| + | |
| describe '.clear_for' do | |
| it 'should delete all entries in the cache for the klass and report name' … |