public void ExpressionPropertyTests_EnumExpression() { var data = new { test = TestEnum.Two }; var val = new EnumExpression <TestEnum>("three"); Assert.Null(val.ExpressionText); Assert.Equal(TestEnum.Three, val.Value); Assert.Equal(val.ToString(), JsonConvert.DeserializeObject <EnumExpression <TestEnum> >(JsonConvert.SerializeObject(val, settings: settings), settings: settings).ToString()); var(result, error) = val.TryGetValue(data); Assert.Equal(TestEnum.Three, result); Assert.Null(error); val = new EnumExpression <TestEnum>("=three"); Assert.Null(val.ExpressionText); Assert.Equal(TestEnum.Three, val.Value); Assert.Equal(val.ToString(), JsonConvert.DeserializeObject <EnumExpression <TestEnum> >(JsonConvert.SerializeObject(val, settings: settings), settings: settings).ToString()); (result, error) = val.TryGetValue(data); Assert.Equal(TestEnum.Three, result); Assert.Null(error); val = new EnumExpression <TestEnum>("=test"); Assert.NotNull(val.ExpressionText); Assert.Equal(default(TestEnum), val.Value); Assert.Equal(val.ToString(), JsonConvert.DeserializeObject <EnumExpression <TestEnum> >(JsonConvert.SerializeObject(val, settings: settings), settings: settings).ToString()); (result, error) = val.TryGetValue(data); Assert.Equal(TestEnum.Two, result); Assert.Null(error); val = new EnumExpression <TestEnum>(TestEnum.Three); Assert.Null(val.ExpressionText); Assert.Equal(TestEnum.Three, val.Value); Assert.Equal(val.ToString(), JsonConvert.DeserializeObject <EnumExpression <TestEnum> >(JsonConvert.SerializeObject(val, settings: settings), settings: settings).ToString()); (result, error) = val.TryGetValue(data); Assert.Equal(TestEnum.Three, result); Assert.Null(error); val = new EnumExpression <TestEnum>("garbage"); Assert.NotNull(val.ExpressionText); Assert.Equal(default(TestEnum), val.Value); Assert.Equal(val.ToString(), JsonConvert.DeserializeObject <EnumExpression <TestEnum> >(JsonConvert.SerializeObject(val, settings: settings), settings: settings).ToString()); (result, error) = val.TryGetValue(data); Assert.Equal(default(TestEnum), result); Assert.Null(error); val = new EnumExpression <TestEnum>("=sum(garbage)"); Assert.NotNull(val.ExpressionText); Assert.Equal(default(TestEnum), val.Value); Assert.Equal(val.ToString(), JsonConvert.DeserializeObject <EnumExpression <TestEnum> >(JsonConvert.SerializeObject(val, settings: settings), settings: settings).ToString()); (result, error) = val.TryGetValue(data); Assert.Equal(default(TestEnum), result); Assert.NotNull(error); }
public override void WriteJson(JsonWriter writer, EnumExpression <T> value, JsonSerializer serializer) { if (value.ExpressionText != null) { serializer.Serialize(writer, value.ToString()); } else { serializer.Serialize(writer, value.Value); } }
public void Returns_False_Whether_The_Entity_Property_Value_Is_Null_And_SelectedCondition_Is_NotIsNull() { var entity = new object(); var propertyMetadataMock = new Mock <IPropertyMetadata>(); propertyMetadataMock.Setup(metadata => metadata.GetValue(entity)).Returns(null); var enumExpression = new EnumExpression <TestEnum>(true) { SelectedCondition = Condition.NotIsNull }; Assert.IsFalse(enumExpression.CalculateResult(propertyMetadataMock.Object, entity)); }
public void Throws_NotSupportedException_Whether_The_SelectedCondition_Is_NotIsNull_And_Is_Not_Nullable() { var entity = new object(); var propertyMetadataMock = new Mock <IPropertyMetadata>(); propertyMetadataMock.Setup(metadata => metadata.GetValue(entity)).Returns(null); var enumExpression = new EnumExpression <TestEnum>(false) { SelectedCondition = Condition.NotIsNull }; Assert.Catch <NotSupportedException>(() => enumExpression.CalculateResult(propertyMetadataMock.Object, entity)); }
/// <summary> /// 根据枚举获取选项列表 /// </summary> /// <typeparam name="TEnums">枚举类型</typeparam> /// <param name="isFirst">是否添加第一行</param> /// <param name="firstText">第一行文本</param> /// <param name="isDescription">是否使用描述</param> /// <param name="selectedValue">默认选中值</param> /// <returns></returns> public IEnumerable <SelectListItem> GetSelectListItemByEnum <TEnums>(bool isFirst = true, string firstText = "", bool isDescription = true, string selectedValue = "") where TEnums : new() { var items = EnumExpression.GetEnumList <TEnums>().Select(a => new SelectListItem { Value = a.ToString("D"), Text = isDescription ? a.GetEnumDescription() : a.ToString(), Selected = a.ToString("D") == selectedValue, }).ToList(); if (isFirst) { items.Insert(0, GetFirstSelectListItem("", firstText)); } return(items); }
public void Returns_False_Whether_The_Entity_Property_Value_Is_Greater_Than_To_Value_And_SelectedCondition_Is_LessThanOrEqualTo() { var entity = new object(); var propertyMetadataMock = new Mock <IPropertyMetadata>(); propertyMetadataMock.Setup(metadata => metadata.GetValue(entity)).Returns(TestEnum.Enum2); var enumExpression = new EnumExpression <TestEnum>(false) { Value = TestEnum.Enum1, SelectedCondition = Condition.LessThanOrEqualTo }; Assert.IsFalse(enumExpression.CalculateResult(propertyMetadataMock.Object, entity)); }
public void Throws_NotSupportedException_Whether_The_SelectedCondition_Is_Not_Supported(Condition condition) { var entity = new object(); var propertyMetadataMock = new Mock <IPropertyMetadata>(); propertyMetadataMock.Setup(metadata => metadata.GetValue(entity)).Returns(TestEnum.Enum1); var enumExpression = new EnumExpression <TestEnum>(false) { Value = TestEnum.Enum1, SelectedCondition = condition }; Assert.Catch <NotSupportedException>(() => enumExpression.CalculateResult(propertyMetadataMock.Object, entity)); }
public override EnumExpression <T> ReadJson(JsonReader reader, Type objectType, EnumExpression <T> existingValue, bool hasExistingValue, JsonSerializer serializer) { if (reader.ValueType == typeof(string)) { return(new EnumExpression <T>((string)reader.Value)); } else { return(new EnumExpression <T>(JToken.Load(reader))); } }
public virtual ICodeNode VisitEnumExpression(EnumExpression node) { return(node); }
public static Expression GetEnumExpression(TypeDefinition enumDefinition, LiteralExpression targetedValue, TypeSystem typeSystem) { V_0 = EnumHelper.GetEnumBitSize(enumDefinition); V_1 = (long)0; V_4 = targetedValue.get_Value().GetType().get_FullName(); if (V_4 != null) { if (String.op_Equality(V_4, "System.Int32")) { if (V_0 != 32) { V_1 = (long)((Int32)targetedValue.get_Value()); } else { V_1 = (ulong)((Int32)targetedValue.get_Value()); } } else { if (String.op_Equality(V_4, "System.Int64")) { V_1 = (Int64)targetedValue.get_Value(); } else { if (String.op_Equality(V_4, "System.UInt32")) { V_1 = (ulong)((UInt32)targetedValue.get_Value()); } else { if (String.op_Equality(V_4, "System.UInt64")) { V_1 = (UInt64)targetedValue.get_Value(); } else { if (String.op_Equality(V_4, "System.Byte")) { V_1 = (ulong)((Byte)targetedValue.get_Value()); } else { if (String.op_Equality(V_4, "System.SByte")) { V_1 = (long)((SByte)targetedValue.get_Value()); } else { if (String.op_Equality(V_4, "System.Int16")) { V_1 = (long)((Int16)targetedValue.get_Value()); } else { if (String.op_Equality(V_4, "System.UInt16")) { V_1 = (ulong)((UInt16)targetedValue.get_Value()); } } } } } } } } } stackVariable10 = enumDefinition.get_Fields(); V_2 = new List <FieldDefinition>(); V_6 = stackVariable10.GetEnumerator(); try { while (V_6.MoveNext()) { V_7 = V_6.get_Current(); if (V_7.get_Constant() == null || V_7.get_Constant().get_Value() == null) { continue; } V_8 = (long)0; V_4 = V_7.get_Constant().get_Value().GetType().get_FullName(); if (V_4 != null) { if (String.op_Equality(V_4, "System.Int32")) { V_8 = (ulong)((Int32)V_7.get_Constant().get_Value()); } else { if (String.op_Equality(V_4, "System.UInt32")) { V_8 = (ulong)((UInt32)V_7.get_Constant().get_Value()); } else { if (String.op_Equality(V_4, "System.Byte")) { V_8 = (ulong)((Byte)V_7.get_Constant().get_Value()); } else { if (String.op_Equality(V_4, "System.SByte")) { V_8 = (ulong)((byte)((SByte)V_7.get_Constant().get_Value())); } else { if (String.op_Equality(V_4, "System.Int16")) { V_8 = (ulong)((ushort)((Int16)V_7.get_Constant().get_Value())); } else { if (String.op_Equality(V_4, "System.UInt16")) { V_8 = (ulong)((UInt16)V_7.get_Constant().get_Value()); } else { if (String.op_Equality(V_4, "System.Int64")) { V_8 = (Int64)V_7.get_Constant().get_Value(); } else { if (String.op_Equality(V_4, "System.UInt64")) { V_8 = (UInt64)V_7.get_Constant().get_Value(); } } } } } } } } } if (V_8 != V_1) { if (V_8 == 0 || V_8 | V_1 != V_1) { continue; } V_2.Add(V_7); } else { V_9 = new EnumExpression(V_7, targetedValue.get_UnderlyingSameMethodInstructions()); goto Label1; } } goto Label0; } finally { V_6.Dispose(); } Label1: return(V_9); Label0: if (V_2.get_Count() < 2) { return(targetedValue); } V_3 = new BinaryExpression(21, new EnumExpression(V_2.get_Item(0), null), new EnumExpression(V_2.get_Item(1), null), typeSystem, null, false); V_3.set_ExpressionType(enumDefinition); V_10 = 2; while (V_10 < V_2.get_Count()) { V_3 = new BinaryExpression(21, V_3, new EnumExpression(V_2.get_Item(V_10), null), typeSystem, null, false); V_3.set_ExpressionType(enumDefinition); V_10 = V_10 + 1; } return(V_3.CloneAndAttachInstructions(targetedValue.get_UnderlyingSameMethodInstructions())); }
public virtual void Visit(EnumExpression node) { DefaultVisit(node); }
public void Initizalize_The_EnumValues_Property_With_All_Enum_Values(TestEnum value) { var enumExpression = new EnumExpression <TestEnum>(false); Assert.Contains(value, enumExpression.EnumValues); }
public void Initizalize_The_Value_Property_With_The_First_Enum_Value() { var enumExpression = new EnumExpression <TestEnum>(false); Assert.AreEqual(TestEnum.Enum1, enumExpression.Value); }
public override void VisitEnumExpression(EnumExpression node) { this.get_TypesDependingOn().UnionWith(Utilities.GetTypeReferenceTypesDepedningOn(node.get_ExpressionType())); this.VisitEnumExpression(node); return; }
public virtual void VisitEnumExpression(EnumExpression node) { }
public override void VisitEnumExpression(EnumExpression node) { TypesDependingOn.UnionWith(Utilities.GetTypeReferenceTypesDepedningOn(node.ExpressionType)); base.VisitEnumExpression(node); }