Пример #1
0
        public void CanTimeFunctionWithExtension()
        {
            var svc = new MyService();

            Func<ResponseOne> opOneFunc = () => svc.OperationOne("Bozo");

            //Using WithTiming to record elapsed time of method call
            var opOneResponse = opOneFunc.WithTiming()();

            Assert.IsNotNull(opOneResponse.Item2.TotalSeconds);
        }
Пример #2
0
        public void CanReturnNull()
        {
            var svc = new MyService();

            Func<ResponseOne> opOneFunc = () => svc.OperationOne("Bozo");

            //Just return null
            var opOneResponse = opOneFunc.ReturnNull();

            Assert.IsNull(opOneResponse());
        }
Пример #3
0
        public void CanDelay()
        {
            var svc = new MyService();

            Func<ResponseOne> opOneFunc = () => svc.OperationThree("Bozo");

            //Add a delay and another delay to a function
            var opOneResponse = opOneFunc.WithDelay(TimeSpan.FromSeconds(1)).WithDelay(TimeSpan.FromSeconds(2))();

            Assert.IsNotNull(opOneResponse);
        }
Пример #4
0
        public void CanReturnDefault()
        {
            var svc = new MyService();

            Func<int> opFourFunc = svc.OperationFour;

            //Just return null
            var result = opFourFunc.ReturnDefault();

            Assert.AreEqual(result(), 0);
        }
Пример #5
0
        public void CanChainException()
        {
            var svc = new MyService();

            Func<ResponseOne> opOneFunc = () => svc.OperationOne("Bozo");

            //Delay response and return Null
            var funcResult = opOneFunc.WithDelay(TimeSpan.FromSeconds(1)).ThrowException(new NullReferenceException());

            Assert.IsNull(funcResult());
        }
Пример #6
0
        public void CanChainBeforeNull()
        {
            var svc = new MyService();

            Func<ResponseOne> opOneFunc = () => svc.OperationOne("Bozo");

            //Delay response and return Null
            var opOneResponse = opOneFunc.WithDelay(TimeSpan.FromSeconds(1)).ReturnDefault();

            Assert.IsNull(opOneResponse());
        }
Пример #7
0
        public void CanChainDelayAndTiming()
        {
            var svc = new MyService();

            Func<ResponseOne> opOneFunc = () => svc.OperationThree("Bozo");

            //Using delay and Timing together
            var opOneResponse = opOneFunc.WithTiming().WithDelay(TimeSpan.FromSeconds(1))();

            Assert.IsNotNull(opOneResponse.Item1);

            var svc2 = new MyService();

            Func<ResponseTwo> opTwoFunc = () => svc2.OperationTwo(true);

            //Using delay and Timing together
            var opTwoResponse = opTwoFunc.WithDelay(TimeSpan.FromSeconds(1)).WithTiming()();

            Assert.IsNotNull(opTwoResponse.Item1);
        }
Пример #8
0
        public void CanAddMeasurementResults()
        {
            var svc = new MyService();

            var result = new MyMeasurementResults();

            using (new PerformanceMeasurement(result, MeasurementName.ResponseOne))
            {
                svc.OperationOne("Bozo");
            }

            using (new PerformanceMeasurement(result, MeasurementName.ResponseTwo))
            {
                svc.OperationTwo(true);
            }

            Assert.IsNotNull(result.GetMeasurement(MeasurementName.ResponseOne));
            Assert.IsNotNull(result.GetMeasurement(MeasurementName.ResponseTwo));
            Assert.AreEqual(result.GetAllMeasurements().Count, 2);
        }
Пример #9
0
        public void CanTimeFunctionWithUsingStatement()
        {
            var svc = new MyService();

            //Setup class which will hold elapse times
            var result = new MyMeasurementResults();

            //Using PerformanceMeasurement to add elapse time into result
            using (new PerformanceMeasurement(result, MeasurementName.ResponseOne))
            {
                svc.OperationOne("Bozo");
            }

            //Get elapse time from result
            Assert.IsNotNull(result.GetMeasurement(MeasurementName.ResponseOne));
        }