public void StartNewStartsANewContext() { var path = Path.Combine( Environment.CurrentDirectory, "Test", "20100101120101"); var writerMock = new Mock<XmlWriter>(MockBehavior.Strict); writerMock.Setup(w => w.WriteStartElement(null, "project", null)).Verifiable(); writerMock.MockWriteAttributeString("name", "Test"); writerMock.MockWriteElementString("start", "2010-01-01T12:01:01"); var clockMock = new Mock<IClock>(MockBehavior.Strict); clockMock.Setup(c => c.Now).Returns(new DateTime(2010, 1, 1, 12, 1, 1)); var fileSystemMock = new Mock<IFileSystem>(MockBehavior.Strict); fileSystemMock.Setup(fs => fs.EnsureFolderExists(path)); fileSystemMock.Setup(fs => fs.CreateXmlWriter(Path.Combine(path, "build.log"))).Returns(writerMock.Object); var factory = new TaskExecutionFactory { Clock = clockMock.Object, FileSystem = fileSystemMock.Object }; var project = new Project("Test"); var request = new IntegrationRequest("Testing"); var actual = factory.StartNew(project, request); Assert.IsNotNull(actual); Assert.AreSame(project, actual.Project); Assert.AreSame(request, actual.Request); writerMock.Verify(); }
public void StartChildStartsANewChildContext() { var writerMock = new Mock<XmlWriter>(MockBehavior.Strict); writerMock.Setup(w => w.WriteStartElement(null, "task", null)).Verifiable(); writerMock.MockWriteAttributeString("name", "TestComment"); writerMock.MockWriteAttributeString("type", "Comment"); writerMock.MockWriteElementString("start", "2010-01-01T12:01:01"); var clockMock = new Mock<IClock>(MockBehavior.Strict); clockMock.Setup(c => c.Now).Returns(new DateTime(2010, 1, 1, 12, 1, 1)); var task = new Comment("TestComment"); var context = new TaskExecutionContext( new TaskExecutionParameters { XmlWriter = writerMock.Object, Clock = clockMock.Object }); var child = context.StartChild(task); Assert.IsNotNull(child); Assert.AreSame(context, child.Parent); Assert.AreSame(context.ModificationSets, child.ModificationSets); writerMock.Verify(); }
public void ImportFileMovesFile() { var source = "C:\\data.tst"; var destination = Path.Combine( Environment.CurrentDirectory, "Test", "20100101120101", Path.GetFileName(source)); var writerMock = new Mock<XmlWriter>(MockBehavior.Strict); writerMock.Setup(w => w.WriteStartElement(null, "file", null)).Verifiable(); writerMock.MockWriteAttributeString("time", "2010-01-01T12:01:01"); writerMock.Setup(w => w.WriteString(Path.GetFileName(destination))).Verifiable(); writerMock.Setup(w => w.WriteEndElement()).Verifiable(); var fileSystemMock = new Mock<IFileSystem>(MockBehavior.Strict); fileSystemMock.Setup(fs => fs.MoveFile(source, destination)).Verifiable(); var clockMock = new Mock<IClock>(MockBehavior.Strict); clockMock.Setup(c => c.Now).Returns(new DateTime(2010, 1, 1, 12, 1, 1)); var context = new TaskExecutionContext( new TaskExecutionParameters { XmlWriter = writerMock.Object, FileSystem = fileSystemMock.Object, Clock = clockMock.Object, Project = new Project("Test"), BuildName = "20100101120101" }); context.ImportFile(source, true); writerMock.Verify(); fileSystemMock.Verify(); }
public void StartOutputStreamStartsANewStream() { var source = "data.tst"; var destination = Path.Combine( Environment.CurrentDirectory, "Test", "20100101120101", source); var writerMock = new Mock<XmlWriter>(MockBehavior.Strict); writerMock.Setup(w => w.WriteStartElement(null, "file", null)).Verifiable(); writerMock.MockWriteAttributeString("time", "2010-01-01T12:01:01"); writerMock.Setup(w => w.WriteString(source)).Verifiable(); writerMock.Setup(w => w.WriteEndElement()).Verifiable(); var fileSystemMock = new Mock<IFileSystem>(MockBehavior.Strict); var expected = new MemoryStream(); fileSystemMock.Setup(fs => fs.OpenFileForWrite(destination)).Returns(expected).Verifiable(); var clockMock = new Mock<IClock>(MockBehavior.Strict); clockMock.Setup(c => c.Now).Returns(new DateTime(2010, 1, 1, 12, 1, 1)); var context = new TaskExecutionContext( new TaskExecutionParameters { XmlWriter = writerMock.Object, FileSystem = fileSystemMock.Object, Clock = clockMock.Object, Project = new Project("Test"), BuildName = "20100101120101" }); var actual = context.StartOutputStream(source); writerMock.Verify(); fileSystemMock.Verify(); Assert.AreSame(expected, actual); }
public void AddEntryToBuildLogAddsElement() { var writerMock = new Mock<XmlWriter>(MockBehavior.Strict); writerMock.Setup(w => w.WriteStartElement(null, "entry", null)).Verifiable(); writerMock.MockWriteAttributeString("time", "2010-01-01T12:01:01"); writerMock.Setup(w => w.WriteString("This is a test")).Verifiable(); writerMock.Setup(w => w.WriteEndElement()).Verifiable(); var clockMock = new Mock<IClock>(MockBehavior.Strict); clockMock.Setup(c => c.Now).Returns(new DateTime(2010, 1, 1, 12, 1, 1)); var context = new TaskExecutionContext( new TaskExecutionParameters { XmlWriter = writerMock.Object, Clock = clockMock.Object }); context.AddEntryToBuildLog("This is a test"); writerMock.Verify(); }