Example #1
0
        //[Theory, AutoData]
        public void Compare_ShouldReturnCorrectValue(
            Generator <int> generator)
        {
            //arrange
            var firstActionTime  = generator.First(i => i >= 50 && i <= 100);
            var secondActionTime = generator.First(i => i >= 50 && i <= 100);

            //act
            var actual = PerformanceTime.Compare(() => Thread.Sleep(firstActionTime), () => Thread.Sleep(secondActionTime));

            //assert
            actual.Item1.Milliseconds.Should().BeInRange(firstActionTime, firstActionTime + 5);
            actual.Item2.Milliseconds.Should().BeInRange(secondActionTime, secondActionTime + 5);
        }
Example #2
0
        //[Theory, AutoData]
        public async Task CompareAsync_ShouldReturnCorrectValue(
            Generator <int> generator)
        {
            //arrange
            var firstActionTime  = generator.First(i => i >= 50 && i <= 100);
            var secondActionTime = generator.First(i => i >= 50 && i <= 100);

            //act
            var actual = await PerformanceTime.Compare(() => Task.Delay(firstActionTime), () => Task.Delay(secondActionTime));

            //assert
            actual.Item1.Milliseconds.Should().BeInRange(firstActionTime, firstActionTime + 20);
            actual.Item2.Milliseconds.Should().BeInRange(secondActionTime, secondActionTime + 20);
        }
Example #3
0
        public void ResolveViewModel_WhenCalled2Times_ShouldBeFasterTheSecondTime(
            [Frozen] Mock <IViewModelFactory> viewModelFactory,
            CreateCommandsAndOvvmViewModelFactory sut,
            object request,
            Mock <ViewModelWithCommands> expected)
        {
            //arrange
            viewModelFactory.Setup(v => v.ResolveViewModel(request)).Returns(expected.Object);

            //act
            var firstCallTime  = PerformanceTime.Measure(() => sut.ResolveViewModel(request)).DebugWriteline("First call : {0}");
            var secondCallTime = PerformanceTime.Measure(() => sut.ResolveViewModel(request)).DebugWriteline("Second call : {0}");

            //assert
            secondCallTime.Should().BeLessThan(firstCallTime);
        }