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); }
public void CanReturnNull() { var svc = new MyService(); Func<ResponseOne> opOneFunc = () => svc.OperationOne("Bozo"); //Just return null var opOneResponse = opOneFunc.ReturnNull(); Assert.IsNull(opOneResponse()); }
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); }
public void CanReturnDefault() { var svc = new MyService(); Func<int> opFourFunc = svc.OperationFour; //Just return null var result = opFourFunc.ReturnDefault(); Assert.AreEqual(result(), 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()); }
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()); }
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); }
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); }
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)); }