Sha256: cfa24713d9247cacc233e25ca27cc5c361386880a00dedc70637babb93011752
Contents?: true
Size: 1.98 KB
Versions: 1
Compression:
Stored size: 1.98 KB
Contents
require 'spec_helper' require 'aggrobot/sql_functions' module Aggrobot describe SqlFunctions do before do module SqlFunctions ROUNDING_DIGITS = 2 end end describe '.sql_attr' do it 'returns an escaped sql attribute' do expect(SqlFunctions.desc('attr')).to eq 'attr desc' end end describe '.count' do it 'get SQL Sum' do expect(SqlFunctions.count('attr')).to eq 'COUNT(attr)' end end describe '.unique_count' do it 'gets distinct COUNT' do expect(SqlFunctions.unique_count('attr')).to eq 'COUNT(DISTINCT attr)' end end describe '.max' do it 'gets max' do expect(SqlFunctions.max('attr')).to eq 'MAX(attr)' end end describe '.max' do it 'gets min' do expect(SqlFunctions.min('attr')).to eq 'MIN(attr)' end end describe '.sum' do it 'gets sum' do expect(SqlFunctions.sum('attr')).to eq 'SUM(attr)' end end describe '.avg' do it 'gets avg' do expect(SqlFunctions.avg('attr')).to eq "ROUND(AVG(attr), #{SqlFunctions::ROUNDING_DIGITS})" end end describe '.group_collect' do it 'does group concat' do expect(SqlFunctions.group_collect('attr')).to eq 'GROUP_CONCAT(DISTINCT attr)' end end describe '.percent' do it 'calculate percent' do expect(SqlFunctions.percent('attr', 100)).to eq "ROUND((100*100.0)/attr, #{SqlFunctions::ROUNDING_DIGITS})" end it 'calculate percent with default params' do expect(SqlFunctions.percent('attr')).to eq "ROUND((COUNT(*)*100.0)/attr, #{SqlFunctions::ROUNDING_DIGITS})" end end describe '.mysql' do it 'multiplies' do expect(SqlFunctions.multiply('attr', 100, 2)).to eq 'ROUND(attr*100, 2)' end end describe '.divide' do it 'divides' do expect(SqlFunctions.divide('attr', 100, 2)).to eq 'ROUND(attr/100, 2)' end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aggrobot-0.0.2 | spec/unit/aggrobot/sql_functions_spec.rb |