X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Funit%2Fplugins%2Fmcollective%2Faggregate%2Faverage_spec.rb;fp=spec%2Funit%2Fplugins%2Fmcollective%2Faggregate%2Faverage_spec.rb;h=1047d8e8ceef475b0e8c23d63e6bf9d479b89a44;hb=b87d2f4e68281062df1913440ca5753ae63314a9;hp=0000000000000000000000000000000000000000;hpb=ab0ea530b8ac956091f17b104ab2311336cfc250;p=packages%2Fprecise%2Fmcollective.git diff --git a/spec/unit/plugins/mcollective/aggregate/average_spec.rb b/spec/unit/plugins/mcollective/aggregate/average_spec.rb new file mode 100644 index 0000000..1047d8e --- /dev/null +++ b/spec/unit/plugins/mcollective/aggregate/average_spec.rb @@ -0,0 +1,45 @@ +#!/usr/bin/env rspec + +require 'spec_helper' +require File.dirname(__FILE__) + "/../../../../../plugins/mcollective/aggregate/average.rb" + +module MCollective + class Aggregate + describe Average do + describe "#startup_hook" do + it "should set the correct result hash" do + result = Average.new(:test, [], "%d", :test_action) + result.result.should == {:value => 0, :type => :numeric, :output => :test} + result.aggregate_format.should == "%d" + end + + it "should set a defauly aggregate_format if one isn't defined" do + result = Average.new(:test, [], nil, :test_action) + result.aggregate_format.should == "Average of test: %f" + end + end + + describe "#process_result" do + it "should add the reply value to the result hash" do + average = Average.new([:test], [], "%d", :test_action) + average.process_result(1, {:test => 1}) + average.result[:value].should == 1 + end + end + + describe "#summarize" do + it "should calculate the average and return a result class" do + result_obj = mock + result_obj.stubs(:new).returns(:success) + + average = Average.new([:test], [], "%d", :test_action) + average.process_result(10, {:test => 10}) + average.process_result(20, {:test => 20}) + average.stubs(:result_class).returns(result_obj) + average.summarize.should == :success + average.result[:value].should == 15 + end + end + end + end +end