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); }