Represents a file-system repository pattern, and implements its resolution

The pattern supports the following placeholders: - $ENVVAR replaced to the value of ENVVAR environment variable, if exists. - %NAME replaced to the name of the dependency - %FILENAME replaced to the file name, without extension - %VERSION replaced to the requested version, if any, otherwise empty string - %EXT replaced to the file name's extension

コード例 #1
0
ファイル: RepositoryPatternTest.cs プロジェクト: zvrana/bari
        public void NonExistingEnvironmentVariablesStopsResolution()
        {
            var pattern = new RepositoryPattern("$ENV1, $ENV2 and $ENV3");
            var context = new Mock<IPatternResolutionContext>();

            context.Setup(c => c.GetEnvironmentVariable("ENV1")).Returns("e1");

            var resolution = pattern.Resolve(context.Object);

            resolution.Should().BeNull();
        }
コード例 #2
0
ファイル: RepositoryPatternTest.cs プロジェクト: zvrana/bari
        public void ResolutionFailsIfNoVersionInfo()
        {
            var pattern = new RepositoryPattern("/root/%NAME/%FILENAME.%VERSION.%EXT");
            var context = new Mock<IPatternResolutionContext>();

            context.SetupGet(c => c.DependencyName).Returns("dependency");
            context.SetupGet(c => c.FileName).Returns("something");
            context.SetupGet(c => c.Extension).Returns("dll");
            context.SetupGet(c => c.Version).Returns((string) null);

            var resolution = pattern.Resolve(context.Object);

            resolution.Should().BeNull();
        }
コード例 #3
0
ファイル: RepositoryPatternTest.cs プロジェクト: zvrana/bari
        public void EnvironmentVariableSupport()
        {
            var pattern = new RepositoryPattern("$ENV1, $ENV2 and $ENV3");
            var context = new Mock<IPatternResolutionContext>();

            context.Setup(c => c.GetEnvironmentVariable("ENV1")).Returns("e1");
            context.Setup(c => c.GetEnvironmentVariable("ENV2")).Returns("e2");
            context.Setup(c => c.GetEnvironmentVariable("ENV3")).Returns("e3");

            var resolution = pattern.Resolve(context.Object);

            resolution.Should().NotBeNull();
            resolution.Should().Be("e1, e2 and e3");
        }
コード例 #4
0
ファイル: RepositoryPatternTest.cs プロジェクト: zvrana/bari
        public void WhenVersionNotNeededItWorks()
        {
            var pattern = new RepositoryPattern("/root/%NAME/%FILENAME.%EXT");
            var context = new Mock<IPatternResolutionContext>();

            context.SetupGet(c => c.DependencyName).Returns("dependency");
            context.SetupGet(c => c.FileName).Returns("something");
            context.SetupGet(c => c.Extension).Returns("dll");
            context.SetupGet(c => c.Version).Returns((string) null);

            var resolution = pattern.Resolve(context.Object);

            resolution.Should().NotBeNull();
            resolution.Should().Be("/root/dependency/something.dll");
        }
コード例 #5
0
ファイル: RepositoryPatternTest.cs プロジェクト: zvrana/bari
        public void ReferenceVariablesReplaced()
        {
            var pattern = new RepositoryPattern("/root/%NAME/%FILENAME.%VERSION.%EXT");
            var context = new Mock<IPatternResolutionContext>();

            context.SetupGet(c => c.DependencyName).Returns("dependency");
            context.SetupGet(c => c.FileName).Returns("something");
            context.SetupGet(c => c.Extension).Returns("dll");
            context.SetupGet(c => c.Version).Returns("version");

            var resolution = pattern.Resolve(context.Object);

            resolution.Should().NotBeNull();
            resolution.Should().Be("/root/dependency/something.version.dll");
        }
コード例 #6
0
        public void AddPattern(RepositoryPattern pattern)
        {
            Contract.Requires(pattern != null);

            patterns.Add(pattern);
        }
コード例 #7
0
        public void AddPattern(RepositoryPattern pattern)
        {
            Contract.Requires(pattern != null);

            patterns.Add(pattern);
        }