Exemplo n.º 1
0
        public void TestPersonCollector()
        {
            var collector = new WriteSerializer();
            new Person().Serialize(collector);

            Assert.AreEqual(collector.Properties.Count, 5);
        }
        public void TestCompositeSerialization()
        {
            var collector = new WriteSerializer();
            new Serializable2
            {
                Serializable1 = new Serializable1
                {
                    Name = "John"
                }
            }.Serialize(collector);

            Assert.AreEqual(1, collector.Properties.Count);
        }
        public void WriteField()
        {
            var serializer = new WriteSerializer();
            serializer.Serialize(() => testField, null);

            var properties = serializer.Properties;
            Assert.AreEqual(1, properties.Count);
            Assert.AreEqual(nameof(testField), properties.Keys.First());

            var propertyInfo = properties[properties.Keys.First()];
            Assert.AreEqual(PropertyType.String, propertyInfo.PropertyType);
            Assert.AreEqual(nameof(testField), propertyInfo.Name);
            Assert.AreEqual(testField, propertyInfo.Value);
        }
        public void WriteConstant()
        {
            var serializer = new WriteSerializer();
            serializer.Serialize(() => TestConstant, null);

            var properties = serializer.Properties;

            Assert.AreEqual(1, properties.Count);
            Assert.AreEqual(SerializationConstants.ConstantName, properties.Keys.First());

            var propertyInfo = properties[properties.Keys.First()];
            Assert.AreEqual(PropertyType.String, propertyInfo.PropertyType);
            Assert.AreEqual(SerializationConstants.ConstantName, propertyInfo.Name);
            Assert.AreEqual(TestConstant, propertyInfo.Value);
        }
 public void WriteSamePropertyTwiceThrowsException()
 {
     var serializer = new WriteSerializer();
     serializer.Serialize(() => TestProperty, null);
     serializer.Serialize(() => TestProperty, null);
 }
        private static void TestWriteRead(Action<WriteSerializer> write, Action<BinaryReader> read)
        {
            using (var ms = new MemoryStream())
            {
                var writer = new BinaryWriter(ms);
                var writeSerializer = new WriteSerializer();

                write(writeSerializer);

                ms.Seek(0, SeekOrigin.Begin);
                var reader = new BinaryReader(ms);

                read(reader);

                writer.Dispose();
                reader.Dispose();
            }
        }
        public void WriteTwoStrings()
        {
            var serializer = new WriteSerializer();
            serializer.Serialize(() => "Hello", null);
            serializer.Serialize(() => "World", null);

            var properties = serializer.Properties;
            Assert.AreEqual(2, properties.Count);
            Assert.IsTrue(properties.ContainsKey(SerializationConstants.ConstantName));
            Assert.IsTrue(properties.ContainsKey(SerializationConstants.ConstantName + "1"));
        }
        public void WriteString()
        {
            const string helloWorld = "Hello world";

            var serializer = new WriteSerializer();
            serializer.Serialize(() => helloWorld, null);

            var properties = serializer.Properties;
            Assert.AreEqual(1, properties.Count);
            Assert.AreEqual(SerializationConstants.ConstantName, properties.Keys.First());

            var propertyInfo = properties[properties.Keys.First()];
            Assert.AreEqual(PropertyType.String, propertyInfo.PropertyType);
            Assert.AreEqual(SerializationConstants.ConstantName, propertyInfo.Name);
            Assert.AreEqual(helloWorld, propertyInfo.Value);
        }
        public void WriteExpression()
        {
            var serializer = new WriteSerializer();
            serializer.Serialize(() => string.Empty + "Expression", null);

            var properties = serializer.Properties;

            Assert.AreEqual(1, properties.Count);
            Assert.AreEqual(SerializationConstants.DynamicName, properties.Keys.First());

            var propertyInfo = properties[properties.Keys.First()];
            Assert.AreEqual(PropertyType.String, propertyInfo.PropertyType);
            Assert.AreEqual(SerializationConstants.DynamicName, propertyInfo.Name);
            Assert.AreEqual(string.Empty + "Expression", propertyInfo.Value);
        }