public async Task RunBenchMarksAsync_Should_Return_Results_For_BenchMarkType_when_Cold_And_Warm_Calls_Are_Asked() { // Arrange var benchMarks = new List <BenchMarkType>() { // no properties are needer new BenchMarkType() }; var coldCalls = 1; var warmCalls = 1; var benchMarkResponse = new BenchMarkResponse(true, 1); _mockIBenchMarkService.Setup(service => service.RunBenchMarkAsync(It.IsAny <string>())).ReturnsAsync(benchMarkResponse); var testService = new BenchMarkTypeService(_mockIBenchMarkService.Object, null); // Act var benchMarkResults = await testService.RunBenchMarksAsync(benchMarks, coldCalls, warmCalls, 0); // Assert Assert.NotNull(benchMarkResults); Assert.Equal(2, benchMarkResults.Count); // colds are always run before the warm calls Assert.True(benchMarkResults[0].IsColdRequest); // warms come after the cold calls Assert.False(benchMarkResults[1].IsColdRequest); }
public async Task RunBenchMarksAsync_Should_Return_Results_For_BenchMarkType_when_Warm_Calls_Are_Asked() { // Arrange var benchMarks = new List <BenchMarkType>() { // no properties are needer new BenchMarkType() }; var coldCalls = 0; var warmCalls = 1; var benchMarkResponse = new BenchMarkResponse(true, 1); _mockIBenchMarkService.Setup(service => service.RunBenchMarkAsync(It.IsAny <string>())).ReturnsAsync(benchMarkResponse); var testService = new BenchMarkTypeService(_mockIBenchMarkService.Object, null); // Act var benchMarkResults = await testService.RunBenchMarksAsync(benchMarks, coldCalls, warmCalls, 0); // Assert Assert.NotNull(benchMarkResults); Assert.Single(benchMarkResults); Assert.False(benchMarkResults[0].IsColdRequest); }
public async Task RunBenchMarksAsync_Should_Return_Results_For_Multiple_BenchMarkTypes_When_Cold_And_Warm_Calls_Are_Asked() { // Arrange var benchMarks = new List <BenchMarkType>() { new BenchMarkType() { CloudProvider = CloudProvider.Azure, }, new BenchMarkType() { CloudProvider = CloudProvider.Firebase, } }; var coldCalls = 1; var warmCalls = 1; var benchMarkResponse = new BenchMarkResponse(true, 1); _mockIBenchMarkService.Setup(service => service.RunBenchMarkAsync(It.IsAny <string>())).ReturnsAsync(benchMarkResponse); var testService = new BenchMarkTypeService(_mockIBenchMarkService.Object, null); // Act var benchMarkResults = await testService.RunBenchMarksAsync(benchMarks, coldCalls, warmCalls, 0); // Assert Assert.NotNull(benchMarkResults); // 2 types, ,1 cold, 1 warm = 4 total Assert.Equal(4, benchMarkResults.Count); // FOR THE AZURE TYPE // colds are always run before the warm calls Assert.True(benchMarkResults[0].IsColdRequest); Assert.Equal(CloudProvider.Azure, benchMarkResults[0].CloudProvider); // we need something to identify the difference so use the provider for now // warms come after the cold calls Assert.False(benchMarkResults[1].IsColdRequest); Assert.Equal(CloudProvider.Azure, benchMarkResults[1].CloudProvider); // we need something to identify the difference so use the provider for now // FOR THE FIREBASE TYPE // colds are always run before the warm calls Assert.True(benchMarkResults[2].IsColdRequest); Assert.Equal(CloudProvider.Firebase, benchMarkResults[2].CloudProvider); // we need something to identify the difference so use the provider for now // warms come after the cold calls Assert.False(benchMarkResults[3].IsColdRequest); Assert.Equal(CloudProvider.Firebase, benchMarkResults[3].CloudProvider); // we need something to identify the difference so use the provider for now }
public async Task RunBenchMarksAsync_Should_Return_BenchMarkResponse_as_Properly_Converted_Results() { // Arrange var benchMarks = new List <BenchMarkType>() { new BenchMarkType() { Name = "TestBenchMark", CloudProvider = CloudProvider.Firebase, HostEnvironment = HostEnvironment.Linux, Runtime = Runtime.Fsharp, SetXFunctionsKey = true, }, }; var coldCalls = 1; var warmCalls = 0; var benchMarkResponse = new BenchMarkResponse(true, 567); _mockIBenchMarkService.Setup(service => service.RunBenchMarkAsync(It.IsAny <string>())).ReturnsAsync(benchMarkResponse); var testService = new BenchMarkTypeService(_mockIBenchMarkService.Object, null); // Act var benchMarkResults = await testService.RunBenchMarksAsync(benchMarks, coldCalls, warmCalls, 0); // Assert Assert.NotNull(benchMarkResults); var validationResult = benchMarkResults[0]; // from the benchmarktype Assert.True(validationResult.IsColdRequest); Assert.Equal(CloudProvider.Firebase, validationResult.CloudProvider); Assert.Equal(HostEnvironment.Linux, validationResult.HostingEnvironment); Assert.Equal(Runtime.Fsharp, validationResult.Runtime); // from the actual benchmark Assert.Equal(567, validationResult.RequestDuration); Assert.True(validationResult.Success); // Set by the DB Assert.Equal(default(DateTimeOffset), validationResult.CreatedAt); Assert.Equal(0, validationResult.Id); }
public async Task RunBenchMarksAsync_Should_Return_Empty_Results_On_No_BenchMarkTypes() { // Arrange var benchMarks = new List <BenchMarkType>(); var testService = new BenchMarkTypeService(null, null); // Act var benchMarkResults = await testService.RunBenchMarksAsync(benchMarks); // Assert Assert.NotNull(benchMarkResults); Assert.Empty(benchMarkResults); }
public async Task RunBenchMarksAsync_Should_Call_RunBenchMarkAsync_With_BenchMarkClient_String() { // Arrange var benchMarks = new List <BenchMarkType>() { new BenchMarkType() { Name = "TestBenchMark", CloudProvider = CloudProvider.Firebase, HostEnvironment = HostEnvironment.Linux, Runtime = Runtime.Fsharp, SetXFunctionsKey = true, }, }; var coldCalls = 1; var warmCalls = 0; var benchMarkResponse = new BenchMarkResponse(true, 567); _mockIBenchMarkService.Setup(service => service.RunBenchMarkAsync(It.IsAny <string>())).ReturnsAsync(benchMarkResponse); var testService = new BenchMarkTypeService(_mockIBenchMarkService.Object, null); // Act var benchMarkResults = await testService.RunBenchMarksAsync(benchMarks, coldCalls, warmCalls, 0); // Assert _mockIBenchMarkService.Verify(service => service.RunBenchMarkAsync(It.Is <string>(clientName => clientName == "TestBenchMarkClient")), Times.Once); }