@@ -19,41 +19,23 @@ def request_con_id contract: SAMPLE
1919
2020end
2121
22- shared_examples_for "correctly query's the tws" do
23-
24- it "query_contract does not raise an error" do
25- expect { contract . query_contract } . not_to raise_error
26- end
27-
28-
29- it "query_contract resets con_id" do
30- query_contract = contract . query_contract
31- unless contract . sec_type . nil?
32- expect ( contract . con_id ) . to be_zero
33- end
34- end
35- it "verify does intitialize con_id and contract_detail " do
36- contract . verify do | c |
37- expect ( c . con_id ) . not_to be_zero
38- expect ( c . contract_detail ) . to be_a IB ::ContractDetail
39- end
40- end
41-
42- it "verify returns a number" do
43- expect ( contract . verify ) . to be > 0
44- end
45-
46-
22+ RSpec . shared_examples 'a complete Contract Object' do
23+ subject { the_contract }
24+ it_behaves_like 'a valid Contract Object'
25+ it { is_expected . to be_an IB ::Contract }
26+ its ( :contract_detail ) { is_expected . to be_a IB ::ContractDetail }
27+ its ( :primary_exchange ) { is_expected . to be_a String }
4728end
48- shared_examples_for "invalid query of tws" do
49-
50- it "does not verify " do
51- contract . verify
52- expect ( should_log /Not a valid Contract/ ) . to be_truthy
53- end
54-
55- it "returns zero" do
56- expect ( contract . verify ) . to be_zero
57- end
58-
29+ RSpec . shared_examples 'a valid Contract Object' do
30+ subject { the_contract }
31+ it { is_expected . to be_an IB ::Contract }
32+ its ( :con_id ) { is_expected . to be_empty . or be_a ( Numeric ) }
33+ its ( :contract_detail ) { is_expected . to be_nil . or be_a ( IB ::ContractDetail ) }
34+ its ( :symbol ) { is_expected . to be_a String }
35+ its ( :local_symbol ) { is_expected . to be_a String }
36+ its ( :currency ) { is_expected . to be_a String }
37+ its ( :sec_type ) { is_expected . to be_a ( Symbol ) . and satisfy { |sec_type | IB ::SECURITY_TYPES . values . include? ( sec_type ) } }
38+ its ( :trading_class ) { is_expected . to be_a String }
39+ its ( :exchange ) { is_expected . to be_a String }
40+ its ( :primary_exchange ) { is_expected . to be_nil . or be_a ( String ) }
5941end
0 commit comments