public void AddTransaction_OnSuccess_AccountUnlocks()
        {
            //Arrange
            var builder     = new RepositoryBuilder();
            var context     = builder.DefaultAccountDbContext();
            var transaction = GetTestableTransaction(context);
            var service     = builder.WithAccountDbContext(context.Object).Build();

            //Act
            service.AddTransaction(transaction);
            //Assert
            transaction.Account.Locked.Should().BeFalse();
        }
        public void AddTransaction_OnError_AccountUnlocks()
        {
            //Arrange
            var builder     = new RepositoryBuilder();
            var context     = builder.DefaultAccountDbContext();
            var transaction = GetTestableTransaction(context);

            context.Setup(x => x.SaveChanges()).Throws(new UnitTestException("Unit test exception"));

            var service = builder.WithAccountDbContext(context.Object).Build();

            //Act
            Action action = () => service.AddTransaction(transaction);

            //Assert
            action.Should().Throw <UnitTestException>();
            transaction.Account.Locked.Should().BeFalse();
        }