Exemple #1
0
        public void GetModifications_EmptyLocal()
        {
            tempRoot.CreateDirectory();
            tempSubRoot.CreateDirectory();
            string file1 = tempRoot.CreateTextFile("file1.txt", "foo").ToString();
            string file2 = tempRoot.CreateTextFile("file2.txt", "bar").ToString();
            string file3 = tempSubRoot.CreateTextFile("file3.txt", "bat").ToString();

            Modification[] mods = sc.GetModifications(IntegrationResult(DateTime.MinValue), IntegrationResult(DateTime.MaxValue));

            Assert.AreEqual(4, mods.Length);
            Assert.AreEqual("file1.txt", mods[0].FileName);
            Assert.AreEqual("file2.txt", mods[1].FileName);
            Assert.AreEqual(Path.GetFileName(tempSubRoot.ToString()), mods[2].FileName);
            Assert.AreEqual("file3.txt", mods[3].FileName);
            Assert.AreEqual(Path.GetDirectoryName(file1), mods[0].FolderName);
            Assert.AreEqual(Path.GetDirectoryName(file2), mods[1].FolderName);
            Assert.AreEqual(Path.GetFileName(tempSubRoot.ToString()), mods[2].FolderName);
            Assert.AreEqual(Path.GetDirectoryName(file3), mods[3].FolderName);

            Assert.AreEqual(new FileInfo(file1).LastWriteTime, mods[0].ModifiedTime);
            Assert.AreEqual(new FileInfo(file2).LastWriteTime, mods[1].ModifiedTime);
            Assert.AreEqual(new FileInfo(tempSubRoot.ToString()).LastWriteTime, mods[2].ModifiedTime);
            Assert.AreEqual(new FileInfo(file3).LastWriteTime, mods[3].ModifiedTime);

            mods = sc.GetModifications(IntegrationResult(DateTime.Now.AddHours(1)), IntegrationResult(DateTime.MaxValue));
            Assert.AreEqual(0, mods.Length);
        }
        public void GetModifications_EmptyLocal()
        {
            tempRoot.CreateDirectory();
            tempSubRoot.CreateDirectory();
            string file1 = tempRoot.CreateTextFile("file1.txt", "foo").ToString();
            string file2 = tempRoot.CreateTextFile("file2.txt", "bar").ToString();
            string file3 = tempSubRoot.CreateTextFile("file3.txt", "bat").ToString();

            Modification[] mods = sc.GetModifications(IntegrationResult(DateTime.MinValue), IntegrationResult(DateTime.MaxValue));

            using (new AssertionScope())
            {
                mods.Length.Should().Be(4);
                mods[0].FileName.Should().Be("file1.txt");
                mods[1].FileName.Should().Be("file2.txt");
                mods[2].FileName.Should().Be(Path.GetFileName(tempSubRoot.ToString()));
                mods[3].FileName.Should().Be("file3.txt");

                mods[0].FolderName.Should().Be(Path.GetDirectoryName(file1));
                mods[1].FolderName.Should().Be(Path.GetDirectoryName(file2));
                mods[2].FolderName.Should().Be(Path.GetFileName(tempSubRoot.ToString()));
                mods[3].FolderName.Should().Be(Path.GetDirectoryName(file3));

                new FileInfo(file1).LastWriteTime.Should().BeCloseTo(mods[0].ModifiedTime, 100);
                new FileInfo(file2).LastWriteTime.Should().BeCloseTo(mods[1].ModifiedTime, 100);
                new FileInfo(tempSubRoot.ToString()).LastWriteTime.Should().BeCloseTo(mods[2].ModifiedTime, 100);
                new FileInfo(file3).LastWriteTime.Should().BeCloseTo(mods[3].ModifiedTime, 100);
            }

            mods = sc.GetModifications(IntegrationResult(DateTime.Now.AddHours(1)), IntegrationResult(DateTime.MaxValue));

            mods.Length.Should().Be(0);
        }
        public void LoadStatistics()
        {
            testDir.CreateDirectory().CreateTextFile(StatisticsPublisher.XmlFileName, "<statistics />");
            XmlDocument statisticsDoc = new XmlDocument();

            statisticsDoc.LoadXml(StatisticsPublisher.LoadStatistics(testDir.ToString()));

            XPathNavigator    navigator    = statisticsDoc.CreateNavigator();
            XPathNodeIterator nodeIterator = navigator.Select("//timestamp/@day");

            nodeIterator.MoveNext();
            int day = Convert.ToInt32(nodeIterator.Current.Value);

            Assert.AreEqual(DateTime.Now.Day, day);

            nodeIterator = navigator.Select("//timestamp/@month");
            nodeIterator.MoveNext();
            string month = nodeIterator.Current.Value;

            Assert.AreEqual(DateTime.Now.ToString("MMM"), month);

            nodeIterator = navigator.Select("//timestamp/@year");
            nodeIterator.MoveNext();
            int year = Convert.ToInt32(nodeIterator.Current.Value);

            Assert.AreEqual(DateTime.Now.Year, year);
        }
        public void GetModifications_EmptyLocal()
        {
            tempRoot.CreateDirectory();
            tempSubRoot.CreateDirectory();
            string file1 = tempRoot.CreateTextFile("file1.txt", "foo").ToString();
            string file2 = tempRoot.CreateTextFile("file2.txt", "bar").ToString();
            string file3 = tempSubRoot.CreateTextFile("file3.txt", "bat").ToString();

            Modification[] mods = sc.GetModifications(IntegrationResult(DateTime.MinValue), IntegrationResult(DateTime.MaxValue));
            Array.Sort(
                mods,
                (left, right) =>
            {
                int result = left.FolderName.CompareTo(right.FolderName);
                if (result == 0)
                {
                    result = left.FileName.CompareTo(right.FileName);
                }

                return(result);
            }
                );

            using (new AssertionScope())
            {
                mods.Length.Should().Be(4);
                mods[0].FileName.Should().Be("file1.txt", "FileName[0]");
                mods[1].FileName.Should().Be("file2.txt", "FileName[1]");
                mods[2].FileName.Should().Be("file3.txt", "FileName[2]");
                mods[3].FileName.Should().Be(Path.GetFileName(tempSubRoot.ToString()), "FileName[3]");

                mods[0].FolderName.Should().Be(Path.GetDirectoryName(file1), "FolderName[0]");
                mods[1].FolderName.Should().Be(Path.GetDirectoryName(file2), "FolderName[1]");
                mods[2].FolderName.Should().Be(Path.GetDirectoryName(file3), "FolderName[2]");
                mods[3].FolderName.Should().Be(Path.GetFileName(tempSubRoot.ToString()), "FolderName[3]");

                new FileInfo(file1).LastWriteTime.Should().BeCloseTo(mods[0].ModifiedTime, 100, "LastWriteTime[0]");
                new FileInfo(file2).LastWriteTime.Should().BeCloseTo(mods[1].ModifiedTime, 100, "LastWriteTime[1]");
                new FileInfo(file3).LastWriteTime.Should().BeCloseTo(mods[2].ModifiedTime, 100, "LastWriteTime[2]");
                new FileInfo(tempSubRoot.ToString()).LastWriteTime.Should().BeCloseTo(mods[3].ModifiedTime, 100, "LastWriteTime[3]");
            }

            mods = sc.GetModifications(IntegrationResult(DateTime.Now.AddHours(1)), IntegrationResult(DateTime.MaxValue));

            mods.Length.Should().Be(0);
        }
        public void OverwriteReadOnlyFileAtDestination()
        {
            srcRoot.CreateDirectory().CreateTextFile(fileName, fileContents);
            pubRoot.CreateDirectory();
            FileInfo readOnlyDestFile = new FileInfo(pubRoot.CreateEmptyFile(fileName).ToString());

            readOnlyDestFile.Attributes    = FileAttributes.ReadOnly;
            publisher.UseLabelSubDirectory = false;
            publisher.Run(result);
        }
        public void DeleteFilesAtPublishFolderWhenCleanPublishDirPriorToCopyIsTrue()
        {
            SystemPath rootFile = srcRoot.CreateDirectory().CreateTextFile(fileName, fileContents);

            publisher.UseLabelSubDirectory = false;
            publisher.Run(result);

            Assert.IsTrue(pubRoot.Combine(fileName).Exists(), "File not found in publish folder");

            // simulate deletion of a file
            rootFile.DeleteFile();
            Assert.IsFalse(srcRoot.Combine(fileName).Exists(), "File found in root folder");


            // publish again
            publisher.CleanPublishDirPriorToCopy = true;
            publisher.Run(result);


            Assert.IsFalse(pubRoot.Combine(fileName).Exists(), "File found in publish folder");
        }