Exemple #1
0
        public void TestCommissionedEmployee()
        {
            int empId = 1;
            AddCommissionEmployee t = new AddCommissionEmployee(empId, "Kubing", "Home", 500.00, 80.00, database);

            t.Execute();

            Employee e = database.GetEmployee(empId);

            Assert.That("Kubing", Is.EqualTo(e.Name));

            PaymentClassification pc = e.Classification;

            Assert.That(pc is CommissionedClassification, Is.True);

            CommissionedClassification sc = pc as CommissionedClassification;

            Assert.AreEqual(500.00, sc.Salary, .001);
            Assert.AreEqual(80.00, sc.CommissionRate, .001);

            PaymentSchedule ps = e.Schedule;

            Assert.That(ps is BiweeklySchedule, Is.True);

            PaymentMethod pm = e.Method;

            Assert.That(pm is HoldMethod, Is.True);
        }
Exemple #2
0
        public void TestChangeSalariedTransaction()
        {
            int empId = 4;
            AddCommissionEmployee t = new AddCommissionEmployee(empId, "Kubing", "Home", 2500, 3.2, database);

            t.Execute();

            ChangeSalariedTransaction cst = new ChangeSalariedTransaction(empId, 1000.00, database);

            cst.Execute();

            Employee e = database.GetEmployee(empId);

            Assert.IsNotNull(e);

            PaymentClassification pc = e.Classification;

            Assert.IsNotNull(pc);
            Assert.IsTrue(pc is SalariedClassification);

            SalariedClassification sc = pc as SalariedClassification;

            Assert.AreEqual(1000.00, sc.Salary, 0.001);

            PaymentSchedule ps = e.Schedule;

            Assert.IsTrue(ps is MonthlySchedule);
        }
Exemple #3
0
        public void TestChangeHourlyTransaction()
        {
            int empId = 3;
            AddCommissionEmployee t = new AddCommissionEmployee(empId, "Kubing", "Home", 2500, 3.2, database);

            t.Execute();

            ChangeHourlyTransaction cht = new ChangeHourlyTransaction(empId, 27.52, database);

            cht.Execute();

            Employee e = database.GetEmployee(empId);

            Assert.IsNotNull(e);

            PaymentClassification pc = e.Classification;

            Assert.IsNotNull(pc);
            Assert.IsTrue(pc is HourlyClassification);

            HourlyClassification hc = pc as HourlyClassification;

            Assert.AreEqual(27.52, hc.HourlyRate, 0.001);

            PaymentSchedule ps = e.Schedule;

            Assert.IsTrue(ps is WeeklySchedule);
        }
Exemple #4
0
        public void TestSalesReceiptTransaction()
        {
            int empId = 6;
            AddCommissionEmployee t = new AddCommissionEmployee(empId, "Kubing", "Home", 2000, 3.0, database);

            t.Execute();

            var saleDay = new DateTime(2017, 3, 19);
            SalesReceiptTransaction srt = new SalesReceiptTransaction(saleDay, 4, empId, database);

            srt.Execute();

            Employee e = database.GetEmployee(empId);

            Assert.IsNotNull(e);

            PaymentClassification pc = e.Classification;

            Assert.IsTrue(pc is CommissionedClassification);

            CommissionedClassification hc = pc as CommissionedClassification;
            var salesReceipts             = database.GetSalesReceipts(empId).ToList();
            var sr = salesReceipts.FirstOrDefault(x => x.Date == saleDay);

            Assert.IsNotNull(sr);
            Assert.AreEqual(4, sr.Amount);
        }
Exemple #5
0
        public void TestPaySingleCommissionEmployeeWithNoSalesReceipt()
        {
            int empId = 4;
            AddCommissionEmployee t = new AddCommissionEmployee(empId, "Kubing", "Home", 2000.0, 3.0, database);

            t.Execute();

            DateTime payDate = new DateTime(2001, 11, 16);

            PaydayTransaction pt = new PaydayTransaction(payDate, database);

            pt.Execute();

            ValidateCommissionedPaycheck(pt, empId, payDate, 2000.0);
        }
Exemple #6
0
        public void TestDeleteEmployee()
        {
            int empId = 4;
            AddCommissionEmployee t = new AddCommissionEmployee(empId, "Kubing", "Home", 2500, 3.2, database);

            t.Execute();

            Employee e = database.GetEmployee(empId);

            Assert.That(e, Is.Not.Null);

            DeleteEmployeeTransaction dt = new DeleteEmployeeTransaction(empId, database);

            dt.Execute();

            Employee e2 = database.GetEmployee(empId);

            Assert.That(e2, Is.Null);
        }
Exemple #7
0
        public void TestChangeHoldTransaction()
        {
            int empId = 4;
            AddCommissionEmployee t = new AddCommissionEmployee(empId, "Kubing", "Home", 2000.00, 3.1, database);

            t.Execute();

            ChangeHoldTransaction cmt = new ChangeHoldTransaction(empId, database);

            cmt.Execute();

            Employee e = database.GetEmployee(empId);

            Assert.IsNotNull(e);

            PaymentMethod pm = e.Method;

            Assert.IsNotNull(pm);
            Assert.IsTrue(pm is HoldMethod);
        }
Exemple #8
0
        public void TestPaySingleCommissionEmployeeOnWrongDate()
        {
            int empId = 5;
            AddCommissionEmployee t = new AddCommissionEmployee(empId, "Kubing", "Home", 2000.0, 3.0, database);

            t.Execute();

            DateTime payDate = new DateTime(2001, 11, 15);

            SalesReceiptTransaction srt = new SalesReceiptTransaction(payDate, 3, empId, database);

            srt.Execute();

            PaydayTransaction pt = new PaydayTransaction(payDate, database);

            pt.Execute();

            Paycheck pc = pt.GetPaycheck(empId);

            Assert.IsNull(pc);
        }
Exemple #9
0
        public void TestPaySingleCommissionEmployeeTwoSalesReceipts()
        {
            int empId = 5;
            AddCommissionEmployee t = new AddCommissionEmployee(empId, "Kubing", "Home", 2000.0, 3.0, database);

            t.Execute();

            DateTime payDate = new DateTime(2001, 11, 16);

            SalesReceiptTransaction srt = new SalesReceiptTransaction(payDate, 3, empId, database);

            srt.Execute();

            SalesReceiptTransaction srt2 = new SalesReceiptTransaction(payDate.AddDays(-1), 12, empId, database);

            srt2.Execute();

            PaydayTransaction pt = new PaydayTransaction(payDate, database);

            pt.Execute();

            ValidateCommissionedPaycheck(pt, empId, payDate, 2000.0 + 15 * 3.0);
        }
Exemple #10
0
        public void TestPaySingleCommissionEmployeeWithSalesReceiptsSpanningTwoPayPeriods()
        {
            int empId = 5;
            AddCommissionEmployee t = new AddCommissionEmployee(empId, "Kubing", "Home", 2000.0, 3.0, database);

            t.Execute();

            DateTime payDate = new DateTime(2001, 11, 16);
            DateTime dateInPreviousPayPeriod = new DateTime(2001, 11, 1);

            SalesReceiptTransaction srt = new SalesReceiptTransaction(payDate, 3, empId, database);

            srt.Execute();

            SalesReceiptTransaction srt2 = new SalesReceiptTransaction(dateInPreviousPayPeriod, 12, empId, database);

            srt2.Execute();

            PaydayTransaction pt = new PaydayTransaction(payDate, database);

            pt.Execute();

            ValidateCommissionedPaycheck(pt, empId, payDate, 2000.0 + 3 * 3.0);
        }