public void IsValid_IfExistingValidItem()
        {
            var item = new WorkItemStatus( _sessionFactory.Object )
             {
            Id = WorkItemStatuses.ModelData[0].Id,
            Name = WorkItemStatuses.ModelData[0].Name,
            Description = WorkItemStatuses.ModelData[0].Description,
            Category = WorkItemStatuses.ModelData[0].Category,
            SortSequence = WorkItemStatuses.ModelData[0].SortSequence,
            StatusCd = WorkItemStatuses.ModelData[0].StatusCd,
            IsPredefined = WorkItemStatuses.ModelData[0].IsPredefined
             };

             Assert.IsTrue( item.IsValidFor( TransactionType.All ) );
             var messages = item.GetErrorMessages();
             Assert.AreEqual( 0, messages.Count );
        }
        public void IsNotValid_IfDifferentItemWithSameNameExists()
        {
            var item = new WorkItemStatus( _sessionFactory.Object )
             {
            Id = Guid.NewGuid(),
            Name = WorkItemStatuses.ModelData[0].Name,
            Description = "This is just for testing",
            Category = WorkItemStatusCategory.InProcess,
            SortSequence = 0,
            StatusCd = 'A',
            IsPredefined = false
             };

             Assert.IsFalse( item.IsValidFor( TransactionType.All ) );
             var messages = item.GetErrorMessages();
             Assert.AreEqual( 1, messages.Count );
             Assert.AreEqual( String.Format( ErrorMessages.NameIsNotUnique, "Work Item Status", item.Name ), messages["Name"] );
        }