コード例 #1
0
        public void JsonSerializationDeserializationTest()
        {
            var builder = new MetadataModelBuilder();

            builder.Entity <Invoice>();
            builder.Entity <Article>().HasOne(p => p.ArticleSettings).WithPrincipal();
            builder.ApplyConventions();

            MetadataModel model = null;

            using (var ms = new MemoryStream())
            {
                var json = new JsonSerializerSettings();
                json.Converters.Add(new LucileJsonInheritanceConverter());

                var serializer = JsonSerializer.Create(json);
                using (var streamWriter = new StreamWriter(ms, Encoding.UTF8, 512, true))
                {
                    serializer.Serialize(streamWriter, builder);
                }

                ms.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(ms))
                    using (var jsonReader = new JsonTextReader(streamReader))
                    {
                        var newBuilder = serializer.Deserialize <MetadataModelBuilder>(jsonReader);
                        model = newBuilder.ToModel();
                    }
            }

            TestModelValidations.ValidateInvoiceArticleDefaultModel(model);
        }
コード例 #2
0
        public void DefaultStructureConventionTest()
        {
            var builder = new MetadataModelBuilder();

            builder.Entity <Invoice>();
            builder.Entity <Article>().HasOne(p => p.ArticleSettings).WithPrincipal();
            builder.ApplyConventions();
            TestModelValidations.ValidateInvoiceArticleDefaultModel(builder);
        }
コード例 #3
0
        public void ProtoBufSerializationPreviousVersionDeserializationTest()
        {
            MetadataModelBuilder builder = null;

            using (var ms = typeof(MetadataModelBuilderSerializationTest).Assembly.GetManifestResourceStream("Lucile.Core.Test.Serialization.previous-model.proto"))
            {
                builder = ProtoBuf.Serializer.Deserialize <MetadataModelBuilder>(ms);
            }

            var model = builder.ToModel();

            TestModelValidations.ValidateInvoiceArticleDefaultModel(model);
        }
コード例 #4
0
        public void DataContractSerializationPreviousVersionDeserializationTest()
        {
            MetadataModelBuilder builder = null;

            using (var ms = typeof(MetadataModelBuilderSerializationTest).Assembly.GetManifestResourceStream("Lucile.Core.Test.Serialization.previous-model.xml"))
            {
                var ser = new DataContractSerializer(typeof(MetadataModelBuilder));
                builder = ser.ReadObject(ms) as MetadataModelBuilder;
            }

            var model = builder.ToModel();

            TestModelValidations.ValidateInvoiceArticleDefaultModel(model);
        }
コード例 #5
0
        public void DataContractSerializationDeserializationTest()
        {
            var builder = new MetadataModelBuilder();

            builder.Entity <Invoice>();
            builder.Entity <Article>().HasOne(p => p.ArticleSettings).WithPrincipal();
            builder.ApplyConventions();

            MetadataModel model = null;

            using (var ms = new MemoryStream())
            {
                var ser = new DataContractSerializer(typeof(MetadataModelBuilder));
                ser.WriteObject(ms, builder);
                ms.Seek(0, SeekOrigin.Begin);
                var newBuilder = (MetadataModelBuilder)ser.ReadObject(ms);
                model = newBuilder.ToModel();
            }

            TestModelValidations.ValidateInvoiceArticleDefaultModel(model);
        }
コード例 #6
0
        public void ProtoBufSerializationDeserializationTest()
        {
            var builder = new MetadataModelBuilder();

            builder.Entity <Invoice>();
            builder.Entity <Article>().HasOne(p => p.ArticleSettings).WithPrincipal();
            builder.ApplyConventions();

            MetadataModel model = null;

            using (var ms = new MemoryStream())
            {
                ProtoBuf.Serializer.Serialize <MetadataModelBuilder>(ms, builder);

                ms.Seek(0, SeekOrigin.Begin);

                var newBuilder = ProtoBuf.Serializer.Deserialize <MetadataModelBuilder>(ms);
                model = newBuilder.ToModel();
            }

            TestModelValidations.ValidateInvoiceArticleDefaultModel(model);
        }
コード例 #7
0
        public void JsonSerializationPreviousVersionDeserializationTest()
        {
            MetadataModelBuilder builder = null;

            using (var ms = typeof(MetadataModelBuilderSerializationTest).Assembly.GetManifestResourceStream("Lucile.Core.Test.Serialization.previous-model.json"))
            {
                var json = new JsonSerializerSettings();
                json.Converters.Add(new LucileJsonInheritanceConverter());

                var serializer = JsonSerializer.Create(json);

                using (var streamReader = new StreamReader(ms))
                    using (var jsonReader = new JsonTextReader(streamReader))
                    {
                        builder = serializer.Deserialize <MetadataModelBuilder>(jsonReader);
                    }
            }

            var model = builder.ToModel();

            TestModelValidations.ValidateInvoiceArticleDefaultModel(model);
        }