Exemple #1
0
        public void TestTimeCardTransaction()
        {
            int empId           = 5;
            AddHourlyEmployee t =
                new AddHourlyEmployee(empId, "Bill", "Home", 15.25, database);

            t.Execute();
            TimeCardTransaction tct =
                new TimeCardTransaction(
                    new DateTime(2005, 7, 31), 8.0, empId, database);

            tct.Execute();

            Employee e = database.GetEmployee(empId);

            Assert.IsNotNull(e);

            PaymentClassification pc = e.Classification;

            Assert.IsTrue(pc is HourlyClassification);
            HourlyClassification hc = pc as HourlyClassification;

            TimeCard tc = hc.GetTimeCard(new DateTime(2005, 7, 31));

            Assert.IsNotNull(tc);
            Assert.AreEqual(8.0, tc.Hours);
        }
Exemple #2
0
        public void HourlyUnionMemberServiceCharge()
        {
            int empid           = 31;
            AddHourlyEmployee t = new AddHourlyEmployee(empid, "Bill", "Home", 15.24);

            t.Execute();
            int memberId = 7664;
            ChangeMemberTransaction cmt = new ChangeMemberTransaction(empid, memberId, 9.42);

            cmt.Execute();
            DateTime payDate             = new DateTime(2015, 11, 27);
            ServiceChargeTransaction sct = new ServiceChargeTransaction(memberId, payDate, 19.42);

            sct.Execute();
            TimeCardTransaction tct = new TimeCardTransaction(payDate, 8.0, empid);

            tct.Execute();
            PaydayTransaction pt = new PaydayTransaction(payDate);

            pt.Execute();
            Paycheck pc = pt.GetPaycheck(empid);

            Assert.IsNotNull(pc);
            Assert.AreEqual(payDate, pc.PayPeriodEndDate);
            Assert.AreEqual(8 * 15.24, pc.GrossPay, .001);
            Assert.AreEqual("HOLD", pc.GetField("Disposition"));
            Assert.AreEqual(9.42 + 19.42, pc.Deductions, .001);
            Assert.AreEqual((8 * 15.24) - (9.42 + 19.42), pc.NetPay, .001);
        }
        public void LoadHourlyEmployeeOneTimeCard()
        {
            employee.Schedule       = new WeeklySchedule();
            employee.Method         = new DirectDepositMethod("1st Bank", "0123456");
            employee.Classification = new HourlyClassification(180.50);
            database.AddEmployee(employee);

            DateTime            punchDate = new DateTime(2001, 11, 9); //Friday
            TimeCardTransaction tct       = new TimeCardTransaction(punchDate, 9.0, 123, database);

            tct.Execute();

            Employee loadedEmployee = database.GetEmployee(123);
            PaymentClassification classification = loadedEmployee.Classification;

            Assert.IsTrue(classification is HourlyClassification);

            HourlyClassification hourlyClassification = classification as HourlyClassification;

            Assert.AreEqual(180.50, hourlyClassification.HourlyRate, .01);

            var timeCards = hourlyClassification.TimeCards;

            Assert.AreEqual(1, timeCards.Count);

            var tc = timeCards[punchDate] as TimeCard;

            Assert.IsNotNull(tc);
            Assert.AreEqual(9.0, tc.Hours);
        }
        public void TestTimeCardTransaction()
        {
            int empId           = 5;
            var name            = "Łukasz";
            var hourlyRate      = 15.25;
            var date            = new DateTime(2005, 7, 31);
            var hours           = 8.0;
            AddHourlyEmployee t = new AddHourlyEmployee(empId, name, "Home", hourlyRate);

            t.Execute();

            TimeCardTransaction tct = new TimeCardTransaction(date, hours, empId);

            tct.Execute();

            Employee e = PayrollDatabase.GetEmployee(empId);

            Assert.IsNotNull(e);

            IPaymentClassification pc = e.Classification;

            Assert.IsTrue(pc is HourlyClassification);
            HourlyClassification hc = pc as HourlyClassification;

            TimeCard tc = hc.GetTimeCard(date);

            Assert.IsNotNull(tc);
            Assert.AreEqual(hours, tc.Hours);
        }
Exemple #5
0
        public void ExecuteTest_PaySingleHourlyEmployeeTwoTimeCards()
        {
            int empId = 2;

            database.DeleteEmployee(empId);

            AddHourlyEmployee t = new AddHourlyEmployee(
                empId, "Bill", "Home", 15.25, database);

            t.Execute();
            DateTime payDate = new DateTime(2001, 11, 9); // Friday

            TimeCardTransaction tc =
                new TimeCardTransaction(payDate, 2.0, empId, database);

            tc.Execute();
            TimeCardTransaction tc2 =
                new TimeCardTransaction(payDate.AddDays(-1), 5.0, empId, database);

            tc2.Execute();
            PayDayTransaction pt = new PayDayTransaction(payDate, database);

            pt.Execute();
            ValidatePaycheck(pt, empId, payDate, 7 * 15.25, 0);
        }
Exemple #6
0
        public void ExecuteTest_HourlyUnionMemberServiceCharge()
        {
            int empId           = 1;
            AddHourlyEmployee t = new AddHourlyEmployee(
                empId, "Bill", "Home", 15.24, database);

            t.Execute();
            int memberId = 7734;
            ChangeMemberTransaction cmt =
                new ChangeMemberTransaction(empId, memberId, 9.42, database);

            cmt.Execute();
            DateTime payDate             = new DateTime(2001, 11, 9);
            ServiceChargeTransaction sct =
                new ServiceChargeTransaction(memberId, 19.42, payDate, database);

            sct.Execute();
            TimeCardTransaction tct =
                new TimeCardTransaction(payDate, 8.0, empId, database);

            tct.Execute();
            PayDayTransaction pt = new PayDayTransaction(payDate, database);

            pt.Execute();

            ValidatePaycheck(pt, empId, payDate, 8 * 15.24, 9.42 + 19.42);
        }
Exemple #7
0
        public void HourlyUnionMemberServiceCharge()
        {
            int       empId    = SetupHourlyEmployee();
            const int memberId = 7734;
            var       cmt      = new ChangeMemberTransaction(empId, memberId, 9.42);

            cmt.Execute();

            var payDate = new DateTime(2001, 11, 9);
            var sct     = new ServiceChargeTransaction(memberId, payDate, 19.42);

            sct.Execute();

            var tct = new TimeCardTransaction(payDate, 8.0, empId);

            tct.Execute();

            var pt = new PaydayTransaction(payDate);

            pt.Execute();

            Paycheck pc = PaydayTransaction.GetPaycheck(empId);

            Assert.NotNull(pc);
            Assert.Equal(payDate, pc.PayPeriodEndDate);
            Assert.Equal(8 * 15.25, pc.GrossPay);
            Assert.Equal("Hold", pc.GetField("Disposition"));
            Assert.Equal(9.42 + 19.42, pc.Deductions);
            Assert.Equal((8 * 15.25) - (9.42 + 19.42), pc.NetPay);
        }
Exemple #8
0
        public void PaySingleHourlyEmployeeTwoTimeCards()
        {
            int               empId      = 3;
            string            name       = "Marek";
            string            address    = "Home";
            double            hourlyRate = 15.25;
            int               hours1     = 2;
            int               hours2     = 5;
            AddHourlyEmployee t          = new AddHourlyEmployee(empId, name, address, hourlyRate);

            t.Execute();
            DateTime            payDate = new DateTime(2001, 11, 9); // piątek
            TimeCardTransaction tc1     = new TimeCardTransaction(payDate, hours1, empId);

            tc1.Execute();
            TimeCardTransaction tc2 = new TimeCardTransaction(payDate.AddDays(-1), hours2, empId);

            tc2.Execute();
            PaydayTransaction pt = new PaydayTransaction(payDate);

            pt.Execute();
            var pc = pt.GetPayCheck(empId);

            ValidatePayCheck(pt, empId, payDate, (7) * hourlyRate);
        }
Exemple #9
0
        public void TestTimeCardTransaction()
        {
            int empId           = 5;
            AddHourlyEmployee t = new AddHourlyEmployee(empId, "Kubing", "Home", 15.25, database);

            t.Execute();

            var punchDay            = new DateTime(2005, 7, 31);
            TimeCardTransaction tct = new TimeCardTransaction(punchDay, 8.0, empId, database);

            tct.Execute();

            Employee e = database.GetEmployee(empId);

            Assert.IsNotNull(e);

            PaymentClassification pc = e.Classification;

            Assert.IsTrue(pc is HourlyClassification);

            HourlyClassification hc = pc as HourlyClassification;
            var timeCards           = database.GetTimeCards(empId).ToList();
            var tc = timeCards.FirstOrDefault(x => x.Date == punchDay);

            Assert.IsNotNull(tc);
            Assert.AreEqual(8.0, tc.Hours);
        }
Exemple #10
0
        public void TestHourlyUnionMemberServiceCharge()
        {
            var empId = 1;
            var addTx = new AddHourlyEmployee(empId, "Bill", "Home", 15.24M);

            addTx.Execute();
            int memberId = 7734;
            var memberTx = new ChangeMemberTransaction(empId, memberId, 9.42M);

            memberTx.Execute();
            var payDate         = new Date(11, 9, 2001);
            var serviceChargeTx = new ServiceChargeTransaction(memberId, payDate, 19.42M);

            serviceChargeTx.Execute();
            var timecardTx = new TimeCardTransaction(payDate, 8, empId);

            timecardTx.Execute();
            var payDayTx = new PaydayTransaction(payDate);

            payDayTx.Execute();
            var paycheck = payDayTx.GetPaycheck(empId);

            Assert.IsNotNull(paycheck, "No paycheck available");
            Assert.AreEqual(payDate, paycheck.PayPeriodEndDate);
            Assert.AreEqual(8 * 15.24M, paycheck.GrossPay);
            Assert.AreEqual("Hold", paycheck.GetField("Disposition"));
            Assert.AreEqual(9.42M + 19.42M, paycheck.Deductions);
            Assert.AreEqual((8 * 15.24M) - (9.42M + 19.42M), paycheck.NetPay);
        }
Exemple #11
0
        public void TestHourlyUnionMemberServiceCharge()
        {
            int empId           = 1;
            AddHourlyEmployee t = new AddHourlyEmployee(empId, "Kubing", "Home", 15.24, database);

            t.Execute();

            int memberId = 7734;
            ChangeMemberTransaction cmt = new ChangeMemberTransaction(empId, memberId, 9.42, database);

            cmt.Execute();

            DateTime payDate             = new DateTime(2001, 11, 9);
            ServiceChargeTransaction sct = new ServiceChargeTransaction(memberId, payDate, 19.42, database);

            sct.Execute();

            TimeCardTransaction tct = new TimeCardTransaction(payDate, 8.0, empId, database);

            tct.Execute();

            PaydayTransaction pt = new PaydayTransaction(payDate, database);

            pt.Execute();

            Paycheck pc = pt.GetPaycheck(empId);

            Assert.IsNotNull(pc);
            Assert.AreEqual(payDate, pc.PayPeriodEnd);
            Assert.AreEqual(8 * 15.24, pc.GrossPay, 0.001);
            Assert.AreEqual("Hold", pc.GetField("Disposition"));
            Assert.AreEqual(9.42 + 19.42, pc.Deductions, 0.001);
            Assert.AreEqual((8 * 15.24) - (9.42 + 19.42), pc.NetPay, 0.001);
        }
Exemple #12
0
        public void TestTimeCardTransaction()
        {
            int empId = 31;
            var t     = new AddHourlyEmployee(empId, "Bill", "Home", 15.25, database);

            t.Execute();

            var today = DateTime.UtcNow;
            var tct   = new TimeCardTransaction(today, 8.0, empId, database);

            tct.Execute();

            Employee e = database.GetEmployee(empId);

            Assert.IsNotNull(e);

            PaymentClassification pc = e.Classification;

            Assert.IsTrue(pc is HourlyClassification);
            HourlyClassification hc = pc as HourlyClassification;

            TimeCard tc = hc.GetTimeCard(today);

            Assert.IsNotNull(tc);
            Assert.AreEqual(8.0, tc.Hours);
        }
Exemple #13
0
        public void TestAddTimeCard()
        {
            #region Arrange
            int employeeId      = 7;
            AddHourlyEmployee t = new AddHourlyEmployee(employeeId, "user", "home", 97.5);
            t.Execute();

            DateTime            workingDay = new DateTime(2019, 4, 21);
            TimeCardTransaction tct        = new TimeCardTransaction(
                employeeId, workingDay, 8.0
                );
            #endregion

            #region Action
            tct.Execute();
            #endregion

            #region Assert
            Employee e = PayrollRepository.GetEmployee(employeeId);
            e.Should().NotBeNull();

            e.Classification.Should().BeOfType <HourlyClassification>();
            HourlyClassification hc = e.Classification as HourlyClassification;

            TimeCard tc = hc.GetTimeCard(workingDay);
            tc.Should().NotBeNull();
            tc.Hours.Should().Be(8.0);
            #endregion
        }
Exemple #14
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            int                 id       = int.Parse(TextBox1.Text);
            string              name     = TextBox2.Text;
            DateTime            dateTime = DateTime.Now;
            double              hours    = float.Parse(TextBox3.Text);
            PayrollDatabase     database = new FunctionPayrollDatabase();
            TimeCardTransaction timeCard = new TimeCardTransaction(dateTime, hours, id, database);

            timeCard.Execute();
        }
Exemple #15
0
        public void PaySingleHourlyEmployeeOvertimeOneTimeCard()
        {
            int empId   = SetupHourlyEmployee();
            var payDate = new DateTime(2001, 11, 9); // Friday

            var tc = new TimeCardTransaction(payDate, 9.0, empId);

            tc.Execute();

            var pt = new PaydayTransaction(payDate);

            pt.Execute();

            ValidateNoDeductionPaycheck(empId, payDate, (8 + 1.5) * 15.25);
        }
Exemple #16
0
        public void PayingSingleHourlyEmployeeOvertimeTimeCards()
        {
            int empid           = 21;
            AddHourlyEmployee t = new AddHourlyEmployee(empid, "Bill", "Home", 15.25);

            t.Execute();
            DateTime            payDate = new DateTime(2015, 12, 4);
            TimeCardTransaction tc      = new TimeCardTransaction(payDate, 9.0, empid);

            tc.Execute();
            PaydayTransaction pt = new PaydayTransaction(payDate);

            pt.Execute();
            ValidateHourlyPaycheck(pt, empid, payDate, 9.5 * 15.25);
        }
Exemple #17
0
        public void TimeCardTransaction()
        {
            int empId = SetupHourlyEmployee();
            var tct   = new TimeCardTransaction(new DateTime(2005, 7, 31), 8.0, empId);

            tct.Execute();

            Employee e = PayrollDatabase.GetEmployee(empId);

            Assert.NotNull(e);

            var      hc = Assert.IsType <HourlyClassification>(e.Classification);
            TimeCard tc = hc.GetTimeCard(new DateTime(2005, 7, 31));

            Assert.NotNull(tc);
            Assert.Equal(8.0, tc.Hours);
        }
Exemple #18
0
        public void PayingSingleHourlyEmployeeOnWrongDate()
        {
            int employeeId          = AddHourlyEmployee();
            TimeCardTransaction tct = new TimeCardTransaction(
                employeeId, new DateTime(2019, 4, 22), 9);

            tct.Execute();

            DateTime          payDate = new DateTime(2019, 4, 25);
            PaydayTransaction pt      = new PaydayTransaction(payDate);

            pt.Execute();

            PayCheck pc = pt.GetPayCheck(employeeId);

            pc.Should().BeNull();
        }
Exemple #19
0
        public void PaySingleHourlyEmployeeOnWrongDate()
        {
            int empid           = 22;
            AddHourlyEmployee t = new AddHourlyEmployee(empid, "Bob", "Home", 15.25);

            t.Execute();
            DateTime            payDate = new DateTime(2015, 12, 3);
            TimeCardTransaction tc      = new TimeCardTransaction(payDate, 9.0, empid);

            tc.Execute();
            PaydayTransaction pt = new PaydayTransaction(payDate);

            pt.Execute();
            Paycheck pc = pt.GetPaycheck(empid);

            Assert.IsNull(pc);
        }
Exemple #20
0
        public void PayingSingleHourlyEmployeeWithOneTimeCard()
        {
            int employeeId          = AddHourlyEmployee();
            TimeCardTransaction tct = new TimeCardTransaction(
                employeeId, new DateTime(2019, 4, 22), 2);

            tct.Execute();

            DateTime          payDate = new DateTime(2019, 4, 26);
            PaydayTransaction pt      = new PaydayTransaction(payDate);

            pt.Execute();

            PayCheck pc = pt.GetPayCheck(employeeId);

            ValidateHourlyPayCheck(payDate, pc, 2 * 19.25);
        }
Exemple #21
0
        public void PaySingleHourlyEmployeeOnWrongDate()
        {
            int empId   = SetupHourlyEmployee();
            var payDate = new DateTime(2001, 11, 8); // Thursday

            var tc = new TimeCardTransaction(payDate, 9.0, empId);

            tc.Execute();

            var pt = new PaydayTransaction(payDate);

            pt.Execute();

            Paycheck pc = PaydayTransaction.GetPaycheck(empId);

            Assert.Null(pc);
        }
Exemple #22
0
        public void ServiceChargesSpanningMultiplePayPeriods()
        {
            int empId           = 1;
            AddHourlyEmployee t = new AddHourlyEmployee(
                empId, "Bill", "Home", 15.24, database);

            t.Execute();
            int memberId = 7734;
            ChangeMemberTransaction cmt =
                new ChangeMemberTransaction(empId, memberId, 9.42, database);

            cmt.Execute();
            DateTime payDate   = new DateTime(2001, 11, 9);
            DateTime earlyDate =
                new DateTime(2001, 11, 2);  // previous Friday
            DateTime lateDate =
                new DateTime(2001, 11, 16); // next Friday
            ServiceChargeTransaction sct =
                new ServiceChargeTransaction(memberId, payDate, 19.42, database);

            sct.Execute();
            ServiceChargeTransaction sctEarly =
                new ServiceChargeTransaction(memberId, earlyDate, 100.00, database);

            sctEarly.Execute();
            ServiceChargeTransaction sctLate =
                new ServiceChargeTransaction(memberId, lateDate, 200.00, database);

            sctLate.Execute();
            TimeCardTransaction tct =
                new TimeCardTransaction(payDate, 8.0, empId, database);

            tct.Execute();
            PaydayTransaction pt = new PaydayTransaction(payDate, database);

            pt.Execute();
            Paycheck pc = pt.GetPaycheck(empId);

            Assert.IsNotNull(pc);
            Assert.AreEqual(payDate, pc.PayPeriodEndDate);
            Assert.AreEqual(8 * 15.24, pc.GrossPay, .001);
            Assert.AreEqual("Hold", pc.GetField("Disposition"));
            Assert.AreEqual(9.42 + 19.42, pc.Deductions, .001);
            Assert.AreEqual((8 * 15.24) - (9.42 + 19.42), pc.NetPay, .001);
        }
Exemple #23
0
        public void PaySingleHourlyEmployeeTwoTimeCards()
        {
            int empId   = SetupHourlyEmployee();
            var payDate = new DateTime(2001, 11, 9); // Friday

            var tc = new TimeCardTransaction(payDate, 2.0, empId);

            tc.Execute();
            var tc2 = new TimeCardTransaction(payDate.AddDays(-1), 5.0, empId);

            tc2.Execute();

            var pt = new PaydayTransaction(payDate);

            pt.Execute();

            ValidateNoDeductionPaycheck(empId, payDate, 7 * 15.25);
        }
Exemple #24
0
        public void PaySingleHourlyEmployeeOneTimeCard()
        {
            int empId           = 2;
            AddHourlyEmployee t =
                new AddHourlyEmployee(empId, "Билл", "Домашний", 15.25);

            t.Execute();

            DateTime            payDate = new DateTime(2001, 11, 9); // пятница
            TimeCardTransaction tc      =
                new TimeCardTransaction(payDate, 2.0, empId);

            tc.Execute();
            PaydayTransaction pt = new PaydayTransaction(payDate);

            pt.Execute();
            ValidateHourlyPaycheck(pt, empId, payDate, 30.5);
        }
Exemple #25
0
        public void PaySingleHourlyEmployeeOvertimeOneTimeCard()
        {
            int empId           = 2;
            AddHourlyEmployee t = new AddHourlyEmployee(
                empId, "Bill", "Home", 15.25, database);

            t.Execute();
            DateTime payDate = new DateTime(2001, 11, 9); // Friday

            TimeCardTransaction tc =
                new TimeCardTransaction(payDate, 9.0, empId, database);

            tc.Execute();
            PaydayTransaction pt = new PaydayTransaction(payDate, database);

            pt.Execute();
            ValidatePaycheck(pt, empId, payDate, (8 + 1.5) * 15.25);
        }
Exemple #26
0
        public void PayingSingleHourlyEmployeeTwoTimeCards()
        {
            int empid           = 23;
            AddHourlyEmployee t = new AddHourlyEmployee(empid, "Bill", "HOme", 15.25);

            t.Execute();
            DateTime            payDate = new DateTime(2015, 12, 4);
            TimeCardTransaction tc      = new TimeCardTransaction(payDate, 2.0, empid);

            tc.Execute();
            TimeCardTransaction tc2 = new TimeCardTransaction(payDate.AddDays(-1), 5.0, empid);

            tc2.Execute();
            PaydayTransaction pt = new PaydayTransaction(payDate);

            pt.Execute();
            ValidateHourlyPaycheck(pt, empid, payDate, 7 * 15.25);
        }
Exemple #27
0
        public void TestPaySingleHourlyEmployeeOneTimeCard()
        {
            int empId = 2;
            var addTx = new AddHourlyEmployee(empId, "Bill", "Home", 15.25M);

            addTx.Execute();
            var payDate = new Date(11, 9, 2001);

            Assert.AreEqual(DayOfWeek.Friday, payDate.DayOfWeek);
            var timecardTx = new TimeCardTransaction(payDate, 2.0M, empId);

            timecardTx.Execute();

            var paydayTx = new PaydayTransaction(payDate);

            paydayTx.Execute();
            ValidateHourlyPaycheck(paydayTx, empId, payDate, 30.5M);
        }
Exemple #28
0
        public void TestPaySingleHourlyEmployeeOneTimeCard()
        {
            int empId           = 2;
            AddHourlyEmployee t = new AddHourlyEmployee(empId, "Kubing", "Home", 15.25, database);

            t.Execute();

            DateTime payDate = new DateTime(2001, 11, 9); //Friday

            TimeCardTransaction tct = new TimeCardTransaction(payDate, 2.0, empId, database);

            tct.Execute();

            PaydayTransaction pt = new PaydayTransaction(payDate, database);

            pt.Execute();

            ValidateHourlyPaycheck(pt, empId, payDate, 30.5);
        }
Exemple #29
0
        public void PaySingleHourlyEmployeeOvertimeOneTimeCard()
        {
            int               empId      = 3;
            string            name       = "Marek";
            string            address    = "Home";
            double            hourlyRate = 15.25;
            int               hours      = 9;
            AddHourlyEmployee t          = new AddHourlyEmployee(empId, name, address, hourlyRate);

            t.Execute();
            DateTime            payDate = new DateTime(2001, 11, 9); // piątek
            TimeCardTransaction tc      = new TimeCardTransaction(payDate, hours, empId);

            tc.Execute();
            PaydayTransaction pt = new PaydayTransaction(payDate);

            pt.Execute();
            ValidatePayCheck(pt, empId, payDate, (8 + 1.5) * hourlyRate);
        }
Exemple #30
0
        public void PaySingleHourlyEmployeeWithTimeCardsSpanningTwoPayPeriods()
        {
            int empId   = SetupHourlyEmployee();
            var payDate = new DateTime(2001, 11, 9); // Friday
            var dateInPreviousPayPeriod = new DateTime(2001, 11, 2);

            var tc = new TimeCardTransaction(payDate, 2.0, empId);

            tc.Execute();
            var tc2 = new TimeCardTransaction(dateInPreviousPayPeriod, 5.0, empId);

            tc2.Execute();

            var pt = new PaydayTransaction(payDate);

            pt.Execute();

            ValidateNoDeductionPaycheck(empId, payDate, 2 * 15.25);
        }
Exemple #31
0
 public void TimeCardTransaction()
 {
     int empId = 5;
     AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25);
     t.Execute();
     TimeCardTransaction tct = new TimeCardTransaction(new DateTime(2015, 10, 31), 8.0, empId);
     tct.Execute();
     Employee e = PayrollDatabase.GetEmployee(empId);
     Assert.IsNotNull(e);
 }