コード例 #1
0
        /// <inheritdoc />
        public string ResolveResourcePath(Uri resourceUri)
        {
            if (resourceUri == null)
            {
                throw new ArgumentNullException("resourceUri");
            }

            if (resourceUri.IsFile)
            {
                return(Path.GetFullPath(resourceUri.LocalPath));
            }

            if (resourceUri.Scheme == @"plugin")
            {
                string            pluginId     = resourceUri.Host;
                string            relativePath = resourceUri.PathAndQuery;
                IPluginDescriptor plugin       = GenericCollectionUtils.Find(registry.Plugins,
                                                                             p => string.Compare(pluginId, p.PluginId, true) == 0);
                if (plugin == null)
                {
                    throw new RuntimeException(String.Format("Could not resolve resource uri '{0}' because no plugin appears to be registered with the requested id.", resourceUri));
                }

                string pluginPath = plugin.BaseDirectory.FullName;
                if (relativePath.Length == 0 || relativePath == @"/")
                {
                    return(pluginPath);
                }

                string relativeLocalPath = relativePath.Substring(1).Replace('/', Path.DirectorySeparatorChar);
                return(Path.Combine(pluginPath, relativeLocalPath));
            }

            throw new RuntimeException(String.Format("Could not resolve resource uri '{0}' because the scheme was not recognized.  The uri scheme must be 'file' or 'plugin'.", resourceUri));
        }
コード例 #2
0
        public void RunFixtureRepeatedly()
        {
            TestStepRun fixtureRun = Runner.GetPrimaryTestStepRun(CodeReference.CreateFromType(typeof(ThreadedRepeatFixtureSample)));

            AssertLogContains(fixtureRun, "9 of 10 threaded repetitions passed.");
            Assert.AreEqual(TestOutcome.Failed, fixtureRun.Result.Outcome);

            IList <TestStepRun> fixtureSteps = fixtureRun.Children;

            Assert.Count(10, fixtureSteps, "Expected 10 repetitions represented as steps.");

            for (int i = 0; i < 10; i++)
            {
                string      name        = "Threaded Repetition #" + (i + 1);
                TestStepRun fixtureStep = GenericCollectionUtils.Find(fixtureSteps, candidate => candidate.Step.Name == name);
                Assert.Count(1, fixtureStep.Children);

                TestStepRun testRun = fixtureStep.Children[0];
                AssertLogContains(testRun, "Run: " + name);

                if (i == 1)
                {
                    Assert.AreEqual(TestOutcome.Failed, fixtureStep.Result.Outcome);
                    Assert.AreEqual(TestOutcome.Failed, testRun.Result.Outcome);
                    AssertLogContains(testRun, "Boom", MarkupStreamNames.Failures);
                }
                else
                {
                    Assert.AreEqual(TestOutcome.Passed, fixtureStep.Result.Outcome);
                    Assert.AreEqual(TestOutcome.Passed, testRun.Result.Outcome);
                }
            }
        }
コード例 #3
0
 private static T FindByName <T>(IEnumerable <T> elements, string name)
     where T : ICodeElementInfo
 {
     return(GenericCollectionUtils.Find(elements, delegate(T element)
     {
         return element.Name == name;
     }));
 }
コード例 #4
0
ファイル: TestPackage.cs プロジェクト: soelske/mbunit-v3
        /// <summary>
        /// Removes a hint directory.
        /// </summary>
        /// <param name="directory">The directory to remove.</param>
        /// <exception cref="ArgumentNullException">Thrown if <paramref name="directory"/> is null.</exception>
        public void RemoveHintDirectory(DirectoryInfo directory)
        {
            if (directory == null)
            {
                throw new ArgumentNullException("directory");
            }

            var existingDirectory = GenericCollectionUtils.Find(hintDirectories, x => x.ToString() == directory.ToString());

            hintDirectories.Remove(existingDirectory);
        }
コード例 #5
0
        /// <inheritdoc />
        public IReportFormatter GetReportFormatter(string formatterName)
        {
            if (formatterName == null)
            {
                throw new ArgumentNullException("name");
            }

            ComponentHandle <IReportFormatter, ReportFormatterTraits> handle
                = GenericCollectionUtils.Find(formatterHandles, h => string.Compare(h.GetTraits().Name, formatterName, true) == 0);

            return(handle != null?handle.GetComponent() : null);
        }
コード例 #6
0
        /// <inheritdoc />
        public ITestRunnerFactory GetFactory(string factoryName)
        {
            if (factoryName == null)
            {
                throw new ArgumentNullException(@"factoryName");
            }

            ComponentHandle <ITestRunnerFactory, TestRunnerFactoryTraits> handle
                = GenericCollectionUtils.Find(factoryHandles, h => string.Compare(h.GetTraits().Name, factoryName, true) == 0);

            return(handle != null?handle.GetComponent() : null);
        }
コード例 #7
0
        /// <summary>
        /// Gets the caption overlay to display over of screenshots images and videos.
        /// </summary>
        /// <returns>The caption overlay.</returns>
        public static CaptionOverlay GetCaptionOverlay()
        {
            OverlayManager overlayManager = GetOverlayManager();

            DefaultCaptionOverlay defaultCaptionOverlay = (DefaultCaptionOverlay)
                                                          GenericCollectionUtils.Find(overlayManager.Overlays, x => x is DefaultCaptionOverlay);

            if (defaultCaptionOverlay == null)
            {
                defaultCaptionOverlay = new DefaultCaptionOverlay();
                overlayManager.AddOverlay(defaultCaptionOverlay);
            }

            return(defaultCaptionOverlay);
        }
コード例 #8
0
        private void ConfigureIronRuby(ScriptRuntimeSetup scriptRuntimeSetup)
        {
            LanguageSetup languageSetup = GenericCollectionUtils.Find(scriptRuntimeSetup.LanguageSetups, x => x.Names.Contains("IronRuby"));

            if (languageSetup == null)
            {
                return;
            }

            IList <string> libraryPaths = GetIronRubyLibraryPaths(languageSetup);

            ConfigureIronRuby(languageSetup, libraryPaths);
            CanonicalizeLibraryPaths(libraryPaths);
            SetIronRubyLibraryPaths(languageSetup, libraryPaths);
        }
コード例 #9
0
        /// <inheritdoc />
        public ITestParameterBuilder GetParameter(string name)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            var testParameter = (PatternTestParameter)GenericCollectionUtils.Find(test.Parameters, x => x.Name == name);

            if (testParameter == null)
            {
                return(null);
            }
            return(new DefaultTestParameterBuilder(GetTestModelBuilder(), testParameter));
        }
コード例 #10
0
ファイル: TestPackage.cs プロジェクト: soelske/mbunit-v3
 private FileInfo FindFile(FileInfo file)
 {
     return(GenericCollectionUtils.Find(files, x => string.Compare(x.ToString(), file.ToString(), StringComparison.OrdinalIgnoreCase) == 0));
 }