private async Task <TestResultViewModel> TestCard(FileViewModel cardFile, FileViewModel hostConfigFile)
        {
            var renderResult = await RenderCard(cardFile, hostConfigFile);

            var result = await TestResultViewModel.CreateAsync(
                cardFile : cardFile,
                hostConfigFile : hostConfigFile,
                actualError : renderResult.Item1,
                actualImageFile : renderResult.Item2,
                expectedFolder : _expectedFolder,
                sourceHostConfigsFolder : _sourceHostConfigsFolder,
                sourceCardsFolder : _sourceCardsFolder);

            OnSingleTestCompleted?.Invoke(this, result.Status);
            return(result);
        }
Ejemplo n.º 2
0
        private async Task <TestResultViewModel> TestCard(FileViewModel cardFile, FileViewModel hostConfigFile)
        {
            Dictionary <string, IAdaptiveCardResourceResolver> resourceResolvers = new Dictionary <string, IAdaptiveCardResourceResolver>();

            resourceResolvers.Add("symbol", new SampleResourceResolver());

            var renderResult = await RenderCard(cardFile, hostConfigFile, resourceResolvers);

            var result = await TestResultViewModel.CreateAsync(
                cardFile : cardFile,
                hostConfigFile : hostConfigFile,
                renderedTestResult : renderResult.Item1,
                actualImageFile : renderResult.Item2,
                actualJsonFile : renderResult.Item3,
                expectedFolder : _expectedFolder,
                sourceHostConfigsFolder : _sourceHostConfigsFolder,
                sourceCardsFolder : _sourceCardsFolder);

            OnSingleTestCompleted?.Invoke(this, result.Status);
            return(result);
        }
        private async Task <TestResultViewModel> TestCard(FileViewModel cardFile, FileViewModel hostConfigFile)
        {
            Dictionary <string, IAdaptiveCardResourceResolver> resourceResolvers = new Dictionary <string, IAdaptiveCardResourceResolver>();

            resourceResolvers.Add("symbol", new SampleResourceResolver());

            uint reruns = 0;
            TestResultViewModel result = null;
            bool retryImage            = true;

            while (retryImage)
            {
                var renderResult = await RenderCard(cardFile, hostConfigFile, resourceResolvers);

                result = await TestResultViewModel.CreateAsync(
                    cardFile : cardFile,
                    hostConfigFile : hostConfigFile,
                    renderedTestResult : renderResult.Item1,
                    actualImageFile : renderResult.Item2,
                    actualJsonFile : renderResult.Item3,
                    expectedFolder : _expectedFolder,
                    sourceHostConfigsFolder : _sourceHostConfigsFolder,
                    sourceCardsFolder : _sourceCardsFolder);

                if (!result.Status.IsPassingStatus())
                {
                    // Retry if we failed on image matching for an unchanged card to allow for
                    // occasional differences in image rendering
                    retryImage = result.Status.OriginalMatched && !result.Status.ImageMatched && (reruns < 3);
                    reruns++;
                }
                else
                {
                    retryImage = false;
                }
            }

            OnSingleTestCompleted?.Invoke(this, result.Status);
            return(result);
        }