22
33share_examples_for :atomic_boolean do
44
5- context 'construction' do
5+ describe 'construction' do
66
77 it 'sets the initial value' do
88 described_class . new ( true ) . value . should be_true
2121 end
2222 end
2323
24- context '#value' do
24+ describe '#value' do
2525
2626 it 'returns the current value' do
2727 counter = described_class . new ( true )
3333 end
3434 end
3535
36- context '#value=' do
36+ describe '#value=' do
3737
3838 it 'sets the #value to the given `Boolean`' do
3939 atomic = described_class . new ( true )
5959 end
6060 end
6161
62- context ' true?' do
62+ describe '# true?' do
6363
6464 specify { described_class . new ( true ) . true? . should be_true }
6565
6666 specify { described_class . new ( false ) . true? . should be_false }
6767 end
6868
69- context ' false?' do
69+ describe '# false?' do
7070
7171 specify { described_class . new ( true ) . false? . should be_false }
7272
7373 specify { described_class . new ( false ) . false? . should be_true }
7474 end
7575
76- context ' make_true' do
76+ describe '# make_true' do
7777
78- it 'makes a false value true and returns nil ' do
78+ it 'makes a false value true and returns true ' do
7979 subject = described_class . new ( false )
80- subject . make_true . should be_nil
80+ subject . make_true . should be_true
8181 subject . value . should be_true
8282 end
8383
84- it 'keeps a true value true and returns nil ' do
84+ it 'keeps a true value true and returns false ' do
8585 subject = described_class . new ( true )
86- subject . make_true . should be_nil
86+ subject . make_true . should be_false
8787 subject . value . should be_true
8888 end
8989 end
9090
91- context ' make_false' do
91+ describe '# make_false' do
9292
93- it 'makes a true value false and returns nil ' do
93+ it 'makes a true value false and returns true ' do
9494 subject = described_class . new ( true )
95- subject . make_false . should be_nil
95+ subject . make_false . should be_true
9696 subject . value . should be_false
9797 end
9898
99- it 'keeps a false value false and returns nil ' do
99+ it 'keeps a false value false and returns false ' do
100100 subject = described_class . new ( false )
101- subject . make_false . should be_nil
101+ subject . make_false . should be_false
102102 subject . value . should be_false
103103 end
104104 end
@@ -116,46 +116,38 @@ module Concurrent
116116 described_class . new
117117 end
118118
119- specify 'value is synchronized' do
120- mutex = double ( 'mutex' )
121- Mutex . stub ( :new ) . with ( no_args ) . and_return ( mutex )
122- mutex . should_receive ( :synchronize )
123- described_class . new . value
124- end
119+ context 'instance methods' do
125120
126- specify 'value= is synchronized' do
127- mutex = double ( 'mutex' )
128- Mutex . stub ( :new ) . with ( no_args ) . and_return ( mutex )
129- mutex . should_receive ( :synchronize )
130- described_class . new . value = 10
131- end
121+ before ( :each ) do
122+ mutex = double ( 'mutex' )
123+ Mutex . stub ( :new ) . with ( no_args ) . and_return ( mutex )
124+ mutex . should_receive ( :lock )
125+ mutex . should_receive ( :unlock )
126+ end
132127
133- specify 'true? is synchronized' do
134- mutex = double ( 'mutex' )
135- Mutex . stub ( :new ) . with ( no_args ) . and_return ( mutex )
136- mutex . should_receive ( :synchronize )
137- described_class . new . true?
138- end
128+ specify 'value is synchronized' do
129+ described_class . new . value
130+ end
139131
140- specify 'false? is synchronized' do
141- mutex = double ( 'mutex' )
142- Mutex . stub ( :new ) . with ( no_args ) . and_return ( mutex )
143- mutex . should_receive ( :synchronize )
144- described_class . new . false?
145- end
132+ specify 'value= is synchronized' do
133+ described_class . new . value = 10
134+ end
146135
147- specify 'make_true is synchronized' do
148- mutex = double ( 'mutex' )
149- Mutex . stub ( :new ) . with ( no_args ) . and_return ( mutex )
150- mutex . should_receive ( :synchronize )
151- described_class . new . make_true
152- end
136+ specify 'true? is synchronized' do
137+ described_class . new . true?
138+ end
153139
154- specify 'make_false is synchronized' do
155- mutex = double ( 'mutex' )
156- Mutex . stub ( :new ) . with ( no_args ) . and_return ( mutex )
157- mutex . should_receive ( :synchronize )
158- described_class . new . make_false
140+ specify 'false? is synchronized' do
141+ described_class . new . false?
142+ end
143+
144+ specify 'make_true is synchronized' do
145+ described_class . new . make_true
146+ end
147+
148+ specify 'make_false is synchronized' do
149+ described_class . new . make_false
150+ end
159151 end
160152 end
161153
0 commit comments