private ClrValue(object?value, ClrValueType valueType, bool isList) { Value = value; ValueType = valueType; IsList = isList; }
public void Equals_WhenDifferentAddress_ReturnsFalse([Frozen] ClrType type, ClrValueType uno, ClrValueType dos) { // Act var areSame = uno.Equals(dos); // Assert areSame.Should().BeFalse(); }
public void GetValueTypeField_WhenFieldFound_ReturnsField(ClrValueType target, [Frozen] ClrType structType, ClrValueType someStruct, ClrInstanceField structValueField) { // Arrange structValueField.IsValueType.Returns(true); structValueField.Type.Returns(target.Type); structValueField.GetAddress(someStruct.Address, Arg.Any <bool>()).Returns(target.Address); // Act var structRefFieldTarget = someStruct.GetValueTypeField(structValueField.Name); // Assert structRefFieldTarget.Equals(target).Should().BeTrue(); }
public void GetFieldFrom_WhenFieldFound_ReturnsField([Frozen] ClrHeap heap, ClrValueType target, [Frozen] ClrType clrObjectType, ClrObject rawClrObject, ClrInstanceField clrObjValueField) { clrObjValueField.IsValueType.Returns(true); clrObjValueField.Type.Returns(target.Type); clrObjValueField .GetAddress(rawClrObject.Address) .Returns(target.Address); // Act var structRefFieldTarget = rawClrObject.GetFieldFrom(clrObjValueField.Name); // Assert structRefFieldTarget.Equals(target).Should().BeTrue(); }
public void GetFieldFrom_WhenStructureHasStructureField_ReturnsField(ClrValueType target, [Frozen] ClrType structType, ClrValueType rawStruct, ClrInstanceField structValueField) { // Arrange IAddressableTypedEntity entity = rawStruct; structValueField.IsValueType.Returns(true); structValueField.Type.Returns(entity.Type); structValueField.GetAddress(entity.Address, Arg.Any <bool>()).Returns(target.Address); // Act var structFromStruct = entity.GetFieldFrom(structValueField.Name); // Assert structFromStruct.Address.Should().Be(target.Address); }
private static bool HasSimpleValue(ClrArray items, int index, ClrValueType item, out string content) { content = null; var typeName = item.Type.Name; switch (typeName) { case "System.Char": content = $"'{items.GetValue<System.Char>(index)}'"; break; case "System.Boolean": content = items.GetValue <System.Boolean>(index).ToString(); break; case "System.SByte": content = items.GetValue <System.SByte>(index).ToString(); break; case "System.Byte": content = items.GetValue <System.Byte>(index).ToString(); break; case "System.Int16": content = items.GetValue <System.Int16>(index).ToString(); break; case "System.UInt16": content = items.GetValue <System.UInt16>(index).ToString(); break; case "System.Int32": content = items.GetValue <System.Int32>(index).ToString(); break; case "System.UInt32": content = items.GetValue <System.UInt32>(index).ToString(); break; case "System.Int64": content = items.GetValue <System.Int64>(index).ToString(); break; case "System.UInt64": content = items.GetValue <System.UInt64>(index).ToString(); break; case "System.Single": content = items.GetValue <System.Single>(index).ToString(); break; case "System.Double": content = items.GetValue <System.Double>(index).ToString(); break; case "System.IntPtr": { var val = items.GetValue <System.IntPtr>(index); content = (val == IntPtr.Zero) ? "null" : $"0x{val.ToInt64():x16}"; } break; case "System.UIntPtr": { var val = items.GetValue <System.UIntPtr>(index); content = (val == UIntPtr.Zero) ? "null" : $"0x{val.ToUInt64():x16}"; } break; default: return(false); } return(true); }
public void Equals_WhenSameAddressAndTypes_ReturnsTrue([Frozen] ulong address, [Frozen] ClrType type, ClrValueType uno, ClrValueType dos) { // Act var areSame = uno.Equals(dos); // Assert areSame.Should().BeTrue(); }
private static bool HasFieldSimpleValue(ClrValueType item, ClrType type, string fieldName, out string content) { content = null; var typeName = type.Name; switch (typeName) { case "System.Char": content = $"'{item.ReadField<System.Char>(fieldName)}'"; break; case "System.Boolean": content = item.ReadField <System.Boolean>(fieldName).ToString(); break; case "System.SByte": content = item.ReadField <System.SByte>(fieldName).ToString(); break; case "System.Byte": content = item.ReadField <System.Byte>(fieldName).ToString(); break; case "System.Int16": content = item.ReadField <System.Int16>(fieldName).ToString(); break; case "System.UInt16": content = item.ReadField <System.UInt16>(fieldName).ToString(); break; case "System.Int32": content = item.ReadField <System.Int32>(fieldName).ToString(); break; case "System.UInt32": content = item.ReadField <System.UInt32>(fieldName).ToString(); break; case "System.Int64": content = item.ReadField <System.Int64>(fieldName).ToString(); break; case "System.UInt64": content = item.ReadField <System.UInt64>(fieldName).ToString(); break; case "System.Single": content = item.ReadField <System.Single>(fieldName).ToString(); break; case "System.Double": content = item.ReadField <System.Double>(fieldName).ToString(); break; case "System.IntPtr": { var val = item.ReadField <System.IntPtr>(fieldName); content = (val == IntPtr.Zero) ? "null" : $"0x{val.ToInt64():x}"; } break; case "System.UIntPtr": { var val = item.ReadField <System.UIntPtr>(fieldName); content = (val == UIntPtr.Zero) ? "null" : $"0x{val.ToUInt64():x}"; } break; default: return(false); } return(true); }
public ValueTaskProxy(RuntimeContext context, ClrValueType targetObject) : base(context, targetObject) { }
protected ValueTypeProxyBase(RuntimeContext context, ClrValueType targetObject) { Context = context ?? throw new ArgumentNullException(nameof(context)); TargetObject = targetObject; }