1#!/usr/bin/env rspec 2 3require 'spec_helper' 4require File.join(File.dirname(__FILE__), File.join('../../', 'aggregate', 'boolean_summary.rb')) 5 6module MCollective 7 class Aggregate 8 describe Boolean_summary do 9 let(:boolean) { Boolean_summary.new(:test, nil, nil, :test_action) } 10 11 describe '#startup_hook' do 12 it 'should correctly configure the plugin and set default argument values if none are supplied' do 13 boolean.result.should == {:value => {}, :type => :collection, :output => :test} 14 boolean.aggregate_format.should == "%5s = %s" 15 boolean.arguments.should == {true => 'True', false => 'False'} 16 end 17 18 it 'should correctly set a custom format' do 19 bool = Boolean_summary.new(:test, nil, 'rspec', :test_action) 20 bool.aggregate_format.should == 'rspec' 21 end 22 23 it 'should correcrly set custom arguments' do 24 bool = Boolean_summary.new(:test, {true => 'rspec_true', false => 'rspec_false'}, 'rspec', :test_action) 25 end 26 end 27 28 describe '#process_result' do 29 it 'should process a single value' do 30 boolean.expects(:add_value).once 31 boolean.process_result(true, nil) 32 end 33 34 it 'should process multiple values' do 35 boolean.expects(:add_value).times(3) 36 boolean.process_result([true, true, true], nil) 37 end 38 end 39 40 describe '#add_value' do 41 it 'should add the correct truth value to the modified field' do 42 boolean.add_value(true) 43 boolean.add_value(true) 44 boolean.add_value(true) 45 boolean.add_value(false) 46 boolean.add_value(false) 47 boolean.result[:value].should == {'True' => 3, 'False' => 2} 48 end 49 end 50 end 51 end 52end 53