public void UnknownConstraintEventArgs_ctor_Success()
		{
			UnknownConstraintEventArgs args = new UnknownConstraintEventArgs(Constants.MemberName, ParameterDataType.Guid);
			Assert.AreEqual(Constants.MemberName, args.ConstraintName);
			Assert.AreEqual(ParameterDataType.Guid, args.DataType);
			Assert.IsNull(args.Constraint);
			args.Constraint = new DummyConstraint();
			Assert.IsNotNull(args.Constraint);
		}
		/// <summary>
		/// Raises the <see cref="UnknownConstraint"/> event, and returns the first constraint resolved by an event handler.
		/// </summary>
		/// <param name="constraintName">The name of the constraint.</param>
		/// <param name="dataType">The data type that the constraint is used for.</param>
		/// <returns>The <see cref="Constraint"/> created by an event handler, based on the <paramref name="constraintName"/>, or <see langword="null"/>, if no event handler was present, or the <paramref name="constraintName"/> is unknown.</returns>
		protected virtual Constraint OnUnknownConstraint(string constraintName, ParameterDataType dataType)
		{
			EventHandler<UnknownConstraintEventArgs> ucHandler = UnknownConstraint;
			if (ucHandler != null)
			{
				UnknownConstraintEventArgs e = new UnknownConstraintEventArgs(constraintName, dataType);
				foreach (EventHandler<UnknownConstraintEventArgs> handler in ucHandler.GetInvocationList())
				{
					handler.Invoke(this, e);
					if (e.Constraint != null)
					{
						return e.Constraint;
					}
				}
			}
			return null;
		}