Skip to content

Commit 5e897b4

Browse files
Add unit test verifying that wiUtils.EnsureFieldsOnStateChange does not update any fields on the work item if no state field is present on the revision
1 parent 810e7ca commit 5e897b4

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

src/WorkItemMigrator/tests/Migration.Wi-Import.Tests/WitClient/WitClientUtilsTests.cs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,43 @@ public void When_calling_ensure_fields_on_a_closed_user_Story_with_Then_closed_d
396396
});
397397
}
398398

399+
[Test]
400+
public void When_calling_ensure_fields_on_a_wi_with_no_state_field_Then_no_execption_is_thrown_and_no_revision_fields_are_set()
401+
{
402+
MockedWitClientWrapper witClientWrapper = new MockedWitClientWrapper();
403+
WitClientUtils wiUtils = new WitClientUtils(witClientWrapper);
404+
405+
WiRevision rev = new WiRevision
406+
{
407+
Fields = new List<WiField>(),
408+
Index = 1
409+
};
410+
411+
WiField revState = new WiField
412+
{
413+
ReferenceName = WiFieldReference.State,
414+
Value = "New"
415+
};
416+
rev.Fields.Add(revState);
417+
418+
WorkItem createdWI = wiUtils.CreateWorkItem("User Story", false);
419+
420+
wiUtils.EnsureFieldsOnStateChange(rev, createdWI);
421+
422+
Assert.DoesNotThrow(() => wiUtils.EnsureFieldsOnStateChange(rev, createdWI));
423+
424+
Assert.Multiple(() =>
425+
{
426+
Assert.That(rev.Fields.GetFieldValueOrDefault<string>(WiFieldReference.State), Is.EqualTo("New"));
427+
Assert.That(rev.Fields.Where(f => f.ReferenceName.Equals(WiFieldReference.ClosedDate)).Count, Is.EqualTo(0));
428+
Assert.That(rev.Fields.Where(f => f.ReferenceName.Equals(WiFieldReference.ClosedBy)).Count, Is.EqualTo(0));
429+
Assert.That(rev.Fields.Where(f => f.ReferenceName.Equals(WiFieldReference.ActivatedDate)).Count, Is.EqualTo(0));
430+
Assert.That(rev.Fields.Where(f => f.ReferenceName.Equals(WiFieldReference.ActivatedBy)).Count, Is.EqualTo(0));
431+
Assert.That(rev.Fields.Where(f => f.ReferenceName.Equals(WiFieldReference.ResolvedDate)).Count, Is.EqualTo(0));
432+
Assert.That(rev.Fields.Where(f => f.ReferenceName.Equals(WiFieldReference.ResolvedBy)).Count, Is.EqualTo(0));
433+
});
434+
}
435+
399436
[Test]
400437
public void When_calling_ensure_classification_fields_with_empty_args_Then_an_exception_is_thrown()
401438
{

0 commit comments

Comments
 (0)