public void SingleArgConstructorSetsName()
 {
     var name = "commentName";
     var task = new Comment(name);
     Assert.AreEqual(name, task.Name);
     Assert.IsNull(task.Text);
 }
 public void DoubleArgConstructorSetsNameAndText()
 {
     var name = "commentName";
     var text = "commentText";
     var task = new Comment(name, text);
     Assert.AreEqual(name, task.Name);
     Assert.AreEqual(text, task.Text);
 }
 public void GetValueReturnsNullIfValueDoesNotExist()
 {
     var name = "TestItem";
     var task = new Comment();
     var state = new PersistedProjectState();
     var actual = state.GetValue(task, name);
     Assert.IsNull(actual);
 }
 public void ConstructorSetsNameAndTasks()
 {
     var name = "TestProject";
     var task = new Comment();
     var project = new Project(name, task);
     Assert.AreEqual(name, project.Name);
     Assert.AreEqual(1, project.Tasks.Count);
     Assert.AreSame(task, project.Tasks[0]);
 }
 public void GetValueReturnsValueIfItExists()
 {
     var name = "TestItem";
     var value = "TestValue";
     var task = new Comment();
     var state = new PersistedProjectState();
     state.Values.Add(new ProjectValue(task.UniversalName, name, value));
     var actual = state.GetValue(task, name);
     Assert.AreEqual(value, actual);
 }
 public void SetValueUpdatesAnExistingValue()
 {
     var name = "TestItem";
     var value = "TestValue";
     var task = new Comment();
     var state = new PersistedProjectState();
     state.Values.Add(new ProjectValue(task.UniversalName, name, "SomeOtherValue"));
     state.SetValue(task, name, value);
     var actual = GetValueFromState(state, task, name);
     Assert.IsNotNull(actual);
     Assert.AreEqual(task.UniversalName, actual.Owner);
     Assert.AreEqual(name, actual.Name);
     Assert.AreEqual(value, actual.Value);
 }
 public void SetValueStoresANewValue()
 {
     var name = "TestItem";
     var value = "TestValue";
     var task = new Comment();
     var state = new PersistedProjectState();
     Assert.IsNull(GetValueFromState(state, task, name));
     state.SetValue(task, name, value);
     var actual = GetValueFromState(state, task, name);
     Assert.IsNotNull(actual);
     Assert.AreEqual(actual.Owner, task.UniversalName);
     Assert.AreEqual(actual.Name, name);
     Assert.AreEqual(actual.Value, value);
 }
 public void SetValueRemovesValueIfNull()
 {
     var name = "TestItem";
     var task = new Comment();
     var state = new PersistedProjectState();
     state.Values.Add(new ProjectValue
                          {
                              Owner = task.UniversalName,
                              Name = name,
                              Value = "SomeOtherValue"
                          });
     state.SetValue(task, name, null);
     var actual = GetValueFromState(state, task, name);
     Assert.IsNull(actual);
 }
 public void RunAddsComment()
 {
     using (var interceptor = LogHelper.InterceptLogging(typeof(Comment)))
     {
         var text = "commentText";
         var contextMock = new Mock<TaskExecutionContext>(new TaskExecutionParameters());
         contextMock.Setup(c => c.AddEntryToBuildLog(text)).Verifiable();
         var name = "commentName";
         var task = new Comment(name, text);
         var result = task.Run(contextMock.Object);
         result.Count(); // This is needed to actually run the task
         contextMock.Verify();
         var expected = new[]
                            {
                                "Info|CruiseControl.Core.Tasks.Comment|Adding comment to the build log"
                            };
         CollectionAssert.AreEqual(expected, interceptor.Messages);
     }
 }
 public void ExecuteWithProjectItemGeneratesTheRightArguments()
 {
     var info = new ProcessInfo("Test");
     var item = new Comment
                    {
                        Project = new Project("Test")
                    };
     var context = new TaskExecutionContext(
         new TaskExecutionParameters
             {
                 Project = item.Project
             });
     var logFile = context.GeneratePathInWorkingDirectory("Comment.log");
     var executor = new ProcessExecutorOverride
                        {
                            OnExecute = (pi, p, i, o) =>
                                            {
                                                Assert.AreSame(info, pi);
                                                Assert.AreEqual("Test", p);
                                                Assert.AreEqual("Comment", i);
                                                Assert.AreEqual(logFile, o);
                                                return null;
                                            }
                        };
     executor.Execute(info, item, context);
 }
 public void DefaultConstructorLeavesNameBlank()
 {
     var task = new Comment();
     Assert.IsNull(task.Name);
     Assert.IsNull(task.Text);
 }
 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 StateCanBePersisted()
        {
            var task = new Comment();
            var state = new PersistedProjectState
                            {
                                LastIntegration = new IntegrationSummary
                                                      {
                                                          FinishTime = new DateTime(2010, 1, 1, 12, 1, 2),
                                                          StartTime = new DateTime(2010, 1, 1, 12, 1, 1),
                                                          Status = IntegrationStatus.Success
                                                      }
                            };
            state.SetValue(task, "Test", "Value");
            string expected;
            using (var stream = AssemblyHelper.RetrieveExampleFile("ExampleProjectState"))
            {
                using (var reader = new StreamReader(stream))
                {
                    expected = reader.ReadToEnd();
                }
            }

            using (var stream = new MemoryStream())
            {
                state.Save(stream);
                stream.Seek(0, SeekOrigin.Begin);
                using (var reader = new StreamReader(stream))
                {
                    var xaml = reader.ReadToEnd();
                    Assert.AreEqual(expected, xaml);
                }
            }
        }
 public void LocateMatchesTask()
 {
     var task = new Comment();
     var project = new Project("TestProject", task);
     var queue = new Queue("RootQueue", project);
     var server = new Server("Local", queue);
     var actual = server.Locate("urn:ccnet:local:testProject:comment");
     Assert.AreSame(task, actual);
 }
        public void RemovingAChildResetsProjectOnItem()
        {
            var task = new Comment();
            var project = new Project("TestProject", task);

            project.Tasks.Remove(task);
            Assert.IsNull(task.Project);
        }