Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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();
        }