+++ /dev/null
-#!/usr/bin/env rspec
-
-require 'spec_helper'
-
-module MCollective
- class Aggregate
- describe Base do
- describe "#initialize" do
- it "should set the correct instance variables and call the startup hook" do
- Base.any_instance.expects(:startup_hook).once
- base = Base.new("value", [], "%s%s", "rspec")
- base.name.should == "MCollective::Aggregate::Base"
- base.output_name.should == "value"
- base.aggregate_format.should == "%s%s"
- base.action.should == "rspec"
- end
- end
-
- describe "#startup_hook and #process_result" do
- it "should raise an exception for an unimplemented startup_hook method " do
- expect{
- base = Base.new("value", [], "", "rspec")
- }.to raise_error(RuntimeError, "'startup_hook' method of function class MCollective::Aggregate::Base has not yet been implemented")
- end
-
- it "should raise an exception for an unimplemented process_result method" do
- Base.any_instance.stubs(:startup_hook)
- base = Base.new("value", [], "", "rspec")
- expect{
- base.process_result
- }.to raise_error(RuntimeError,"'process_result' method of function class MCollective::Aggregate::Base has not yet been implemented")
- end
- end
-
- describe "summarize" do
- it "should raise and exception if the result type has not been set" do
- Base.any_instance.stubs(:startup_hook)
- base = Base.new("value", [], "", "rspec")
- expect{
- base.summarize
- }.to raise_error(RuntimeError, "Result type is not set while trying to summarize aggregate function results")
- end
-
- it "should return the correct result class if result type has been set" do
- result_object = mock
- result_object.stubs(:new)
-
- Base.any_instance.stubs(:startup_hook)
- base = Base.new("value", [], "", "rspec")
- base.result[:type] = :result_type
- base.expects(:result_class).with(:result_type).returns(result_object)
- base.summarize
- end
- end
- end
- end
-end