1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
using System.ComponentModel.DataAnnotations;
using System.Net.Http.Formatting;
using System.Runtime.Serialization;
using Xunit.Extensions;
using Assert = Microsoft.TestCommon.AssertEx;
namespace System.Web.Http.Validation
{
public class ModelValidationRequiredMemberSelectorTest
{
[Theory]
[InlineData("Customer", true)]
[InlineData("ID", true)]
[InlineData("Item", true)]
[InlineData("UselessInfo", false)]
public void RequiredMembersRecognized(string propertyName, bool isRequired)
{
HttpConfiguration config = new HttpConfiguration();
IRequiredMemberSelector selector = new ModelValidationRequiredMemberSelector(config.Services.GetModelMetadataProvider(), config.Services.GetModelValidatorProviders());
Assert.Equal(isRequired, selector.IsRequiredMember(typeof(PurchaseOrder).GetProperty(propertyName)));
}
}
[DataContract]
public class PurchaseOrder
{
[Required]
public string Customer { get; set; }
[DataMember(IsRequired=true)]
public int ID { get; set; }
[Required]
[DataMember(IsRequired=true)]
public string Item { get; set; }
public string UselessInfo { get; set; }
}
}
|