public bool TryGetValue(string key, out TestResult testResult) { var blob = TestResultsContainer.GetBlockBlobReference(key); if (!blob.Exists()) { testResult = default(TestResult); return(false); } var str = blob.DownloadText(); var obj = (TestResultJson)JsonConvert.DeserializeObject(str, typeof(TestResultJson)); testResult = new TestResult( exitCode: obj.ExitCode, outputStandard: obj.OutputStandard, outputError: obj.OutputError, resultsFileName: obj.ResultsFileName, resultsFileContent: obj.ResultsFileContent, unitTestData: new UnitTestData( passed: obj.Passed, failed: obj.Failed, skipped: obj.Skipped), elapsed: TimeSpan.FromSeconds(obj.ElapsedSeconds)); return(true); }
public void TestShowStatisticsAndClickOtherPanel() { TestResultsScreen screen = null; AddStep("load results", () => Child = new TestResultsContainer(screen = createResultsScreen())); AddUntilStep("wait for load", () => this.ChildrenOfType <ScorePanelList>().Single().AllPanelsVisible); ScorePanel expandedPanel = null; ScorePanel contractedPanel = null; AddStep("click expanded panel then contracted panel", () => { expandedPanel = this.ChildrenOfType <ScorePanel>().Single(p => p.State == PanelState.Expanded); InputManager.MoveMouseTo(expandedPanel); InputManager.Click(MouseButton.Left); contractedPanel = this.ChildrenOfType <ScorePanel>().First(p => p.State == PanelState.Contracted && p.ScreenSpaceDrawQuad.TopLeft.X > screen.ScreenSpaceDrawQuad.TopLeft.X); InputManager.MoveMouseTo(contractedPanel); InputManager.Click(MouseButton.Left); }); AddAssert("statistics shown", () => this.ChildrenOfType <StatisticsPanel>().Single().State.Value == Visibility.Visible); AddAssert("contracted panel still contracted", () => contractedPanel.State == PanelState.Contracted); AddAssert("expanded panel still expanded", () => expandedPanel.State == PanelState.Expanded); }
public void Add(string key, TestResult value) { if (string.IsNullOrEmpty(value.ResultsFileContent) || value.ResultsFileContent.Length > SizeLimit) { throw new Exception("Data too big"); } var blob = TestResultsContainer.GetBlockBlobReference(key); var obj = new TestResultJson() { ExitCode = value.ExitCode, OutputStandard = value.OutputStandard, OutputError = value.OutputError, ResultsFileName = value.ResultsFileName, ResultsFileContent = value.ResultsFileContent, ElapsedSeconds = value.Elapsed.TotalSeconds, Passed = value.UnitTestData.Passed, Failed = value.UnitTestData.Failed, Skipped = value.UnitTestData.Skipped }; var str = JsonConvert.SerializeObject(obj); blob.UploadText(str); }
public void TestResultsForUnranked() { UnrankedSoloResultsScreen screen = null; AddStep("load results", () => Child = new TestResultsContainer(screen = createUnrankedSoloResultsScreen())); AddUntilStep("wait for loaded", () => screen.IsLoaded); AddAssert("retry overlay present", () => screen.RetryOverlay != null); }
public void ResultsWithPlayer() { TestSoloResults screen = null; AddStep("load results", () => Child = new TestResultsContainer(screen = createResultsScreen())); AddUntilStep("wait for loaded", () => screen.IsLoaded); AddAssert("retry overlay present", () => screen.RetryOverlay != null); }
public void TestResultsWithPlayer(double accuracy, ScoreRank rank) { TestResultsScreen screen = null; var score = TestResources.CreateTestScoreInfo(); score.Accuracy = accuracy; score.Rank = rank; AddStep("load results", () => Child = new TestResultsContainer(screen = createResultsScreen(score))); AddUntilStep("wait for loaded", () => screen.IsLoaded); AddAssert("retry overlay present", () => screen.RetryOverlay != null); }
public void TestRulesetWithNoPerformanceCalculator() { var ruleset = new RulesetWithNoPerformanceCalculator(); var score = TestResources.CreateTestScoreInfo(ruleset.RulesetInfo); AddStep("load results", () => Child = new TestResultsContainer(createResultsScreen(score))); AddUntilStep("wait for load", () => this.ChildrenOfType <ScorePanelList>().Single().AllPanelsVisible); AddAssert("PP displayed as 0", () => { var performance = this.ChildrenOfType <PerformanceStatistic>().Single(); var counter = performance.ChildrenOfType <StatisticCounter>().Single(); return(counter.Current.Value == 0); }); }
public int GetCount(DateTimeOffset?startDate) { var count = 0; foreach (var blob in TestResultsContainer.ListBlobs().OfType <CloudBlockBlob>()) { var lastModified = blob.Properties.LastModified.Value.UtcDateTime; if (!startDate.HasValue || lastModified >= startDate.Value) { count++; } } return(count); }
private void loadResultsScreen(Func <ResultsScreen> createResults) { ResultsScreen results = null; AddStep("load results", () => Child = new TestResultsContainer(results = createResults())); // expanded panel should be centered the moment results screen is loaded // but can potentially be scrolled away on certain specific load scenarios. // see: https://github.com/ppy/osu/issues/18226 AddUntilStep("expanded panel in centre of screen", () => { var expandedPanel = this.ChildrenOfType <ScorePanel>().Single(p => p.State == PanelState.Expanded); return(Precision.AlmostEquals(expandedPanel.ScreenSpaceDrawQuad.Centre.X, results.ScreenSpaceDrawQuad.Centre.X, 1)); }); }
public void TestFetchScoresAfterShowingStatistics() { DelayedFetchResultsScreen screen = null; AddStep("load results", () => Child = new TestResultsContainer(screen = new DelayedFetchResultsScreen(new TestScoreInfo(new OsuRuleset().RulesetInfo), 3000))); AddUntilStep("wait for loaded", () => screen.IsLoaded); AddStep("click expanded panel", () => { var expandedPanel = this.ChildrenOfType <ScorePanel>().Single(p => p.State == PanelState.Expanded); InputManager.MoveMouseTo(expandedPanel); InputManager.Click(MouseButton.Left); }); AddUntilStep("wait for fetch", () => screen.FetchCompleted); AddAssert("expanded panel still on screen", () => this.ChildrenOfType <ScorePanel>().Single(p => p.State == PanelState.Expanded).ScreenSpaceDrawQuad.TopLeft.X > 0); }
public void TestDownloadButtonInitiallyDisabled() { TestResultsScreen screen = null; AddStep("load results", () => Child = new TestResultsContainer(screen = createResultsScreen())); AddAssert("download button is disabled", () => !screen.ChildrenOfType <DownloadButton>().Last().Enabled.Value); AddStep("click contracted panel", () => { var contractedPanel = this.ChildrenOfType <ScorePanel>().First(p => p.State == PanelState.Contracted && p.ScreenSpaceDrawQuad.TopLeft.X > screen.ScreenSpaceDrawQuad.TopLeft.X); InputManager.MoveMouseTo(contractedPanel); InputManager.Click(MouseButton.Left); }); AddAssert("download button is enabled", () => screen.ChildrenOfType <DownloadButton>().Last().Enabled.Value); }
public void TestShowHideStatistics() { TestResultsScreen screen = null; AddStep("load results", () => Child = new TestResultsContainer(screen = createResultsScreen())); AddUntilStep("wait for load", () => this.ChildrenOfType <ScorePanelList>().Single().AllPanelsVisible); AddStep("click expanded panel", () => { var expandedPanel = this.ChildrenOfType <ScorePanel>().Single(p => p.State == PanelState.Expanded); InputManager.MoveMouseTo(expandedPanel); InputManager.Click(MouseButton.Left); }); AddAssert("statistics shown", () => this.ChildrenOfType <StatisticsPanel>().Single().State.Value == Visibility.Visible); AddUntilStep("expanded panel at the left of the screen", () => { var expandedPanel = this.ChildrenOfType <ScorePanel>().Single(p => p.State == PanelState.Expanded); return(expandedPanel.ScreenSpaceDrawQuad.TopLeft.X - screen.ScreenSpaceDrawQuad.TopLeft.X < 150); }); AddStep("click expanded panel", () => { var expandedPanel = this.ChildrenOfType <ScorePanel>().Single(p => p.State == PanelState.Expanded); InputManager.MoveMouseTo(expandedPanel); InputManager.Click(MouseButton.Left); }); AddAssert("statistics hidden", () => this.ChildrenOfType <StatisticsPanel>().Single().State.Value == Visibility.Hidden); AddUntilStep("expanded panel in centre of screen", () => { var expandedPanel = this.ChildrenOfType <ScorePanel>().Single(p => p.State == PanelState.Expanded); return(Precision.AlmostEquals(expandedPanel.ScreenSpaceDrawQuad.Centre.X, screen.ScreenSpaceDrawQuad.Centre.X, 1)); }); }
public void TestFetchScoresAfterShowingStatistics() { DelayedFetchResultsScreen screen = null; var tcs = new TaskCompletionSource <bool>(); AddStep("load results", () => Child = new TestResultsContainer(screen = new DelayedFetchResultsScreen(TestResources.CreateTestScoreInfo(), tcs.Task))); AddUntilStep("wait for loaded", () => screen.IsLoaded); AddStep("click expanded panel", () => { var expandedPanel = this.ChildrenOfType <ScorePanel>().Single(p => p.State == PanelState.Expanded); InputManager.MoveMouseTo(expandedPanel); InputManager.Click(MouseButton.Left); }); AddAssert("no fetch yet", () => !screen.FetchCompleted); AddStep("allow fetch", () => tcs.SetResult(true)); AddUntilStep("wait for fetch", () => screen.FetchCompleted); AddAssert("expanded panel still on screen", () => this.ChildrenOfType <ScorePanel>().Single(p => p.State == PanelState.Expanded).ScreenSpaceDrawQuad.TopLeft.X > 0); }