Example #1
0
        public void TestCalculateSalary_加班2小時_加班頭2小時比例為1點66_薪資應為1132()
        {
            //Scenario: 加班2小時:
            //    上班8小時,時薪100乘以8,加班2小時,加班費100乘以1.66乘以2,薪資應為1132
            //    Given 正常上班一小時薪資為 100
            //    And 加班薪資頭2小時,時薪比例為 1.66
            //    And 上班時間為 "2014/8/30 08:00:00"
            //    And 下班時間為 "2014/8/30 19:00:00"
            //    When 呼叫CalculateSalary方法
            //    Then 薪資計算結果應為 1132

            var target = new SalaryCard();
            target.HourlySalary = 100;

            //新增property
            target.FirstOverTimeRatio = 1.66;
            target.StartTime = new DateTime(2014, 8, 30, 8, 0, 0);
            target.EndTime = new DateTime(2014, 8, 30, 19, 0, 0);

            //act
            var actual = target.CalculateSalary();

            //assert
            var expected = 1132;
            Assert.AreEqual(expected, actual);
        }
Example #2
0
        public void TestCalculateSalary_沒有加班_正常上班8小時_時薪100乘以8_薪資應為800()
        {
            //Scenario: 沒有加班,正常上班8小時,時薪100乘以8,薪資應為800
            //Given 正常上班一小時薪資為 100
            //And 上班時間時間為 "2014/8/30 08:00:00"
            //And 下班時間為 "2014/8/30 17:00:00"
            //When 呼叫CalculateSalary方法
            //Then 薪資計算結果應為 800

            //arrange
            var target = new SalaryCard();
            target.HourlySalary = 100;
            target.StartTime = new DateTime(2014, 8, 30, 8, 0, 0);
            target.EndTime = new DateTime(2014, 8, 30, 17, 0, 0);

            //act
            var actual = target.CalculateSalary();

            //assert
            var expected = 800;
            Assert.AreEqual(expected, actual);
        }
Example #3
0
        public void TestCalculateSalary_加班5小時最多只能申報4小時_加班頭2小時比例為1點66_加班第3與第4小時比例為2_薪資應為1532()
        {
            //Scenario: 加班5小時,加班只能申報4小時
            //    上班8小時,時薪100乘以8,加班前2小時,加班費100乘以1.66乘以2,加班第3小時與第4小時,加班費100乘以2乘以2,薪資應為1532
            //    Given 正常上班一小時薪資為 100
            //    And 加班薪資頭2小時,時薪比例為 1.66
            //    And 加班薪資第3小時開始,時薪比例為 2
            //    And 上班時間為 "2014/8/30 08:00:00"
            //    And 下班時間為 "2014/8/30 22:00:00"
            //    When 呼叫CalculateSalary方法
            //    Then 薪資計算結果應為 1532

            var target = new SalaryCard();
            target.HourlySalary = 100;
            target.FirstOverTimeRatio = 1.66;
            target.SecondOverTimeRatio = 2;
            target.StartTime = new DateTime(2014, 8, 30, 8, 0, 0);
            target.EndTime = new DateTime(2014, 8, 30, 22, 0, 0);

            //act
            var actual = target.CalculateSalary();

            //assert
            var expected = 1532;
            Assert.AreEqual(expected, actual);
        }