public void ImmediateFieldGetValue_Constant() { var testObject = new PublicValueTypeTestClass(); // Static readonly var immediateField = new ImmediateField(PublicValueTypeStaticReadonlyPublicFieldFieldsInfo); Assert.AreEqual(112, immediateField.GetValue(testObject)); Assert.AreEqual(112, immediateField.GetValue(null)); // Constant immediateField = new ImmediateField(PublicValueTypeConstPublicFieldFieldsInfo); Assert.AreEqual(221, immediateField.GetValue(testObject)); Assert.AreEqual(221, immediateField.GetValue(null)); }
public void ImmediateFieldGetValue_EnumThrows() { var immediateField = new ImmediateField(TestEnumFieldValueFieldInfo); // ReSharper disable once ReturnValueOfPureMethodIsNotUsed Assert.Throws <TargetException>(() => immediateField.GetValue(null)); }
public void ImmediateFieldGetValue_Enum() { // Simple TestEnum const TestEnum testEnum1 = TestEnum.EnumValue2; var immediateField = new ImmediateField(TestEnumFieldValueFieldInfo); Assert.AreEqual((int)TestEnum.EnumValue2, immediateField.GetValue(testEnum1)); immediateField = new ImmediateField(TestEnumField2FieldInfo); Assert.AreEqual(TestEnum.EnumValue2, immediateField.GetValue(null)); // TestEnum (inherit ulong) const TestEnumULong testEnum2 = TestEnumULong.EnumValue1; immediateField = new ImmediateField(TestEnumULongFieldValueFieldInfo); Assert.AreEqual((ulong)TestEnumULong.EnumValue1, immediateField.GetValue(testEnum2)); immediateField = new ImmediateField(TestEnumULongField1FieldInfo); Assert.AreEqual(TestEnumULong.EnumValue1, immediateField.GetValue(null)); // TestEnumFlags const TestEnumFlags testEnum3 = TestEnumFlags.EnumValue1 | TestEnumFlags.EnumValue2; immediateField = new ImmediateField(TestEnumFlagsFieldValueFieldInfo); Assert.AreEqual((int)(TestEnumFlags.EnumValue1 | TestEnumFlags.EnumValue2), immediateField.GetValue(testEnum3)); immediateField = new ImmediateField(TestEnumFlagsField3FieldInfo); Assert.AreEqual(TestEnumFlags.EnumValue3, immediateField.GetValue(null)); }
public void ImmediateFieldGetValue_NullInstance() { var immediateField = new ImmediateField(PublicValueTypePublicFieldFieldsInfo); // ReSharper disable once AssignNullToNotNullAttribute // ReSharper disable once ReturnValueOfPureMethodIsNotUsed Assert.Throws <TargetException>(() => immediateField.GetValue(null)); }
public void ImmediateFieldGetValue_Static() { var testObject1 = new TestObject { TestValue = 1 }; var testObject2 = new TestObject { TestValue = 2 }; // Value type PublicValueTypeTestClass._publicStaticField = 12; var immediateField = new ImmediateField(PublicValueTypeStaticPublicFieldFieldsInfo); Assert.AreEqual(12, immediateField.GetValue(null)); InternalValueTypeTestClass._publicStaticField = 24; immediateField = new ImmediateField(InternalValueTypeStaticPublicFieldFieldsInfo); Assert.AreEqual(24, immediateField.GetValue(null)); // Reference type PublicReferenceTypeTestClass._publicStaticField = testObject1; immediateField = new ImmediateField(PublicReferenceTypeStaticPublicFieldFieldsInfo); Assert.AreSame(testObject1, immediateField.GetValue(null)); InternalReferenceTypeTestClass._publicStaticField = testObject2; immediateField = new ImmediateField(InternalReferenceTypeStaticPublicFieldFieldsInfo); Assert.AreSame(testObject2, immediateField.GetValue(null)); // Object type PublicObjectTypeTestClass._publicStaticField = 48; immediateField = new ImmediateField(PublicObjectTypeStaticPublicFieldFieldsInfo); Assert.AreEqual(48, immediateField.GetValue(null)); InternalObjectTypeTestClass._publicStaticField = 96; immediateField = new ImmediateField(InternalObjectTypeStaticPublicFieldFieldsInfo); Assert.AreEqual(96, immediateField.GetValue(null)); PublicObjectTypeTestClass._publicStaticField = testObject1; immediateField = new ImmediateField(PublicObjectTypeStaticPublicFieldFieldsInfo); Assert.AreEqual(testObject1, immediateField.GetValue(null)); InternalObjectTypeTestClass._publicStaticField = testObject2; immediateField = new ImmediateField(InternalObjectTypeStaticPublicFieldFieldsInfo); Assert.AreEqual(testObject2, immediateField.GetValue(null)); }
public void ImmediateFieldGetValue([NotNull] object target, [NotNull] FieldInfo field, [CanBeNull] object expectedValue) { var immediateField = new ImmediateField(field); object gotValue = immediateField.GetValue(target); if (expectedValue is null) { Assert.IsNull(gotValue); } else if (expectedValue.GetType().IsValueType) { Assert.AreEqual(expectedValue, gotValue); } else { Assert.AreSame(expectedValue, gotValue); } }
public int GetImmediateField_Field() { return((int)ImmediateField.GetValue(BenchmarkObject)); }
public string GetImmediateField_Field() { return($"{(int)ImmediateField.GetValue(BenchmarkObject)}{(float)ImmediateField2.GetValue(BenchmarkObject2)}{(string)ImmediateField3.GetValue(BenchmarkObject3)}{(uint)ImmediateField4.GetValue(BenchmarkObject4)}"); }