Пример #1
0
        public void SerializationInfoEnumerate()
        {
            var value = new Serializable();
            var si = new SerializationInfo(typeof(Serializable), new FormatterConverter());
            var sc = new StreamingContext();
            value.GetObjectData(si, sc);

            int items = 0;
            foreach (SerializationEntry entry in si)
            {
                items++;
                switch (entry.Name)
                {
                    case "int":
                        Assert.Equal(int.MaxValue, (int)entry.Value);
                        Assert.Equal(typeof(int), entry.ObjectType);
                        break;
                    case "string":
                        Assert.Equal("hello", (string)entry.Value);
                        Assert.Equal(typeof(string), entry.ObjectType);
                        break;
                    case "bool":
                        Assert.Equal(true, (bool)entry.Value);
                        Assert.Equal(typeof(bool), entry.ObjectType);
                        break;
                }
            }

            Assert.Equal(si.MemberCount, items);
        }
Пример #2
0
        public void SerializationInfoAddGet()
        {
            var value = new Serializable();
            var si = new SerializationInfo(typeof(Serializable), new FormatterConverter());
            var sc = new StreamingContext();
            value.GetObjectData(si, sc);

            Assert.Equal(typeof(Serializable), si.ObjectType);
            Assert.Equal(typeof(Serializable).FullName, si.FullTypeName);
            Assert.Equal(typeof(Serializable).GetTypeInfo().Assembly.FullName, si.AssemblyName);

            Assert.Equal(15, si.MemberCount);

            Assert.Equal(true, si.GetBoolean("bool"));
            Assert.Equal("hello", si.GetString("string"));
            Assert.Equal('a', si.GetChar("char"));

            Assert.Equal(byte.MaxValue, si.GetByte("byte"));

            Assert.Equal(decimal.MaxValue, si.GetDecimal("decimal"));
            Assert.Equal(double.MaxValue, si.GetDouble("double"));
            Assert.Equal(short.MaxValue, si.GetInt16("short"));
            Assert.Equal(int.MaxValue, si.GetInt32("int"));
            Assert.Equal(long.MaxValue, si.GetInt64("long"));
            Assert.Equal(sbyte.MaxValue, si.GetSByte("sbyte"));
            Assert.Equal(float.MaxValue, si.GetSingle("float"));
            Assert.Equal(ushort.MaxValue, si.GetUInt16("ushort"));
            Assert.Equal(uint.MaxValue, si.GetUInt32("uint"));
            Assert.Equal(ulong.MaxValue, si.GetUInt64("ulong"));
            Assert.Equal(DateTime.MaxValue, si.GetDateTime("datetime"));
        }
Пример #3
0
        public void NegativeAddValueTwice()
        {
            var si = new SerializationInfo(typeof(Serializable), FormatterConverter.Default);
            Assert.Throws<SerializationException>(() =>
            {
                si.AddValue("bool", true);
                si.AddValue("bool", true);
            });

            try
            {
                si.AddValue("bool", false);
            }
            catch (Exception e)
            {
                Assert.Equal("Cannot add the same member twice to a SerializationInfo object.", e.Message);
            }
        }
Пример #4
0
 public void GetObjectData(SerializationInfo info, StreamingContext context)
 {
     info.AddValue("string", "hello");
     info.AddValue("bool", true);
     info.AddValue("char", 'a');
     info.AddValue("byte", byte.MaxValue);
     info.AddValue("decimal", decimal.MaxValue);
     info.AddValue("double", double.MaxValue);
     info.AddValue("short", short.MaxValue);
     info.AddValue("int", int.MaxValue);
     info.AddValue("long", long.MaxValue);
     info.AddValue("sbyte", sbyte.MaxValue);
     info.AddValue("float", float.MaxValue);
     info.AddValue("ushort", ushort.MaxValue);
     info.AddValue("uint", uint.MaxValue);
     info.AddValue("ulong", ulong.MaxValue);
     info.AddValue("datetime", DateTime.MaxValue);
 }
Пример #5
0
 public void NegativeValueNotFound()
 {
     var si = new SerializationInfo(typeof(Serializable), new FormatterConverter());
     si.AddValue("a", 1);
     Assert.Throws<SerializationException>(() => si.GetInt32("b"));
 }
Пример #6
0
 public void NegativeAddValueTwice()
 {
     var si = new SerializationInfo(typeof(Serializable), new FormatterConverter());
     si.AddValue("bool", true);
     Assert.Throws<SerializationException>(() => si.AddValue("bool", true));
 }
Пример #7
0
        public void NegativeValueNotFound()
        {
            var si = new SerializationInfo(typeof(Serializable), FormatterConverter.Default);
            Assert.Throws<SerializationException>(() =>
            {
                si.AddValue("a", 1);
                si.GetInt32("b");
            });

            si = new SerializationInfo(typeof(Serializable), FormatterConverter.Default);
            try
            {
                si.AddValue("a", 1);
                si.GetInt32("b");
            }
            catch (Exception e)
            {
                Assert.Equal("Member 'b' was not found.", e.Message);
            }
        }