示例#1
0
        public void StoreProjectSnapshotStoresTheSnapShotAsXmlInRelativeFolder()
        {
            // Arrange
            var expected       = "<projectSnapshot/>";
            var folder         = "somewhereElse";
            var snapshotsDir   = Path.Combine("workingDir", folder);
            var snapshotFile   = Path.Combine(snapshotsDir, "log20100101120000Lbuild.1.0.snapshot");
            var outputStream   = new MemoryStream();
            var resultMock     = InitialiseResultMock("workingDir");
            var snapShotMock   = InitialiseSnapshotMock(expected);
            var fileSystemMock = InitialiseFileSystemMockForOutput(snapshotFile, outputStream);
            var dataStore      = new XmlFolderDataStore
            {
                FileSystem      = fileSystemMock,
                SnapshotsFolder = folder
            };

            this.mocks.ReplayAll();

            // Act
            dataStore.StoreProjectSnapshot(resultMock, snapShotMock);

            // Assert
            this.mocks.VerifyAll();
            VerifyOutput(expected, outputStream);
        }
示例#2
0
        public void LoadProjectSnapshotLoadsExistingSnapshot()
        {
            // Arrange
            var logFile         = "log20100101120000Lbuild.1.0";
            var projectSnapshot = "<projectStatusSnapshot xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" name=\"UnitTest\" status=\"CompletedSuccess\">" +
                                  "<timeStarted>2010-01-01T12:00:00.00000+00:00</timeStarted>" +
                                  "<timeCompleted>2010-01-01T12:00:01.00000+00:00</timeCompleted>" +
                                  "<childItems />" +
                                  "<timeOfSnapshot>2010-01-01T12:00:01.00000+00:00</timeOfSnapshot>" +
                                  "</projectStatusSnapshot>";
            var snapshotsDir   = Path.Combine("workingDir", defaultFolder);
            var snapshotFile   = Path.Combine(snapshotsDir, logFile + ".snapshot");
            var outputStream   = new MemoryStream();
            var fileSystemMock = InitialiseFileSystemMockForInput(snapshotFile, projectSnapshot);
            var projectMock    = InitialiseProjectMock("workingDir");
            var dataStore      = new XmlFolderDataStore
            {
                FileSystem = fileSystemMock
            };

            this.mocks.ReplayAll();

            // Act
            var snapshot = dataStore.LoadProjectSnapshot(projectMock, logFile + ".xml");

            // Assert
            this.mocks.VerifyAll();
            Assert.IsNotNull(snapshot);
            Assert.AreEqual("UnitTest", snapshot.Name);
            Assert.AreEqual(
                DateTime.Parse("2010-01-01T12:00:00.00000+00:00", CultureInfo.InvariantCulture),
                snapshot.TimeStarted);
            Assert.AreEqual(ItemBuildStatus.CompletedSuccess, snapshot.Status);
        }
        public void LoadProjectSnapshotReturnsNullForMissingSnapshot()
        {
            // Arrange
            var logFile        = "log20100101120000Lbuild.1.0";
            var snapshotsDir   = Path.Combine("workingDir", defaultFolder);
            var snapshotFile   = Path.Combine(snapshotsDir, logFile + ".snapshot");
            var outputStream   = new MemoryStream();
            var fileSystemMock = InitialiseFileSystemMockForInput(snapshotFile, null);
            var projectMock    = InitialiseProjectMock("workingDir");
            var dataStore      = new XmlFolderDataStore
            {
                FileSystem = fileSystemMock
            };

            // Act
            var snapshot = dataStore.LoadProjectSnapshot(projectMock, logFile + ".xml");

            // Assert
            this.mocks.VerifyAll();
            Assert.IsNull(snapshot);
        }
        public void StoreProjectSnapshotStoresTheSnapShotAsXmlInAbsoluteBaseFolder()
        {
            // Arrange
            var expected       = "<projectSnapshot/>";
            var snapshotsDir   = Path.GetTempPath();
            var snapshotFile   = Path.Combine(Path.Combine(snapshotsDir, defaultFolder), "log20100101120000Lbuild.1.0.snapshot");
            var outputStream   = new MemoryStream();
            var resultMock     = InitialiseResultMock("workingDir");
            var snapShotMock   = InitialiseSnapshotMock(expected);
            var fileSystemMock = InitialiseFileSystemMockForOutput(snapshotFile, outputStream);
            var dataStore      = new XmlFolderDataStore
            {
                FileSystem = fileSystemMock,
                BaseFolder = snapshotsDir
            };

            // Act
            dataStore.StoreProjectSnapshot(resultMock, snapShotMock);

            // Assert
            this.mocks.VerifyAll();
            VerifyOutput(expected, outputStream);
        }