spec/controller_spec.rb in SimControl-0.1.2 vs spec/controller_spec.rb in SimControl-0.1.3

- old
+ new

@@ -70,17 +70,29 @@ instance.simulation klass, "script", {} expect(instance.current_simulation).to be(simulation_instance) end end + describe "#create_scenario" do + it "passes the parameters to Scenario.new and returns the new scenario instance" do + scenario_klass = double("Scenario") + a_scenario = double("ScenarioInstance") + instance = SimControl::Controller.new("", "", "", "", scenario_klass: scenario_klass) + scenario_klass.should_receive(:new).with("a-command", a_hash: 1).and_return(a_scenario) + expect(instance.create_scenario("a-command", a_hash: 1)).to eq(a_scenario) + end + end + describe "#scenario" do it "stores all provided scenarios in all_scenarios" do - scenario_a = {foo: 1} - scenario_b = {foo: 2} + scenario_a = double("Scenario") + scenario_b = double("Scenario") instance = SimControl::Controller.new("", "", "", "") - instance.simulate scenario_a - instance.simulate scenario_b + instance.stub(:create_scenario).with("a-command", a_hash: 1).and_return(scenario_a) + instance.stub(:create_scenario).with("b-command", b_hash: 2).and_return(scenario_b) + instance.simulate "a-command", a_hash: 1 + instance.simulate "b-command", b_hash: 2 expect(instance.all_scenarios).to include(scenario_a) expect(instance.all_scenarios).to include(scenario_b) end end @@ -89,10 +101,10 @@ let(:scenario_a) { {setting: "a-value"} } let(:scenario_b) { {setting: "another-value"} } let(:seeds) { [1, 2] } let(:simulation_instance) { double("simulation_instance") } let(:hosts) { double("Hosts") } - subject { SimControl::Controller.new(hostname, "", "", "", hosts: hosts).tap do |c| + subject { SimControl::Controller.new(hostname, "", "", "", hosts: hosts).tap do |c| c.stub(:seeds).and_return(seeds) c.stub(:current_simulation).and_return(simulation_instance) end }