コード例 #1
0
        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"));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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"));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }