public void MediumPriority() { //Arrange var sut = new PriorityStrategyContext(new MediumPriorityStrategy()); var dateTime = new DateTime(2018, 07, 20, 9, 30, 29); //Act var hoursUntilSLAFail = sut.ExecuteSLAStrategy(dateTime); //Assert Assert.AreEqual(12, hoursUntilSLAFail); }
public void LowPriority_NotInJanuary() { //Arrange var sut = new PriorityStrategyContext(new LowPriorityStrategy()); var dateTimeNotInJanuary = new DateTime(2018, 11, 23, 19, 30, 29); //Act var hoursUntilSLAFail = sut.ExecuteSLAStrategy(dateTimeNotInJanuary); //Assert Assert.AreEqual(24, hoursUntilSLAFail); }
public void HighPriority_Before1700Hrs() { //Arrange var sut = new PriorityStrategyContext(new HighPriorityStrategy()); var dateTimeAfter1700Hrs = new DateTime(2018, 07, 20, 9, 30, 29); //Act var hoursUntilSLAFail = sut.ExecuteSLAStrategy(dateTimeAfter1700Hrs); //Assert Assert.AreEqual(1, hoursUntilSLAFail); }
static void Main(string[] args) { Console.WriteLine("What priority is this Job? High, Medium or Low?"); var priority = Console.ReadLine(); PriorityStrategyContext strategy = new PriorityStrategyContext(new DefaultPriorityStrategy()); if (Enum.TryParse(priority, out PriorityEnum priorityEnum)) { switch (priorityEnum) { case PriorityEnum.High: strategy = new PriorityStrategyContext(new HighPriorityStrategy()); break; case PriorityEnum.Medium: strategy = new PriorityStrategyContext(new MediumPriorityStrategy()); break; case PriorityEnum.Low: strategy = new PriorityStrategyContext(new LowPriorityStrategy()); break; default: strategy = new PriorityStrategyContext(new HighPriorityStrategy()); break; } } var theTimeRightNow = DateTime.UtcNow; var timeUntilSLARequired = strategy.ExecuteSLAStrategy(theTimeRightNow); Console.WriteLine($"This Job needs to be completed in {timeUntilSLARequired} hours"); Console.ReadLine(); }