public void BreakPadsAndDiscsWereChangedAtTheSameTime() { var breakPads = new Item { ItemId = Guid.NewGuid(), GenericCategory = "Break Pads", UnitCost = 50, ItemName = "Pads", ItemTime = 60 }; var discs = new Item { ItemId = Guid.NewGuid(), GenericCategory = "Discs", UnitCost = 90, ItemName = "Discs", ItemTime = 100 }; _jobSheet.Items = new List <Item>(); _jobSheet.Items.Add(breakPads); _jobSheet.Items.Add(discs); var jobApprovalDecision = new JobApprovalDecision(JobApprovalDecisionEnum.Approved); var jobRulesEvaluatorMock = new Mock <JobRulesEvaluator>() { CallBase = true }; Assert.AreEqual(jobApprovalDecision.JobApprovalDecisionEnum, jobRulesEvaluatorMock.Object.EvaluateBreakPadsAndDiscsChangeTogetherRule(_jobSheet).JobApprovalDecisionEnum); Assert.AreEqual(jobApprovalDecision.ReasonForDeclining, jobRulesEvaluatorMock.Object.EvaluateBreakPadsAndDiscsChangeTogetherRule(_jobSheet).ReasonForDeclining); }
public void ReferenceHoursExceedTotalHoursOfLabour() { var pads = new Item { ItemId = Guid.NewGuid(), GenericCategory = "Break Pads", UnitCost = 50, ItemName = "Pads", ItemTime = 60 }; var discs = new Item { ItemId = Guid.NewGuid(), GenericCategory = "Break Discs", UnitCost = 90, ItemName = "Discs", ItemTime = 160 }; _jobSheet.ReferenceHoursInMin = 221; _jobSheet.Items = new List <Item>(); _jobSheet.Items.Add(pads); _jobSheet.Items.Add(discs); var jobApprovalDecision = new JobApprovalDecision(JobApprovalDecisionEnum.Declined); var jobRulesEvaluatorMock = new Mock <JobRulesEvaluator>() { CallBase = true }; Assert.AreEqual(jobApprovalDecision.JobApprovalDecisionEnum, jobRulesEvaluatorMock.Object.EvaluateReferenceHoursNotExceedTotalHoursOfLabourRule(_jobSheet).JobApprovalDecisionEnum); }
public void TyresChangedInPairsAndMaxFour() { var tyreOne = new Item { ItemId = Guid.NewGuid(), GenericCategory = "Tyres", UnitCost = 200, ItemName = "Tyre One", ItemTime = 30 }; var tyreTwo = new Item { ItemId = Guid.NewGuid(), GenericCategory = "Tyres", UnitCost = 200, ItemName = "Tyre Two", ItemTime = 30 }; _jobSheet.Items = new List <Item>(); _jobSheet.Items.Add(tyreOne); _jobSheet.Items.Add(tyreTwo); var jobApprovalDecision = new JobApprovalDecision(JobApprovalDecisionEnum.Approved); var jobRulesEvaluatorMock = new Mock <JobRulesEvaluator>() { CallBase = true }; Assert.AreEqual(jobApprovalDecision.JobApprovalDecisionEnum, jobRulesEvaluatorMock.Object.EvaluateTyresChangedInPairsAndMaxFourRule(_jobSheet).JobApprovalDecisionEnum); }
public void ExceedingOneExhaust() { var exhaustOne = new Item { ItemId = Guid.NewGuid(), GenericCategory = "Exhaust", UnitCost = 175, ItemName = "Exhaust 1", ItemTime = 240 }; var exhaustTwo = new Item { ItemId = Guid.NewGuid(), GenericCategory = "Exhaust", UnitCost = 175, ItemName = "Exhaust 2", ItemTime = 240 }; _jobSheet.Items = new List <Item>(); _jobSheet.Items.Add(exhaustOne); _jobSheet.Items.Add(exhaustTwo); var jobApprovalDecision = new JobApprovalDecision(JobApprovalDecisionEnum.Declined); var jobRulesEvaluatorMock = new Mock <JobRulesEvaluator>() { CallBase = true }; Assert.AreEqual(jobApprovalDecision.JobApprovalDecisionEnum, jobRulesEvaluatorMock.Object.EvaluateOneExhaustRule(_jobSheet).JobApprovalDecisionEnum); }
public void DeclineOverallDecisionAbove15Percent() { var tyreOne = new Item { ItemId = Guid.NewGuid(), GenericCategory = "Tyres", UnitCost = 200, ItemName = "Tyre One", ItemTime = 30 }; var tyreTwo = new Item { ItemId = Guid.NewGuid(), GenericCategory = "Tyres", UnitCost = 200, ItemName = "Tyre Two", ItemTime = 30 }; _jobSheet.Items = new List <Item>(); _jobSheet.Items.Add(tyreOne); _jobSheet.Items.Add(tyreTwo); var twelvePercent = (_jobSheet.TotalCost / 100) * (decimal)15.1; _jobSheet.ReferenceTotalPrice = _jobSheet.TotalCost + twelvePercent; var jobApprovalDecision = new JobApprovalDecision(JobApprovalDecisionEnum.Declined); var jobRulesEvaluatorMock = new Mock <JobRulesEvaluator>() { CallBase = true }; Assert.AreEqual(jobApprovalDecision.JobApprovalDecisionEnum, jobRulesEvaluatorMock.Object.EvaluateOverallDecisionRule(_jobSheet).JobApprovalDecisionEnum); }