public void Test_Employee_CRUD()
        {
            #region Arrange
            var c             = new EmployeeConnector();
            var alreadyExists = c.Get("TEST_EMP") != null;

            #endregion Arrange

            IEmployeeConnector connector = new EmployeeConnector();

            #region CREATE

            var newEmployee = new Employee()
            {
                EmployeeId    = "TEST_EMP",
                FirstName     = "Test",
                LastName      = "Testasson",
                City          = "Växjö",
                Country       = "Sweden",
                ForaType      = ForaType.A74,
                JobTitle      = "Woodcutter",
                MonthlySalary = 20000
            };

            var createdEmployee = alreadyExists ? connector.Update(newEmployee) : connector.Create(newEmployee);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("Test", createdEmployee.FirstName);

            #endregion CREATE

            #region UPDATE

            createdEmployee.FirstName = "UpdatedTest";

            var updatedEmployee = connector.Update(createdEmployee);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("UpdatedTest", updatedEmployee.FirstName);

            #endregion UPDATE

            #region READ / GET

            var retrievedEmployee = connector.Get(createdEmployee.EmployeeId);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("UpdatedTest", retrievedEmployee.FirstName);

            #endregion READ / GET

            #region DELETE

            //Not supported

            #endregion DELETE

            #region Delete arranged resources

            //Add code to delete temporary resources

            #endregion Delete arranged resources
        }
        public void Test_Employee_Find()
        {
            var timestamp = DateTime.Now;
            var marks     = TestUtils.RandomString();

            IEmployeeConnector connector = new EmployeeConnector();

            for (var i = 0; i < 5; i++)
            {
                connector.Create(new Employee()
                {
                    EmployeeId = TestUtils.RandomString(), City = marks
                });
            }

            var searchSettings = new EmployeeSearch();

            //searchSettings.LastModified = timestamp; //parameter is not accepted by server
            searchSettings.Limit = APIConstants.Unlimited;
            var employees = connector.Find(searchSettings);

            var newEmployees = employees.Entities.Where(e => e.City == marks).ToList();

            Assert.AreEqual(5, newEmployees.Count);
        }
Beispiel #3
0
        public void Test_SalaryTransaction_CRUD()
        {
            #region Arrange
            var tmpEmployee = new EmployeeConnector().Get("TEST_EMP") ?? new EmployeeConnector().Create(new Employee()
            {
                EmployeeId = "TEST_EMP"
            });
            #endregion Arrange

            ISalaryTransactionConnector connector = new SalaryTransactionConnector();

            #region CREATE
            var newSalaryTransaction = new SalaryTransaction()
            {
                EmployeeId = tmpEmployee.EmployeeId,
                SalaryCode = "11", //Arbetstid
                Date       = new DateTime(2020, 1, 1),
                Number     = 10,
                TextRow    = "TestSalaryRow"
            };

            var createdSalaryTransaction = connector.Create(newSalaryTransaction);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("TestSalaryRow", createdSalaryTransaction.TextRow);

            #endregion CREATE

            #region UPDATE

            createdSalaryTransaction.TextRow = "UpdatedTestSalaryRow";

            var updatedSalaryTransaction = connector.Update(createdSalaryTransaction);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("UpdatedTestSalaryRow", updatedSalaryTransaction.TextRow);

            #endregion UPDATE

            #region READ / GET

            var retrievedSalaryTransaction = connector.Get(createdSalaryTransaction.SalaryRow);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("UpdatedTestSalaryRow", retrievedSalaryTransaction.TextRow);

            #endregion READ / GET

            #region DELETE

            connector.Delete(createdSalaryTransaction.SalaryRow);
            MyAssert.HasNoError(connector);

            retrievedSalaryTransaction = connector.Get(createdSalaryTransaction.SalaryRow);
            Assert.AreEqual(null, retrievedSalaryTransaction, "Entity still exists after Delete!");

            #endregion DELETE

            #region Delete arranged resources
            #endregion Delete arranged resources
        }
        public void Test_Employee_Find()
        {
            IEmployeeConnector connector = new EmployeeConnector();

            var employees = connector.Find();

            Assert.AreEqual(1, employees.Entities.Count);
            Assert.IsNotNull(employees.Entities.First().Url);
        }
        public void Test_SalaryTransaction_CRUD()
        {
            #region Arrange
            var tmpEmployee = new EmployeeConnector().Create(new Employee()
            {
                EmployeeId = TestUtils.RandomString()
            });
            #endregion Arrange

            ISalaryTransactionConnector connector = new SalaryTransactionConnector();

            #region CREATE
            var newSalaryTransaction = new SalaryTransaction()
            {
                EmployeeId = tmpEmployee.EmployeeId,
                SalaryCode = "11", //Arbetstid
                Date       = new DateTime(2020, 1, 1),
                Number     = 10,
                TextRow    = "TestSalaryRow"
            };

            var createdSalaryTransaction = connector.Create(newSalaryTransaction);
            Assert.AreEqual("TestSalaryRow", createdSalaryTransaction.TextRow);

            #endregion CREATE

            #region UPDATE

            createdSalaryTransaction.TextRow = "UpdatedTestSalaryRow";

            var updatedSalaryTransaction = connector.Update(createdSalaryTransaction);
            Assert.AreEqual("UpdatedTestSalaryRow", updatedSalaryTransaction.TextRow);

            #endregion UPDATE

            #region READ / GET

            var retrievedSalaryTransaction = connector.Get(createdSalaryTransaction.SalaryRow);
            Assert.AreEqual("UpdatedTestSalaryRow", retrievedSalaryTransaction.TextRow);

            #endregion READ / GET

            #region DELETE

            connector.Delete(createdSalaryTransaction.SalaryRow);

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

            #endregion DELETE

            #region Delete arranged resources
            #endregion Delete arranged resources
        }
        public void Test_ScheduleTimes_CRUD()
        {
            #region Arrange
            var tmpEmployee = new EmployeeConnector().Get("TEST_EMP") ?? new EmployeeConnector().Create(new Employee()
            {
                EmployeeId = "TEST_EMP"
            });
            #endregion Arrange

            IScheduleTimesConnector connector = new ScheduleTimesConnector();

            #region CREATE

            //Create method is not supported
            var newScheduleTimes = new ScheduleTimes()
            {
                Hours      = 6.5m,
                EmployeeId = tmpEmployee.EmployeeId,
                Date       = new DateTime(2050, 10, 10)
            };

            var createdScheduleTimes = connector.Update(newScheduleTimes);
            MyAssert.HasNoError(connector);
            Assert.AreEqual(6.5m, createdScheduleTimes.Hours);

            #endregion CREATE

            #region UPDATE

            createdScheduleTimes.Hours = 7;

            var updatedScheduleTimes = connector.Update(createdScheduleTimes);
            MyAssert.HasNoError(connector);
            Assert.AreEqual(7, updatedScheduleTimes.Hours);

            #endregion UPDATE

            #region READ / GET

            var retrievedScheduleTimes = connector.Get(createdScheduleTimes.EmployeeId, createdScheduleTimes.Date);
            MyAssert.HasNoError(connector);
            Assert.AreEqual(7, retrievedScheduleTimes.Hours);

            #endregion READ / GET

            #region DELETE
            //Not available
            #endregion DELETE

            #region Delete arranged resources
            #endregion Delete arranged resources
        }
Beispiel #7
0
        static string GetEmployeeId()
        {
            var employeeConnector = new EmployeeConnector
            {
                Authorization = new StaticTokenAuth(AccessToken, ClientSecret)
            };

            var result = employeeConnector.Find();

            CheckForError(employeeConnector);

            if (result.EmployeeSubset.Any())
            {
                return(result.EmployeeSubset.First().EmployeeId);
            }

            var employee = employeeConnector.Create(new Employee());

            CheckForError(employeeConnector);

            return(employee.EmployeeId);
        }
        public void Test_Find()
        {
            #region Arrange
            var tmpEmployee = new EmployeeConnector().Get("TEST_EMP") ?? new EmployeeConnector().Create(new Employee()
            {
                EmployeeId = "TEST_EMP"
            });
            var tmpProject = new ProjectConnector().Create(new Project()
            {
                Description = "TmpProject"
            });
            var tmpCostCenter = new CostCenterConnector().Get("TMP") ?? new CostCenterConnector().Create(new CostCenter()
            {
                Code = "TMP", Description = "TmpCostCenter"
            });

            for (var i = 0; i < 5; i++)
            {
                new AttendanceTransactionsConnector().Delete(tmpEmployee.EmployeeId, new DateTime(2018, 01, 01).AddDays(i), AttendanceCauseCode.TID);
            }
            #endregion Arrange

            IAttendanceTransactionsConnector connector = new AttendanceTransactionsConnector();

            var newAttendenceTransaction = new AttendanceTransaction()
            {
                EmployeeId = tmpEmployee.EmployeeId,
                CauseCode  = AttendanceCauseCode.TID,
                Date       = new DateTime(2018, 01, 01),
                Hours      = 1,
                CostCenter = tmpCostCenter.Code,
                Project    = tmpProject.ProjectNumber
            };

            //Add entries
            for (var i = 0; i < 5; i++)
            {
                newAttendenceTransaction.Date = new DateTime(2018, 01, 01).AddDays(i);
                connector.Create(newAttendenceTransaction);
                MyAssert.HasNoError(connector);
            }

            connector.Search.EmployeeId = tmpEmployee.EmployeeId;
            var fullCollection = connector.Find();
            MyAssert.HasNoError(connector);

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

            Assert.AreEqual(tmpEmployee.EmployeeId, fullCollection.Entities.First().EmployeeId);

            //Apply Limit
            connector.Search.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.EmployeeId, entry.Date, entry.CauseCode);
            }

            #region Delete arranged resources
            new CostCenterConnector().Delete(tmpCostCenter.Code);
            new ProjectConnector().Delete(tmpProject.ProjectNumber);
            #endregion Delete arranged resources
        }
        public void Test_AttendanceTransactions_CRUD()
        {
            #region Arrange
            var tmpEmployee = new EmployeeConnector().Get("TEST_EMP") ?? new EmployeeConnector().Create(new Employee()
            {
                EmployeeId = "TEST_EMP"
            });
            var tmpProject = new ProjectConnector().Create(new Project()
            {
                Description = "TmpProject"
            });
            var tmpCostCenter = new CostCenterConnector().Get("TMP") ?? new CostCenterConnector().Create(new CostCenter()
            {
                Code = "TMP", Description = "TmpCostCenter"
            });
            #endregion Arrange

            IAttendanceTransactionsConnector connector = new AttendanceTransactionsConnector();

            #region CREATE
            var newAttendanceTransaction = new AttendanceTransaction()
            {
                EmployeeId = tmpEmployee.EmployeeId,
                CauseCode  = AttendanceCauseCode.TID,
                Date       = new DateTime(2018, 01, 01),
                Hours      = 5.5m,
                CostCenter = tmpCostCenter.Code,
                Project    = tmpProject.ProjectNumber
            };

            var createdAttendanceTransaction = connector.Create(newAttendanceTransaction);
            MyAssert.HasNoError(connector);
            Assert.AreEqual(5.5m, createdAttendanceTransaction.Hours);

            #endregion CREATE

            #region UPDATE

            createdAttendanceTransaction.Hours = 8;

            var updatedAttendanceTransaction = connector.Update(createdAttendanceTransaction);
            MyAssert.HasNoError(connector);
            Assert.AreEqual(8, updatedAttendanceTransaction.Hours);

            #endregion UPDATE

            #region READ / GET

            var retrievedAttendanceTransaction = connector.Get(createdAttendanceTransaction.EmployeeId, createdAttendanceTransaction.Date, createdAttendanceTransaction.CauseCode);
            MyAssert.HasNoError(connector);
            Assert.AreEqual(8, retrievedAttendanceTransaction.Hours);

            #endregion READ / GET

            #region DELETE

            connector.Delete(createdAttendanceTransaction.EmployeeId, createdAttendanceTransaction.Date, createdAttendanceTransaction.CauseCode);
            MyAssert.HasNoError(connector);

            retrievedAttendanceTransaction = connector.Get(createdAttendanceTransaction.EmployeeId, createdAttendanceTransaction.Date, createdAttendanceTransaction.CauseCode);
            Assert.AreEqual(null, retrievedAttendanceTransaction, "Entity still exists after Delete!");

            #endregion DELETE

            #region Delete arranged resources
            new CostCenterConnector().Delete(tmpCostCenter.Code);
            new ProjectConnector().Delete(tmpProject.ProjectNumber);
            #endregion Delete arranged resources
        }
Beispiel #10
0
        public void Test_Find()
        {
            #region Arrange

            var tmpEmployee = new EmployeeConnector().Create(new Employee()
            {
                EmployeeId = TestUtils.RandomString()
            });
            var tmpProject = new ProjectConnector().Create(new Project()
            {
                Description = "TmpProject"
            });
            var tmpCostCenter = new CostCenterConnector().Create(new CostCenter()
            {
                Code = "TMP", Description = "TmpCostCenter"
            });
            #endregion Arrange

            IAbsenceTransactionConnector connector = new AbsenceTransactionConnector();

            var newAbsenceTransaction = new AbsenceTransaction()
            {
                EmployeeId = tmpEmployee.EmployeeId,
                CauseCode  = AbsenceCauseCode.MIL,
                Date       = new DateTime(2018, 01, 01),
                Hours      = 1,
                CostCenter = tmpCostCenter.Code,
                Project    = tmpProject.ProjectNumber
            };

            //Add entries
            for (var i = 0; i < 5; i++)
            {
                newAbsenceTransaction.Date = new DateTime(2018, 01, 01).AddDays(i);
                connector.Create(newAbsenceTransaction);
            }

            var searchSettings = new AbsenceTransactionSearch();
            searchSettings.EmployeeId = tmpEmployee.EmployeeId;
            var fullCollection = connector.Find(searchSettings);

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

            Assert.AreEqual(tmpEmployee.EmployeeId, fullCollection.Entities.First().EmployeeId);

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

            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.EmployeeId, entry.Date, entry.CauseCode);
            }

            #region Delete arranged resources
            new CostCenterConnector().Delete(tmpCostCenter.Code);
            new ProjectConnector().Delete(tmpProject.ProjectNumber);
            #endregion Delete arranged resources
        }
Beispiel #11
0
        public void Test_AbsenceTransaction_CRUD()
        {
            #region Arrange
            var tmpEmployee = new EmployeeConnector().Create(new Employee()
            {
                EmployeeId = TestUtils.RandomString()
            });
            var tmpProject = new ProjectConnector().Create(new Project()
            {
                Description = "TmpProject"
            });
            var tmpCostCenter = new CostCenterConnector().Create(new CostCenter()
            {
                Code = "TMP", Description = "TmpCostCenter"
            });
            #endregion Arrange

            IAbsenceTransactionConnector connector = new AbsenceTransactionConnector();

            #region CREATE
            var newAbsenceTransaction = new AbsenceTransaction()
            {
                EmployeeId = tmpEmployee.EmployeeId,
                CauseCode  = AbsenceCauseCode.MIL,
                Date       = new DateTime(2018, 01, 01),
                Hours      = 5.5m,
                CostCenter = tmpCostCenter.Code,
                Project    = tmpProject.ProjectNumber
            };

            var createdAbsenceTransaction = connector.Create(newAbsenceTransaction);
            Assert.AreEqual(5.5m, createdAbsenceTransaction.Hours);

            #endregion CREATE

            #region UPDATE

            createdAbsenceTransaction.Hours = 8;

            var updatedAbsenceTransaction = connector.Update(createdAbsenceTransaction);
            Assert.AreEqual(8, updatedAbsenceTransaction.Hours);

            #endregion UPDATE

            #region READ / GET

            var retrievedAbsenceTransaction = connector.Get(createdAbsenceTransaction.EmployeeId, createdAbsenceTransaction.Date, createdAbsenceTransaction.CauseCode);
            Assert.AreEqual(8, retrievedAbsenceTransaction.Hours);

            #endregion READ / GET

            #region DELETE

            connector.Delete(createdAbsenceTransaction.EmployeeId, createdAbsenceTransaction.Date, createdAbsenceTransaction.CauseCode);

            Assert.ThrowsException <FortnoxApiException>(
                () => connector.Get(createdAbsenceTransaction.EmployeeId, createdAbsenceTransaction.Date, createdAbsenceTransaction.CauseCode),
                "Entity still exists after Delete!");

            #endregion DELETE

            #region Delete arranged resources
            new CostCenterConnector().Delete(tmpCostCenter.Code);
            new ProjectConnector().Delete(tmpProject.ProjectNumber);
            #endregion Delete arranged resources
        }