Exemplo n.º 1
0
        public void ShouldCallDispose()
        {
            TrackingDisposable disposable   = new TrackingDisposable();
            ConstantExpression disposableEx = Expression.Constant(disposable);

            disposable.HasBeenDisposed.ShouldBeFalse();

            Expression
            .Lambda <Action>(X.Using(disposableEx, Expression.Empty()))
            .Compile()();

            disposable.HasBeenDisposed.ShouldBeTrue();
        }
Exemplo n.º 2
0
        public void ShouldCallDisposeAfterException()
        {
            TrackingDisposable disposable   = new TrackingDisposable();
            ConstantExpression disposableEx = Expression.Constant(disposable);

            ConstantExpression exceptionEx = Expression.Constant(new Exception());

            disposable.HasBeenDisposed.ShouldBeFalse();

            Should.Throw <Exception>(() => Expression
                                     .Lambda <Action>(X.Using(disposableEx, Expression.Throw(exceptionEx)))
                                     .Compile()());

            disposable.HasBeenDisposed.ShouldBeTrue();
        }