Introduction
Introduction Statistics Contact Development Disclaimer Help
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' …
You are viewing proxied material from jay.scot. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.