Esempio n. 1
0
            public void GetCommitsForInputDocument()
            {
                // Given
                string inputFolder =
                    Path.GetDirectoryName(
                        Path.GetDirectoryName(
                            Path.GetDirectoryName(
                                Path.GetDirectoryName(TestContext.CurrentContext.TestDirectory)
                                )
                            )
                        );
                IExecutionContext context = Substitute.For <IExecutionContext>();

                context.InputFolder.Returns(inputFolder);
                context.GetDocument(Arg.Any <IEnumerable <KeyValuePair <string, object> > >()).Returns(getNewDocumentCallInfo =>
                {
                    IDocument newDocument = Substitute.For <IDocument>();
                    newDocument.GetEnumerator()
                    .Returns(getNewDocumentCallInfo.ArgAt <IEnumerable <KeyValuePair <string, object> > >(0).GetEnumerator());
                    newDocument.Get <IReadOnlyDictionary <string, string> >(Arg.Any <string>())
                    .Returns(getCallInfo => (IReadOnlyDictionary <string, string>)getNewDocumentCallInfo.ArgAt <IEnumerable <KeyValuePair <string, object> > >(0).First(x => x.Key == getCallInfo.ArgAt <string>(0)).Value);
                    return(newDocument);
                });
                IDocument document = Substitute.For <IDocument>();

                document.Source.Returns(Path.Combine(inputFolder, "Wyam.Core\\IModule.cs"));  // Use file that no longer exists so commit count is stable
                context.GetDocument(Arg.Any <IDocument>(), Arg.Any <IEnumerable <KeyValuePair <string, object> > >()).Returns(x =>
                {
                    IDocument newDocument = Substitute.For <IDocument>();
                    newDocument.GetEnumerator().Returns(x.ArgAt <IEnumerable <KeyValuePair <string, object> > >(1).GetEnumerator());
                    return(newDocument);
                });
                GitCommits gitCommits = new GitCommits().ForEachInputDocument();

                // When
                List <IDocument> results = gitCommits.Execute(new[] { document }, context).ToList();  // Make sure to materialize the result list

                // Then
                Assert.AreEqual(1, results.Count);
                List <IDocument> commits =
                    ((IEnumerable <IDocument>)results[0].First(x => x.Key == GitKeys.Commits).Value).ToList();

                Assert.AreEqual(6, commits.Count);
                Assert.AreEqual("6274fb76a0380760ab2dc83f90748b7d953aceb4", commits.Last().First(x => x.Key == GitKeys.Sha).Value);
            }
Esempio n. 2
0
        public void GetCommitsForInputDocument()
        {
            // Given
            string inputFolder = 
                Path.GetDirectoryName(
                    Path.GetDirectoryName(
                        Path.GetDirectoryName(
                            Path.GetDirectoryName(TestContext.CurrentContext.TestDirectory)
                        )
                    )
                );
            IExecutionContext context = Substitute.For<IExecutionContext>();
            context.InputFolder.Returns(inputFolder);
            context.GetNewDocument(Arg.Any<IEnumerable<MetadataItem>>()).Returns(getNewDocumentCallInfo =>
            {
                IDocument newDocument = Substitute.For<IDocument>();
                newDocument.GetEnumerator()
                    .Returns(getNewDocumentCallInfo.ArgAt<IEnumerable<MetadataItem>>(0).Select(x => (KeyValuePair<string, object>)x).GetEnumerator());
                newDocument.Get<IReadOnlyDictionary<string, string>>(Arg.Any<string>())
                    .Returns(getCallInfo => (IReadOnlyDictionary<string, string>)getNewDocumentCallInfo.ArgAt<IEnumerable<MetadataItem>>(0).First(x => x.Key == getCallInfo.ArgAt<string>(0)).Value);
                return newDocument;
            });
            IDocument document = Substitute.For<IDocument>();
            document.Source.Returns(Path.Combine(inputFolder, "Wyam.Core\\IModule.cs"));  // Use file that no longer exists so commit count is stable
            document.Clone(Arg.Any<IEnumerable<MetadataItem>>()).Returns(x =>
            {
                IDocument newDocument = Substitute.For<IDocument>();
                newDocument.GetEnumerator().Returns(x.ArgAt<IEnumerable<MetadataItem>>(0).Select(y => (KeyValuePair<string, object>)y).GetEnumerator());
                return newDocument;
            });
            GitCommits gitCommits = new GitCommits().ForEachInputDocument();

            // When
            List<IDocument> results = gitCommits.Execute(new[] { document }, context).ToList();  // Make sure to materialize the result list

            // Then
            Assert.AreEqual(1, results.Count);
            List<IDocument> commits =
                ((IEnumerable<IDocument>) results[0].First(x => x.Key == GitKeys.Commits).Value).ToList();
            Assert.AreEqual(6, commits.Count);
            Assert.AreEqual("6274fb76a0380760ab2dc83f90748b7d953aceb4", commits.Last().First(x => x.Key == GitKeys.Sha).Value);
        }
        public void Execute()
        {
            var task = new GitCommits();

            task.BuildEngine = new MockBuild();
            task.ToolPath    = @"C:\Program Files (x86)\Git\bin";

            string prjRootPath = TaskUtility.GetProjectRootDirectory(true);

            task.LocalPath = Path.Combine(prjRootPath, @"Source");

            bool result = task.Execute();
            int  commits;

            int.TryParse(task.CommitsCount, out commits);

            Assert.IsTrue(result, "Execute Failed");

            Assert.IsFalse(commits == 0, "Invalid CommitsCount");
        }
Esempio n. 4
0
        public void GetAllCommitsFromInputPath()
        {
            // Given
            IExecutionContext context = Substitute.For<IExecutionContext>();
            context.InputFolder.Returns(TestContext.CurrentContext.TestDirectory);
            context.GetNewDocument(Arg.Any<IEnumerable<MetadataItem>>()).Returns(getNewDocumentCallInfo =>
            {
                IDocument newDocument = Substitute.For<IDocument>();
                newDocument.GetEnumerator()
                    .Returns(getNewDocumentCallInfo.ArgAt<IEnumerable<MetadataItem>>(0).Select(x => (KeyValuePair<string, object>)x).GetEnumerator());
                return newDocument;
            });
            IDocument document = Substitute.For<IDocument>();
            GitCommits gitCommits = new GitCommits();

            // When
            List<IDocument> results = gitCommits.Execute(new[] { document }, context).ToList();  // Make sure to materialize the result list

            // Then
            Assert.That(results.Count, Is.GreaterThan(400));
            Assert.AreEqual("cbd6fb2b7e7fc6e0bbe19744433a510cef93bd7f", results.Last().First(x => x.Key == GitKeys.Sha).Value);
        }
Esempio n. 5
0
        public void GetAllCommitsFromInputPath()
        {
            // Given
            IExecutionContext context = Substitute.For <IExecutionContext>();

            context.InputFolder.Returns(Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(Environment.CurrentDirectory)))); // Ascend from \bin\Debug
            context.GetNewDocument(Arg.Any <IEnumerable <MetadataItem> >()).Returns(getNewDocumentCallInfo =>
            {
                IDocument newDocument = Substitute.For <IDocument>();
                newDocument.GetEnumerator()
                .Returns(getNewDocumentCallInfo.ArgAt <IEnumerable <MetadataItem> >(0).Select(x => (KeyValuePair <string, object>)x).GetEnumerator());
                return(newDocument);
            });
            IDocument  document   = Substitute.For <IDocument>();
            GitCommits gitCommits = new GitCommits();

            // When
            List <IDocument> results = gitCommits.Execute(new[] { document }, context).ToList();  // Make sure to materialize the result list

            // Then
            Assert.That(results.Count, Is.GreaterThan(400));
            Assert.AreEqual("cbd6fb2b7e7fc6e0bbe19744433a510cef93bd7f", results.Last().First(x => x.Key == GitKeys.Sha).Value);
        }
Esempio n. 6
0
            public void GetAllCommitsFromInputPath()
            {
                // Given
                IExecutionContext context = Substitute.For <IExecutionContext>();

                context.FileSystem.RootPath.Returns(new DirectoryPath("/"));
                context.FileSystem.InputPaths.Returns(x => new [] { new DirectoryPath(TestContext.CurrentContext.TestDirectory) });
                context.GetDocument(Arg.Any <IEnumerable <KeyValuePair <string, object> > >()).Returns(getNewDocumentCallInfo =>
                {
                    IDocument newDocument = Substitute.For <IDocument>();
                    newDocument.GetEnumerator()
                    .Returns(getNewDocumentCallInfo.ArgAt <IEnumerable <KeyValuePair <string, object> > >(0).GetEnumerator());
                    return(newDocument);
                });
                IDocument  document   = Substitute.For <IDocument>();
                GitCommits gitCommits = new GitCommits();

                // When
                List <IDocument> results = gitCommits.Execute(new[] { document }, context).ToList();  // Make sure to materialize the result list

                // Then
                Assert.That(results.Count, Is.GreaterThan(400));
                Assert.AreEqual("cbd6fb2b7e7fc6e0bbe19744433a510cef93bd7f", results.Last().First(x => x.Key == GitKeys.Sha).Value);
            }
Esempio n. 7
0
            public void GetCommitsForInputDocument()
            {
                // Given
                DirectoryPath inputPath = new DirectoryPath(TestContext.CurrentContext.TestDirectory).Parent.Parent.Parent.Parent;
                IExecutionContext context = Substitute.For<IExecutionContext>();
                context.FileSystem.RootPath.Returns(new DirectoryPath("/"));
                context.FileSystem.InputPaths.Returns(x => new[] { inputPath });
                context.GetDocument(Arg.Any<IEnumerable<KeyValuePair<string, object>>>()).Returns(getNewDocumentCallInfo =>
                {
                    IDocument newDocument = Substitute.For<IDocument>();
                    newDocument.GetEnumerator()
                        .Returns(getNewDocumentCallInfo.ArgAt<IEnumerable<KeyValuePair<string, object>>>(0).GetEnumerator());
                    newDocument.Get<IReadOnlyDictionary<FilePath, string>>(Arg.Any<string>())
                        .Returns(getCallInfo => (IReadOnlyDictionary<FilePath, string>)getNewDocumentCallInfo.ArgAt<IEnumerable<KeyValuePair<string, object>>>(0).First(x => x.Key == getCallInfo.ArgAt<string>(0)).Value);
                    return newDocument;
                });
                IDocument document = Substitute.For<IDocument>();
                document.Source.Returns(inputPath.CombineFile("Wyam.Core/IModule.cs"));  // Use file that no longer exists so commit count is stable
                context.GetDocument(Arg.Any<IDocument>(), Arg.Any<IEnumerable<KeyValuePair<string, object>>>()).Returns(x =>
                {
                    IDocument newDocument = Substitute.For<IDocument>();
                    newDocument.GetEnumerator().Returns(x.ArgAt<IEnumerable<KeyValuePair<string, object>>>(1).GetEnumerator());
                    return newDocument;
                });
                GitCommits gitCommits = new GitCommits().ForEachInputDocument();

                // When
                List<IDocument> results = gitCommits.Execute(new[] { document }, context).ToList();  // Make sure to materialize the result list

                // Then
                Assert.AreEqual(1, results.Count);
                List<IDocument> commits =
                    ((IEnumerable<IDocument>) results[0].First(x => x.Key == GitKeys.Commits).Value).ToList();
                Assert.AreEqual(6, commits.Count);
                Assert.AreEqual("6274fb76a0380760ab2dc83f90748b7d953aceb4", commits.Last().First(x => x.Key == GitKeys.Sha).Value);
            }