spec/trema/features-reply_spec.rb in trema-0.2.2.1 vs spec/trema/features-reply_spec.rb in trema-0.2.3

- old
+ new

@@ -1,8 +1,6 @@ # -# Author: Yasuhito Takamiya <yasuhito@gmail.com> -# # Copyright (C) 2008-2012 NEC Corporation # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License, version 2, as # published by the Free Software Foundation. @@ -20,33 +18,69 @@ require File.join( File.dirname( __FILE__ ), "..", "spec_helper" ) require "trema" -describe FeaturesReply, ".new( VALID OPTIONS )" do - subject { FeaturesReply.new( :datapath_id => 123, - :transaction_id => 1234, - :n_buffers => 256, - :n_tables => 2, - :capabilities => 135, - :actions => 2047, - :ports => ports - ) - } - its( :datapath_id ) { should == 123 } - its( :transaction_id ) { should == 1234 } - its( :n_buffers ) { should == 256 } - its( :n_tables ) { should == 2 } - its( :capabilities ) { should == 135 } - its( :actions ) { should == 2047 } - let( :ports ) { [ mock( "port #0" ), mock( "port #1" ), mock( "port #2" ) ] } - its( :ports ) { subject.size.should == 3 } -end +module Trema + describe FeaturesReply, ".new" do + it { expect { subject }.to raise_error( ArgumentError ) } + end -describe FeaturesReply, ".new( MANDATORY OPTIONS MISSING)" do - it "should raise ArgumentError" do - expect { subject }.to raise_error( ArgumentError ) + describe FeaturesReply, ".new(options...)" do + subject { + valid_options = { + :datapath_id => 123, + :transaction_id => 1234, + :n_buffers => 256, + :n_tables => 2, + :capabilities => 135, + :actions => 2047, + :ports => [ "port #0", "port #1", "port #2" ] + } + FeaturesReply.new( valid_options ) + } + + its( :datapath_id ) { should == 123 } + its( :transaction_id ) { should == 1234 } + its( :xid ) { should == 1234 } + its( :n_buffers ) { should == 256 } + its( :n_tables ) { should == 2 } + its( :capabilities ) { should == 135 } + its( :actions ) { should == 2047 } + its( :ports ) { subject.size.should == 3 } + end + + + describe FeaturesReply, ".new(options...) (No :datapath_id)" do + subject { + FeaturesReply.new( { + # :datapath_id => 123, + :transaction_id => 1234, + :n_buffers => 256, + :n_tables => 2, + :capabilities => 135, + :actions => 2047, + :ports => [ "port #0", "port #1", "port #2" ] + } ) + } + it { expect { subject }.to raise_error( ArgumentError, ":datapath_id is a mandatory option" ) } + end + + + describe FeaturesReply, ".new(options...) (No :transaction_id)" do + subject { + FeaturesReply.new( { + :datapath_id => 123, + # :transaction_id => 1234, + :n_buffers => 256, + :n_tables => 2, + :capabilities => 135, + :actions => 2047, + :ports => [ "port #0", "port #1", "port #2" ] + } ) + } + it { expect { subject }.to raise_error( ArgumentError, ":transaction_id is a mandatory option" ) } end end ### Local variables: