コード例 #1
0
        public void TestGetFloat()
        {
            var reader = new ListDataReader <Student>(_Students);

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

            Assert.Equal(33.3F, reader.GetFloat(col));
            reader.Read();
            reader.Read();
            Assert.Equal(33.43F, reader.GetFloat(col));
        }
コード例 #2
0
        public async void TestGetFloat()
        {
            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(float) || p.PropertyType == typeof(float?)))
                    {
                        Assert.Equal(p.GetMethod.Invoke(st, new object[0]), reader.GetFloat(index));
                    }
                    else if (p.PropertyType.GetTypeInfo().IsGenericType &&
                             p.PropertyType.GetGenericTypeDefinition() == typeof(Nullable <>) &&
                             p.GetMethod.Invoke(st, new object[0]) == null)
                    {
                        Assert.ThrowsAny <RuntimeBinderException>(() => reader.GetFloat(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?))
                    {
                        Assert.NotNull(reader.GetFloat(index));
                    }
                    else
                    {
                        Assert.ThrowsAny <RuntimeBinderException>(() => reader.GetFloat(index));
                    }
                    index++;
                }
            }
        }