public void HonoursDataMemberName() { var obj1 = new SimpleTestClass { SerializedMember = "Serialized", UnserializedMember = "Unserialized", SerializedProperty = 1, UnserializedProperty = 2 }; var serializer = new FudgeSerializer(context); var msg = serializer.SerializeToMsg(obj1); Assert.NotNull(msg.GetByName("Prop")); }
public void SimpleCase() { var obj1 = new SimpleTestClass { Val = "Test" }; var serializer = new FudgeSerializer(context); var msg = serializer.SerializeToMsg(obj1); Assert.Equal("Test", msg.GetString("serializedVal")); var obj2 = (SimpleTestClass)serializer.Deserialize(msg); Assert.Equal("Test", obj2.Val); }
public void NamingConventionsApplied() { var obj1 = new SimpleTestClass { SerializedMember = "Serialized", UnserializedMember = "Unserialized", SerializedProperty = 1, UnserializedProperty = 2 }; var serializer = new FudgeSerializer(context); serializer.TypeMap.FieldNameConvention = FudgeFieldNameConvention.AllUpperCase; var msg = serializer.SerializeToMsg(obj1); Assert.NotNull(msg.GetByName("SERIALIZEDMEMBER")); }
public void SimpleCase() { var obj1 = new SimpleTestClass { SerializedMember = "Serialized", UnserializedMember = "Unserialized", SerializedProperty = 1, UnserializedProperty = 2 }; var serializer = new FudgeSerializer(context); var msg = serializer.SerializeToMsg(obj1); var obj2 = (SimpleTestClass)serializer.Deserialize(msg); Assert.Equal(obj1.SerializedMember, obj2.SerializedMember); Assert.Equal(obj1.SerializedProperty, obj2.SerializedProperty); // Make sure the others weren't serialized Assert.Null(obj2.UnserializedMember); Assert.Equal(0, obj2.UnserializedProperty); }
internal async Task GetValueFromRefCursorAsync_Object_WithMetadata(MetadataOracleNetTypeDefinition typedef, MetadataOracleNetTypeDefinition subTypedef, Mock <IOracleRefCursorWrapper> refCursorWrapper, Mock <IOracleDataReaderWrapper> dataReaderWrapper, Mock <MetadataOracleCommon> common, SimpleTestClass oracleValue) { var prop = typedef.Properties.OrderBy(c => c.Order).First(); prop.NETProperty = typeof(ComplexTestClass).GetProperty(nameof(ComplexTestClass.ObjectProp)); prop.PropertyMetadata = subTypedef; refCursorWrapper.Setup(r => r.GetDataReader()).Returns(dataReaderWrapper.Object); dataReaderWrapper.SetupSequence(d => d.ReadAsync()) .ReturnsAsync(true) .ReturnsAsync(false); common.Setup(c => c.GetValueFromOracleXML(typeof(SimpleTestClass), null)) .Returns(oracleValue) .Verifiable(); var metadata = new MetadataOracleObject <ComplexTestClass>(typedef, common.Object); var result = await metadata.GetValueFromRefCursorAsync(typeof(ComplexTestClass), refCursorWrapper.Object); common.Verify(); Assert.NotNull(result); var actual = Assert.IsType <ComplexTestClass>(result); Assert.NotNull(actual.ObjectProp); Assert.Equal(oracleValue, actual.ObjectProp); }
internal void GetOracleParameters_Object_NetProperty_NoMetadata_ReturnsParameters(MetadataOracleNetTypeDefinition typedef, SimpleTestClass model, int startNumber) { var prop = typedef.Properties.OrderBy(c => c.Order).First(); prop.NETProperty = typeof(SimpleTestClass).GetProperty(nameof(SimpleTestClass.Prop1)); var metadata = new MetadataOracleObject <SimpleTestClass>(typedef, new MetadataOracleCommon()); var actual = metadata.GetOracleParameters(model, startNumber); Assert.NotNull(actual); var oraProp = Assert.Single(actual); Assert.NotNull(oraProp); Assert.Equal($":{startNumber}", oraProp.ParameterName); Assert.Equal(ParameterDirection.Input, oraProp.Direction); Assert.Equal(model.Prop1, oraProp.Value); }
internal void GetOracleParameters_Object_NoMatch_ReturnsEmpty(MetadataOracleNetTypeDefinition typedef, SimpleTestClass model, int startNumber) { var metadata = new MetadataOracleObject <SimpleTestClass>(typedef, new MetadataOracleCommon()); var actual = metadata.GetOracleParameters(model, startNumber); Assert.NotNull(actual); Assert.Empty(actual); }
internal void BuildQueryConstructorString_Object_SimpleNetProperty_WithMetadata(MetadataOracleNetTypeDefinition typedef, MetadataOracleNetTypeDefinition metTypeDef, SimpleTestClass model, string name, int startNumber) { var prop = typedef.Properties.OrderBy(c => c.Order).First(); prop.NETProperty = typeof(SimpleTestClass).GetProperty(nameof(SimpleTestClass.Prop1)); prop.PropertyMetadata = metTypeDef; var metadata = new MetadataOracleObject <SimpleTestClass>(typedef, new MetadataOracleCommon()); var(constructor, lastNumber) = metadata.BuildQueryConstructorString(model, name, startNumber); Assert.NotNull(constructor); var expectedConstructor = new StringBuilder(); expectedConstructor.AppendLine($"{name}_0 := {metTypeDef.UDTInfo.FullObjectName}({string.Join(',', metTypeDef.Properties.OrderBy(c => c.Order).Select(c => $"{c.Name}=>null"))});"); expectedConstructor.Append($"{name} := {typedef.UDTInfo.FullObjectName}({prop.Name}=>{name}_0,"); expectedConstructor.Append(string.Join(',', typedef.Properties.OrderBy(c => c.Order).Where(c => c.Name != prop.Name).Select(c => $"{c.Name}=>null"))); expectedConstructor.AppendLine(");"); Assert.Equal(expectedConstructor.ToString(), constructor); Assert.Equal(startNumber, lastNumber); }
internal void BuildQueryConstructorString_Object_SimpleNetProperty(ServForOracleCache cache, MetadataOracleTypeDefinition metadataOracleType, UdtPropertyNetPropertyMap[] customProperties, bool fuzzyNameMatch, SimpleTestClass model, string name, int startNumber) { var prop = metadataOracleType.Properties.OrderBy(c => c.Order).First(); customProperties[0] = new UdtPropertyNetPropertyMap(nameof(SimpleTestClass.Prop1), prop.Name); var typedef = new MetadataOracleNetTypeDefinition(cache, typeof(SimpleTestClass), metadataOracleType, customProperties, fuzzyNameMatch); var metadata = new MetadataOracleObject <SimpleTestClass>(typedef, new MetadataOracleCommon()); var(constructor, lastNumber) = metadata.BuildQueryConstructorString(model, name, startNumber); Assert.NotNull(constructor); var expectedConstructor = $"{name} := {metadataOracleType.UDTInfo.FullObjectName}({prop.Name}=>:{startNumber++}," + $"{string.Join(',', metadataOracleType.Properties.OrderBy(c => c.Order).Where(c => c.Name != prop.Name).Select(c => $"{c.Name}=>null"))});" + Environment.NewLine; Assert.Equal(expectedConstructor, constructor); Assert.Equal(startNumber, lastNumber); }