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 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 CompleteDoesNothingIfAlreadyClosed() { var action = 0; var writerMock = new Mock<XmlWriter>(MockBehavior.Strict); writerMock.Setup(w => w.WriteEndDocument()).Callback(() => action++); writerMock.Setup(w => w.Close()).Callback(() => action++); writerMock.MockWriteElementString("finish", "2010-01-01T12:01:01"); writerMock.MockWriteElementString("status", "Success"); 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.Complete(); context.Complete(); Assert.AreEqual(2, action); }
public void CompleteClosesWriter() { var writerMock = new Mock<XmlWriter>(MockBehavior.Strict); writerMock.Setup(w => w.WriteEndDocument()).Verifiable(); writerMock.Setup(w => w.Close()).Verifiable(); writerMock.MockWriteElementString("finish", "2010-01-01T12:01:01"); writerMock.MockWriteElementString("status", "Success"); 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 }); Assert.IsFalse(context.IsCompleted); context.Complete(); writerMock.Verify(); Assert.IsTrue(context.IsCompleted); }
public void CompleteDoesNothingIfAlreadyClosed() { var action = 0; var writerMock = new Mock <XmlWriter>(MockBehavior.Strict); writerMock.Setup(w => w.WriteEndDocument()).Callback(() => action++); writerMock.Setup(w => w.Close()).Callback(() => action++); writerMock.MockWriteElementString("finish", "2010-01-01T12:01:01"); writerMock.MockWriteElementString("status", "Success"); 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.Complete(); context.Complete(); Assert.AreEqual(2, action); }
public void CompleteClosesWriter() { var writerMock = new Mock <XmlWriter>(MockBehavior.Strict); writerMock.Setup(w => w.WriteEndDocument()).Verifiable(); writerMock.Setup(w => w.Close()).Verifiable(); writerMock.MockWriteElementString("finish", "2010-01-01T12:01:01"); writerMock.MockWriteElementString("status", "Success"); 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 }); Assert.IsFalse(context.IsCompleted); context.Complete(); writerMock.Verify(); Assert.IsTrue(context.IsCompleted); }
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(); }