Ejemplo n.º 1
0
        public override void Initialize()
        {
            connectors   = new AccountConnector[Count];
            finishEvents = new ManualResetEvent[Count];

            for (int i = 0; i < connectors.Length; i++)
            {
                connectors[i]        = new AccountConnector();
                connectors[i].Logger = Logger;
                connectors[i].Crypto = /*i % 3 != 0 ?*/ CryptoType.EC25519; // : CryptoType.EC;

                switch (i % 3)
                {
                case 0:
                    connectors[i].Login = "******";
                    break;

                case 1:
                    connectors[i].Login = "******";
                    break;

                default:
                    connectors[i].Login = "******";
                    break;
                }
            }
        }
Ejemplo n.º 2
0
        public void Test_ModeOfPayment_CRUD()
        {
            #region Arrange
            var tmpAccount = new AccountConnector().Get(0123) ?? new AccountConnector().Create(new Account()
            {
                Description = "TestAccount", Number = 0123
            });
            #endregion Arrange

            IModeOfPaymentConnector connector = new ModeOfPaymentConnector();

            #region CREATE
            var newModeOfPayment = new ModeOfPayment()
            {
                Description   = "TestMode",
                AccountNumber = tmpAccount.Number,
                Code          = "TEST_MODE",
            };

            var createdModeOfPayment = connector.Create(newModeOfPayment);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("TestMode", createdModeOfPayment.Description);

            #endregion CREATE

            #region UPDATE

            createdModeOfPayment.Description = "UpdatedMode";

            var updatedModeOfPayment = connector.Update(createdModeOfPayment);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("UpdatedMode", updatedModeOfPayment.Description);

            #endregion UPDATE

            #region READ / GET

            var retrievedModeOfPayment = connector.Get(createdModeOfPayment.Code);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("UpdatedMode", retrievedModeOfPayment.Description);

            #endregion READ / GET

            #region DELETE

            connector.Delete(createdModeOfPayment.Code);
            MyAssert.HasNoError(connector);

            retrievedModeOfPayment = connector.Get(createdModeOfPayment.Code);
            Assert.AreEqual(null, retrievedModeOfPayment, "Entity still exists after Delete!");

            #endregion DELETE

            #region Delete arranged resources
            new AccountConnector().Delete(0123);
            #endregion Delete arranged resources
        }
Ejemplo n.º 3
0
        public void Test_Expense_CRUD()
        {
            #region Arrange
            var ac = new AccountConnector();
            if (ac.Get(0123) == null) //account 123 does not exist
            {
                ac.Create(new Account()
                {
                    Number = 0123, Description = "TmpAccount"
                });
            }
            #endregion Arrange

            IExpenseConnector connector = new ExpenseConnector();

            #region CREATE

            var newExpense = new Expense()
            {
                Text    = "TestExpense",
                Code    = TestUtils.RandomString(6),
                Account = 0123
            };

            var createdExpense = connector.Create(newExpense);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("TestExpense", createdExpense.Text);

            #endregion CREATE

            #region UPDATE

            //Not supported

            #endregion UPDATE

            #region READ / GET

            var retrievedExpense = connector.Get(createdExpense.Code);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("TestExpense", retrievedExpense.Text);

            #endregion READ / GET

            #region DELETE

            //Not supported

            #endregion DELETE

            #region Delete arranged resources
            ac.Delete(0123);
            MyAssert.HasNoError(ac);

            #endregion Delete arranged resources
        }
Ejemplo n.º 4
0
        public void Test_Account_CRUD()
        {
            var connector = new AccountConnector();

            if (connector.Get("8454") != null) //Delete if already exists
            {
                connector.Delete("8454");
            }

            #region CREATE
            var newAccount = new Account
            {
                Description        = "Test Account",
                Active             = false,
                Number             = "8454",
                CostCenterSettings = CostCenterSettingsValue.ALLOWED,
                ProjectSettings    = ProjectSettingsValue.ALLOWED,
                SRU = 123
            };

            //Act
            var createdAccount = connector.Create(newAccount);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("Test Account", createdAccount.Description);

            #endregion CREATE

            #region UPDATE

            createdAccount.Description = "Updated Test Account";

            var updatedAccount = connector.Update(createdAccount);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("Updated Test Account", updatedAccount.Description);

            #endregion UPDATE

            #region READ / GET

            var retrievedAccount = connector.Get(createdAccount.Number);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("Updated Test Account", retrievedAccount.Description);

            #endregion READ / GET

            #region DELETE

            connector.Delete(createdAccount.Number);
            MyAssert.HasNoError(connector);

            retrievedAccount = connector.Get(createdAccount.Number);
            Assert.AreEqual(null, retrievedAccount, "Entity still exists after Delete!");

            #endregion DELETE
        }
Ejemplo n.º 5
0
        public void Test_Find()
        {
            #region Arrange
            //Add code to create required resources
            #endregion Arrange

            var testKeyMark = TestUtils.RandomInt();

            IAccountConnector connector = new AccountConnector();
            var newAccount = new Account()
            {
                Description        = "Test Account",
                Active             = false,
                CostCenterSettings = CostCenterSettings.Allowed,
                ProjectSettings    = ProjectSettings.Allowed,
                SRU = testKeyMark
            };

            //Add entries
            for (var i = 0; i < 5; i++)
            {
                newAccount.Number = GetUnusedAccountNumber();
                connector.Create(newAccount);
                MyAssert.HasNoError(connector);
            }

            //Apply base test filter
            connector.SRU = testKeyMark.ToString();
            var fullCollection = connector.Find();
            MyAssert.HasNoError(connector);

            Assert.AreEqual(5, fullCollection.TotalResources);
            Assert.AreEqual(5, fullCollection.Entities.Count);
            Assert.AreEqual(1, fullCollection.TotalPages);

            //Apply Limit
            connector.Limit = 2;
            var limitedCollection = connector.Find();
            MyAssert.HasNoError(connector);

            Assert.AreEqual(5, limitedCollection.TotalResources);
            Assert.AreEqual(2, limitedCollection.Entities.Count);
            Assert.AreEqual(3, limitedCollection.TotalPages);

            //Delete entries
            foreach (var entry in fullCollection.Entities)
            {
                connector.Delete(entry.Number);
            }
            #region Delete arranged resources

            //Add code to delete temporary resources

            #endregion Delete arranged resources
        }
Ejemplo n.º 6
0
        public void Test_Account_CRUD_SpecificFinYear()
        {
            var specificFinYear = new FinancialYearConnector().Find(null).Entities.First(y => y.FromDate?.Year == 2018); //get fin year 2018

            IAccountConnector connector = new AccountConnector();

            #region CREATE
            var newAccount = new Account()
            {
                Description        = "Test Account",
                Active             = false,
                Number             = TestUtils.GetUnusedAccountNumber(),
                CostCenterSettings = CostCenterSettings.Allowed,
                ProjectSettings    = ProjectSettings.Allowed,
                SRU = 123
            };

            var createdAccount = connector.Create(newAccount, specificFinYear.Id);
            Assert.AreEqual(specificFinYear.Id, createdAccount.Year);
            Assert.AreEqual("Test Account", createdAccount.Description);

            #endregion CREATE

            #region UPDATE

            createdAccount.Description = "Updated Test Account";

            var updatedAccount = connector.Update(createdAccount, specificFinYear.Id);
            Assert.AreEqual("Updated Test Account", updatedAccount.Description);
            Assert.AreEqual(specificFinYear.Id, updatedAccount.Year);

            #endregion UPDATE

            #region READ / GET

            var retrievedAccount = connector.Get(createdAccount.Number, specificFinYear.Id);
            Assert.AreEqual("Updated Test Account", retrievedAccount.Description);
            Assert.AreEqual(specificFinYear.Id, retrievedAccount.Year);

            #endregion READ / GET

            #region DELETE

            connector.Delete(createdAccount.Number, specificFinYear.Id);

            Assert.ThrowsException <FortnoxApiException>(
                () => connector.Get(createdAccount.Number, specificFinYear.Id),
                "Entity still exists after Delete!");

            #endregion DELETE

            #region Delete arranged resources
            //Add code to delete temporary resources
            #endregion Delete arranged resources
        }
        public void Test_ModeOfPayment_CRUD()
        {
            #region Arrange
            var tmpAccount = new AccountConnector().Create(new Account()
            {
                Description = "TestAccount", Number = TestUtils.GetUnusedAccountNumber()
            });
            #endregion Arrange

            IModeOfPaymentConnector connector = new ModeOfPaymentConnector();

            #region CREATE
            var newModeOfPayment = new ModeOfPayment()
            {
                Description   = "TestMode",
                AccountNumber = tmpAccount.Number,
                Code          = "TEST_MODE",
            };

            var createdModeOfPayment = connector.Create(newModeOfPayment);
            Assert.AreEqual("TestMode", createdModeOfPayment.Description);

            #endregion CREATE

            #region UPDATE

            createdModeOfPayment.Description = "UpdatedMode";

            var updatedModeOfPayment = connector.Update(createdModeOfPayment);
            Assert.AreEqual("UpdatedMode", updatedModeOfPayment.Description);

            #endregion UPDATE

            #region READ / GET

            var retrievedModeOfPayment = connector.Get(createdModeOfPayment.Code);
            Assert.AreEqual("UpdatedMode", retrievedModeOfPayment.Description);

            #endregion READ / GET

            #region DELETE

            connector.Delete(createdModeOfPayment.Code);

            Assert.ThrowsException <FortnoxApiException>(
                () => connector.Get(createdModeOfPayment.Code),
                "Entity still exists after Delete!");

            #endregion DELETE

            #region Delete arranged resources
            new AccountConnector().Delete(tmpAccount.Number);
            #endregion Delete arranged resources
        }
Ejemplo n.º 8
0
        public void Test_Account_CRUD()
        {
            IAccountConnector connector = new AccountConnector();

            #region CREATE
            var newAccount = new Account()
            {
                Description        = "Test Account",
                Active             = false,
                Number             = GetUnusedAccountNumber(),
                CostCenterSettings = CostCenterSettings.Allowed,
                ProjectSettings    = ProjectSettings.Allowed,
                SRU = 123
            };

            var createdAccount = connector.Create(newAccount);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("Test Account", createdAccount.Description);

            #endregion CREATE

            #region UPDATE

            createdAccount.Description = "Updated Test Account";

            var updatedAccount = connector.Update(createdAccount);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("Updated Test Account", updatedAccount.Description);

            #endregion UPDATE

            #region READ / GET

            var retrievedAccount = connector.Get(createdAccount.Number);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("Updated Test Account", retrievedAccount.Description);

            #endregion READ / GET

            #region DELETE

            connector.Delete(createdAccount.Number);
            MyAssert.HasNoError(connector);

            retrievedAccount = connector.Get(createdAccount.Number);
            Assert.AreEqual(null, retrievedAccount, "Entity still exists after Delete!");

            #endregion DELETE

            #region Delete arranged resources
            //Add code to delete temporary resources
            #endregion Delete arranged resources
        }
Ejemplo n.º 9
0
        public void Test_Find()
        {
            #region Arrange
            var tmpAccount = new AccountConnector().Get(0123) ?? new AccountConnector().Create(new Account()
            {
                Description = "TestAccount", Number = 0123
            });
            #endregion Arrange

            IModeOfPaymentConnector connector = new ModeOfPaymentConnector();

            var existingCount = connector.Find().Entities.Count;
            var testKeyMark   = TestUtils.RandomString();

            var createdEntries = new List <ModeOfPayment>();
            //Add entries
            for (var i = 0; i < 5; i++)
            {
                var createdEntry = connector.Create(new ModeOfPayment()
                {
                    Code = TestUtils.RandomString(), Description = testKeyMark, AccountNumber = tmpAccount.Number
                });
                createdEntries.Add(createdEntry);
            }

            //Filter not supported
            var fullCollection = connector.Find();
            MyAssert.HasNoError(connector);

            Assert.AreEqual(existingCount + 5, fullCollection.Entities.Count);
            Assert.AreEqual(5, fullCollection.Entities.Count(e => e.Description == testKeyMark));

            //Apply Limit
            connector.Limit = 2;
            var limitedCollection = connector.Find();
            MyAssert.HasNoError(connector);

            Assert.AreEqual(existingCount + 5, limitedCollection.TotalResources);
            Assert.AreEqual(2, limitedCollection.Entities.Count);

            //Delete entries
            foreach (var entry in createdEntries)
            {
                connector.Delete(entry.Code);
            }

            #region Delete arranged resources
            new AccountConnector().Delete(0123);
            #endregion Delete arranged resources
        }
Ejemplo n.º 10
0
        private static int GetUnusedAccountNumber()
        {
            IAccountConnector connector = new AccountConnector();

            for (var j = 0; j < 10; j++) //try 10x times to create unique account number
            {
                var number = TestUtils.RandomInt(0, 9999);
                if (connector.Get(number) == null) //not exists
                {
                    return(number);
                }
            }

            throw new Exception("Could not generate unused account number");
        }
Ejemplo n.º 11
0
        public void Test_Expense_CRUD()
        {
            #region Arrange
            var tmpAccount = new AccountConnector().Create(new Account()
            {
                Number = TestUtils.GetUnusedAccountNumber(), Description = "TmpAccount"
            });
            #endregion Arrange

            IExpenseConnector connector = new ExpenseConnector();

            #region CREATE

            var newExpense = new Expense()
            {
                Text    = "TestExpense",
                Code    = TestUtils.RandomString(6),
                Account = tmpAccount.Number
            };

            var createdExpense = connector.Create(newExpense);
            Assert.AreEqual("TestExpense", createdExpense.Text);

            #endregion CREATE

            #region UPDATE

            //Not supported

            #endregion UPDATE

            #region READ / GET

            var retrievedExpense = connector.Get(createdExpense.Code);
            Assert.AreEqual("TestExpense", retrievedExpense.Text);

            #endregion READ / GET

            #region DELETE

            //Not supported

            #endregion DELETE

            #region Delete arranged resources
            new AccountConnector().Delete(tmpAccount.Number);
            #endregion Delete arranged resources
        }
Ejemplo n.º 12
0
        public void Test_Expense_Find()
        {
            #region Arrange
            var ac = new AccountConnector();
            if (ac.Get(0123) == null) //account 123 does not exist
            {
                ac.Create(new Account()
                {
                    Number = 0123, Description = "TmpAccount"
                });
            }
            #endregion Arrange

            var timeStamp = DateTime.Now;
            var remark    = TestUtils.RandomString();

            var newExpense = new Expense()
            {
                Text    = remark,
                Account = 0123
            };

            IExpenseConnector connector = new ExpenseConnector();
            for (var i = 0; i < 2; i++)
            {
                newExpense.Code = TestUtils.RandomString(6);
                connector.Create(newExpense);
                MyAssert.HasNoError(connector);
            }

            connector.Search.LastModified = timeStamp; //does not seem to work
            connector.Search.Limit        = 500;
            var expensesCollection = connector.Find();

            var filteredExpenses = expensesCollection.Entities.Where(x => x.Text == remark).ToList();
            MyAssert.HasNoError(connector);
            Assert.AreEqual(2, filteredExpenses.Count);
            Assert.IsNotNull(filteredExpenses.First().Url);

            #region Delete arranged resources
            ac.Delete(0123);
            MyAssert.HasNoError(ac);
            #endregion Delete arranged resources
        }
Ejemplo n.º 13
0
        public void Test_Expense_Find()
        {
            #region Arrange
            var tmpAccount = new AccountConnector().Create(new Account()
            {
                Number = TestUtils.GetUnusedAccountNumber(), Description = "TmpAccount"
            });
            #endregion Arrange

            var timeStamp = DateTime.Now;
            var remark    = TestUtils.RandomString();

            var newExpense = new Expense()
            {
                Text    = remark,
                Account = tmpAccount.Number
            };

            IExpenseConnector connector = new ExpenseConnector();
            for (var i = 0; i < 2; i++)
            {
                newExpense.Code = TestUtils.RandomString(6);
                connector.Create(newExpense);
            }

            var searchSettings = new ExpenseSearch();
            searchSettings.LastModified = timeStamp; //does not seem to work
            searchSettings.Limit        = APIConstants.Unlimited;
            var expensesCollection = connector.Find(searchSettings);

            var newExpenses = expensesCollection.Entities.Where(x => x.Text == remark).ToList();
            Assert.AreEqual(2, newExpenses.Count);
            Assert.IsNotNull(newExpenses.First().Url);

            #region Delete arranged resources
            new AccountConnector().Delete(tmpAccount.Number);
            #endregion Delete arranged resources
        }