public void TestGetDouble()
        {
            var reader = new ListDataReader <Student>(_Students);

            reader.Read();
            var col = "Double2";

            Assert.Equal(4.4, reader.GetDouble(col));
            reader.Read();
            reader.Read();
            Assert.Equal(5.5, reader.GetDouble(col));
        }
示例#2
0
        public async void TestGetDouble()
        {
            var reader = new ListDataReader <Student>(_Students);
            var ps     = _Properties.Where(i => i.CanRead).ToArray();

            foreach (var st in _Students)
            {
                await reader.ReadAsync();

                var index = 0;
                foreach (var p in ps)
                {
                    if (p.GetMethod.Invoke(st, new object[0]) != null &&
                        (p.PropertyType == typeof(double) || p.PropertyType == typeof(double?)))
                    {
                        Assert.Equal(p.GetMethod.Invoke(st, new object[0]), reader.GetDouble(index));
                    }
                    else if (p.PropertyType.GetTypeInfo().IsGenericType &&
                             p.PropertyType.GetGenericTypeDefinition() == typeof(Nullable <>) &&
                             p.GetMethod.Invoke(st, new object[0]) == null)
                    {
                        Assert.ThrowsAny <RuntimeBinderException>(() => reader.GetDouble(index));
                    }
                    else if (p.PropertyType == typeof(short) || p.PropertyType == typeof(short?) ||
                             p.PropertyType == typeof(int) || p.PropertyType == typeof(int?) ||
                             p.PropertyType == typeof(byte) || p.PropertyType == typeof(byte?) ||
                             p.PropertyType == typeof(long) || p.PropertyType == typeof(long?) ||
                             p.PropertyType == typeof(float) || p.PropertyType == typeof(float?))
                    {
                        Assert.NotNull(reader.GetDouble(index));
                    }
                    else
                    {
                        Assert.ThrowsAny <RuntimeBinderException>(() => reader.GetDouble(index));
                    }
                    index++;
                }
            }
        }