using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using NUnit.Framework.Constraints;
using Losoft.Temo.Common;
using Losoft.Temo.Security.Authorization.Dependency;
namespace Losoft.Temo.Security.Authorization.Tests
{ [TestFixture]
public class LogChangesSpecs : TestsWithSecurable
{ [Test]
public void Will_Log_Fault_Attempts_To_Grant_Rights()
{ Assert.Throws(new AssignableToConstraint(typeof(Exception)), ()=>
simpleUser.Grant(right: "A", securableResource: resource));
Assert.That(logger.LoggedMessage, Is.EqualTo(
"Info: 30/03/2010 03:00:00 a.m. failed attempt by simple-user to grant [A] right to simple-user."));
}
[Test]
public void Will_Log_Fault_Attempts_To_Revoke_Rights()
{ Assert.Throws(new AssignableToConstraint(typeof(Exception)), () =>
simpleUser.Revoke(right: "A", securableResource: resource));
Assert.That(logger.LoggedMessage, Is.EqualTo(
"Info: 30/03/2010 03:00:00 a.m. failed attempt by simple-user to revoke [A] right to simple-user."));
}
[Test]
public void Will_Log_Fault_Attempts_To_Query_Rights()
{ Assert.Throws(new AssignableToConstraint(typeof(Exception)), () =>
simpleUser.HasRight(right: "A", securableResource: resource, toAccount: admin));
Assert.That(logger.LoggedMessage, Is.EqualTo(
"Info: 30/03/2010 03:00:00 a.m. failed attempt by simple-user to query [A] right to admin-user."));
}
[Test]
public void Will_Log_Grant_Rights()
{ admin.Grant(right: "A", securableResource: resource, toAccount: simpleUser);
Assert.That(logger.LoggedMessage, Is.EqualTo(
"Audit: 30/03/2010 03:00:00 a.m. admin-user has granted [A] right to simple-user."));
}
[Test]
public void Will_Log_Revoke_Rights()
{ admin.Revoke(right: "A", securableResource: resource, toAccount: simpleUser);
Assert.That(logger.LoggedMessage, Is.EqualTo(
"Audit: 30/03/2010 03:00:00 a.m. admin-user has revoked [A] right to simple-user."));
}
[Test]
public void Will_Log_Revoke_Rights()
{ admin.Revoke(right: "A", securableResource: resource, toAccount: simpleUser);
Assert.That(logger.LoggedMessage, Is.EqualTo(
"Audit: 30/03/2010 03:00:00 a.m. admin-user has revoked [A] right to simple-user."));
}
[SetUp]
public override void SetUp()
{ base.SetUp();
logger = new FakeLogger();
LoggerDependency.Instance = () => logger;
DateTimeDependency.Now = () => new DateTime(2010, 3, 30);
}
private FakeLogger logger;
}
}