Ejemplo n.º 1
0
            public void ShouldIncludeSources()
            {
                // Arrange
                var sourceBase = GetRandomPath();
                var source1    = FakeFileResource.For(
                    sourceBase,
                    GetRandomPath(2),
                    GetRandomInt());
                var source2 = FakeFileResource.For(
                    sourceBase,
                    // two sources must be in different primary folders
                    GetRandomPath(2),
                    GetRandomInt());
                var sourceRelativeBaseParts = source1
                                              .RelativePath.Split(Path.DirectorySeparatorChar);
                var sourceRelativeBase =
                    sourceRelativeBaseParts.Length == 1
                    ? ""
                    : sourceRelativeBaseParts.First();
                var targetBase = GetRandomPath();
                var targets    = new[]
                {
                    FakeFileResource.For(
                        targetBase,
                        Path.Combine(sourceRelativeBase, GetRandomPath()),
                        GetRandomInt()
                        )
                };
                var source = Substitute.For <IFileSystem>();
                var target = Substitute.For <IFileSystem>();

                target.IsDirectory(sourceRelativeBase)
                .Returns(true);
                var targetHistoryRepository = Substitute.For <ITargetHistoryRepository>();

                targetHistoryRepository.FindAll(Arg.Any <string>())
                .Returns(new HistoryItem[0]);
                var sut = Create();
                // Act
                var result1 = sut.Filter(
                    source1,
                    targets,
                    targetHistoryRepository,
                    source,
                    target);
                var result2 = sut.Filter(
                    source2,
                    targets,
                    targetHistoryRepository,
                    source,
                    target);

                // Assert
                Expect(result1)
                .To.Equal(FilterResult.Include);

                Expect(result2)
                .To.Equal(FilterResult.Exclude);
            }
Ejemplo n.º 2
0
            public void ShouldIncludeSourcesMatchingTargetFolder()
            {
                // Arrange
                var sourceBase         = GetRandomPath(2);
                var source1            = FakeFileResource.For(sourceBase, GetRandomPath(2), GetRandomInt());
                var source2            = FakeFileResource.For(sourceBase, GetRandomPath(2), GetRandomInt());
                var sourceRelativeBase = source1
                                         .RelativePath.Split(
                    Path.DirectorySeparatorChar
                    )
                                         .First();
                var targets = new IFileResource[0];
                var targetHistoryRepository = Substitute.For <ITargetHistoryRepository>();

                targetHistoryRepository.FindAll(Arg.Is <string>(a => a == $"{sourceRelativeBase}/*"))
                .Returns(new[]
                {
                    new HistoryItem(
                        Path.Combine(sourceRelativeBase, GetRandomPath(2)),
                        GetRandomInt()
                        )
                });
                var sut = Create();
                // Act
                var result1 = sut.Filter(
                    source1,
                    targets,
                    targetHistoryRepository,
                    Substitute.For <IFileSystem>(),
                    Substitute.For <IFileSystem>());
                var result2 = sut.Filter(
                    source2,
                    targets,
                    targetHistoryRepository,
                    Substitute.For <IFileSystem>(),
                    Substitute.For <IFileSystem>());

                // Assert
                Expect(result1)
                .To.Equal(FilterResult.Include);
                Expect(result2)
                .To.Equal(FilterResult.Exclude);
            }