Пример #1
0
        public void AutomaticCleanup_WhenDomainObjectCtorThrows_DoesNotRequireDeletePermissions()
        {
            _securityProviderStub.Stub(mock => mock.GetAccess(_securityContextStub, _securityPrincipalStub)).Return(new AccessType[0]);

            _functionalSecurityStrategyStub
            .Stub(
                mock => mock.HasAccess(
                    Arg.Is(typeof(SecurableObject)),
                    Arg.Is(_securityProviderStub),
                    Arg.Is(_securityPrincipalStub),
                    Arg <IReadOnlyList <AccessType> > .List.Equal(new[] { AccessType.Get(GeneralAccessTypes.Create) })))
            .Return(true);

            var             exception      = new Exception("Test.");
            SecurableObject throwingObject = null;

            Assert.That(
                () => CreateSecurableObject(
                    _securityContextFactoryStub,
                    action: obj =>
            {
                throwingObject = obj;
                throw exception;
            }),
                Throws.Exception.SameAs(exception));

            Assert.That(_clientTransaction.IsEnlisted(throwingObject), Is.False);
        }