2009 Advent Calendar December 21st
The change we did yesterday makes it possible to remove the use of helper threads and timeouts for the MutexLock tests. Here is a first refactoring:
1: public class Given_an_abandoned_lock
2: {
3: private class MutexWrapperAlwaysAbandoned : MutexWrapper
4: {
5: public new void WaitOne()
6: {
7: throw new AbandonedMutexException();
8: }
9: }
10:
11: private MutexLock<MutexWrapperAlwaysAbandoned> _lock;
12:
13: public Given_an_abandoned_lock()
14: {
15: _lock = new MutexLock<MutexWrapperAlwaysAbandoned>();
16: }
17:
18: [Fact]
19: void It_should_be_possible_to_take_lock_when_thread_dies()
20: {
21: Assert.DoesNotThrow(() => { _lock.Lock(); });
22: }
23: }