public void CloneGeneratesANewIdenticialInstance()
        {
            var item = new ItemStatus();
            var theName = "myItemName";
            var theDesc = "A description";
            var theError = "any error here";
            var theStatus = ItemBuildStatus.CompletedFailed;
            var startTime = new DateTime(2010, 1, 1, 12, 12, 12);
            var completedTime = new DateTime(2010, 1, 1, 13, 12, 12);
            var estimatedTime = new DateTime(2010, 1, 1, 14, 12, 12);
            var aChild = new ItemStatus("aChild");

            item.Name = theName;
            item.Description = theDesc;
            item.Error = theError;
            item.Status = theStatus;
            item.TimeStarted = startTime;
            item.TimeCompleted = completedTime;
            item.TimeOfEstimatedCompletion = estimatedTime;
            item.ChildItems.Add(aChild);
            var clone = item.Clone();

            Assert.AreEqual(theName, clone.Name);
            Assert.AreEqual(theDesc, clone.Description);
            Assert.AreEqual(theError, clone.Error);
            Assert.AreEqual(theStatus, clone.Status);
            Assert.AreEqual(startTime, clone.TimeStarted);
            Assert.AreEqual(completedTime, clone.TimeCompleted);
            Assert.AreEqual(estimatedTime, clone.TimeOfEstimatedCompletion);
            Assert.AreEqual(item.Identifier, clone.Identifier);
            Assert.AreEqual(1, clone.ChildItems.Count);
            Assert.AreEqual("aChild", clone.ChildItems[0].Name);
            Assert.AreEqual(aChild.Identifier, clone.ChildItems[0].Identifier);
        }
 public void EqualsReturnsTrueForSameIdentifier()
 {
     var item1 = new ItemStatus();
     var item2 = item1.Clone();
     Assert.IsTrue(item1.Equals(item2));
 }