public async Task Create_Update_Delete_Number_Atttribute() { /* Create */ var number = new NumberAttribute { AvailableLocales = new List <string> { Locales.EnglishUs, Locales.SwedenSwedish }, Code = "test_2", Group = AkeneoDefaults.AttributeGroup, NegativeAllowed = true }; var createResponse = await Client.CreateAsync(number); Assert.Equal(createResponse.Code, HttpStatusCode.Created); /* Update */ number.NegativeAllowed = false; var updateResponse = await Client.UpdateAsync(number); Assert.Equal(updateResponse.Code, HttpStatusCode.NoContent); /* Delete */ var deleteResponse = await Client.DeleteAsync <NumberAttribute>(number.Code); Assert.True(deleteResponse.Code == HttpStatusCode.MethodNotAllowed, "API does not support removal of attributes"); }
public void PrecisionAttribute_SetsErrorMessage() { String actual = new NumberAttribute(5, 2).FormatErrorMessage("Test"); String expected = Validation.For("Number", "Test", 3, 2); Assert.Equal(expected, actual); }
public NumberBinding(NumberAttribute numberAttribute, MemberInfo memberInfo, object target) : base(numberAttribute, memberInfo, target) { Group = numberAttribute.Group; _control = new NumberControl { Text = numberAttribute.TooltipText, Title = numberAttribute.TooltipText, Minimum = numberAttribute.Min, Maximum = numberAttribute.Max, Step = numberAttribute.Step, Value = (float)_propertyInfo.GetValue(Target) }; _control.ValueChanged += () => { _propertyInfo.SetValue(Target, _control.Value); OnPropertyChanged(); }; }
public NumberAttributeTests() { attribute = new NumberAttribute(5, 2); }
public static KeyValuePair <string, List <ProductValue> > CreateValue(this NumberAttribute attribute, double data, string locale = null, string scope = null) { return(attribute.CreateValue((object)data, locale, scope)); }
/// <summary> /// Runs validation on DTO /// </summary> /// <param name="dto">DTO</param> /// <returns>A pair of the success flag, and summary</returns> public static KeyValuePair <bool, string> Validate(object dto) { KeyValuePair <bool, string> result = new KeyValuePair <bool, string>(true, PASSED); foreach (var property in dto.GetType().GetProperties()) { //check for required attribute RequiredAttribute required = property.GetCustomAttribute <RequiredAttribute>(true); if (required != null) { //validate required result = ValidateRequired(dto, property); if (!result.Key) { break; } } if (property.GetValue(dto) == null) { //passed required test and is null //meaning object was not required //and wasn't set return(result); } NumberAttribute number = property.GetCustomAttribute <NumberAttribute>(true); if (number != null) { result = ValidateIsNumber(dto, property, number); if (!result.Key) { break; } } LengthAttribute length = property.GetCustomAttribute <LengthAttribute>(true); if (length != null) { //validate length result = ValidateLength(dto, property, length); if (!result.Key) { break; } } RangeAttribute range = property.GetCustomAttribute <RangeAttribute>(true); if (range != null) { //validate range result = ValidateRange(dto, property, range); if (!result.Key) { break; } } PatternAttribute pattern = property.GetCustomAttribute <PatternAttribute>(true); if (pattern != null) { //validate pattern result = ValidatePattern(dto, property, pattern); if (!result.Key) { break; } } } return(result); }
private static KeyValuePair <bool, string> ValidateIsNumber(object dto, PropertyInfo field, NumberAttribute attrib) { string value = field.GetValue(dto).ToString(); string reason = PASSED; bool passed = double.TryParse(value, out _); if (!passed) { reason = $"Field {field.Name} with value {value} is not a valid numeric format"; } return(new KeyValuePair <bool, string>(passed, reason)); }