2
2
3
3
share_examples_for :atomic_boolean do
4
4
5
- context 'construction' do
5
+ describe 'construction' do
6
6
7
7
it 'sets the initial value' do
8
8
described_class . new ( true ) . value . should be_true
21
21
end
22
22
end
23
23
24
- context '#value' do
24
+ describe '#value' do
25
25
26
26
it 'returns the current value' do
27
27
counter = described_class . new ( true )
33
33
end
34
34
end
35
35
36
- context '#value=' do
36
+ describe '#value=' do
37
37
38
38
it 'sets the #value to the given `Boolean`' do
39
39
atomic = described_class . new ( true )
59
59
end
60
60
end
61
61
62
- context ' true?' do
62
+ describe '# true?' do
63
63
64
64
specify { described_class . new ( true ) . true? . should be_true }
65
65
66
66
specify { described_class . new ( false ) . true? . should be_false }
67
67
end
68
68
69
- context ' false?' do
69
+ describe '# false?' do
70
70
71
71
specify { described_class . new ( true ) . false? . should be_false }
72
72
73
73
specify { described_class . new ( false ) . false? . should be_true }
74
74
end
75
75
76
- context ' make_true' do
76
+ describe '# make_true' do
77
77
78
- it 'makes a false value true and returns nil ' do
78
+ it 'makes a false value true and returns true ' do
79
79
subject = described_class . new ( false )
80
- subject . make_true . should be_nil
80
+ subject . make_true . should be_true
81
81
subject . value . should be_true
82
82
end
83
83
84
- it 'keeps a true value true and returns nil ' do
84
+ it 'keeps a true value true and returns false ' do
85
85
subject = described_class . new ( true )
86
- subject . make_true . should be_nil
86
+ subject . make_true . should be_false
87
87
subject . value . should be_true
88
88
end
89
89
end
90
90
91
- context ' make_false' do
91
+ describe '# make_false' do
92
92
93
- it 'makes a true value false and returns nil ' do
93
+ it 'makes a true value false and returns true ' do
94
94
subject = described_class . new ( true )
95
- subject . make_false . should be_nil
95
+ subject . make_false . should be_true
96
96
subject . value . should be_false
97
97
end
98
98
99
- it 'keeps a false value false and returns nil ' do
99
+ it 'keeps a false value false and returns false ' do
100
100
subject = described_class . new ( false )
101
- subject . make_false . should be_nil
101
+ subject . make_false . should be_false
102
102
subject . value . should be_false
103
103
end
104
104
end
@@ -116,46 +116,38 @@ module Concurrent
116
116
described_class . new
117
117
end
118
118
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
125
120
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
132
127
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
139
131
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
146
135
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
153
139
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
159
151
end
160
152
end
161
153
0 commit comments