コード例 #1
0
        public void HandlesDataType_PassNotMatchingDataType_ReturnsFalse()
        {
            var valueReaders = A.Fake <IValueReaders>();
            var reader       = new ArrayValueReader(valueReaders);

            Assert.False(reader.HandlesDataType("string"));
        }
コード例 #2
0
        public void HandlesDataType_PassMatchingDataType_ReturnsTrue()
        {
            var valueReaders = A.Fake <IValueReaders>();
            var reader       = new ArrayValueReader(valueReaders);

            Assert.True(reader.HandlesDataType("array"));
        }
コード例 #3
0
        public void ReadValue_ForNotMatchingValue_ThrowsException()
        {
            var valueReaders = A.Fake <IValueReaders>();
            var reader       = new ArrayValueReader(valueReaders);

            var xmlElement = new XElement("string");

            Assert.Throws <ParserException>(() => reader.ReadValue(xmlElement));
        }
        protected override IValueReader GetValueReader(ItemModel source)
        {
            var reader = base.GetValueReader(source);

            if (reader == null)
            {
                var position = this.GetIntValue(source, TemplateFieldPosition);
                if (position < 0)
                {
                    return(null);
                }
                reader = new ArrayValueReader(position);
            }
            return(reader);
        }
コード例 #5
0
        public void ReadValue_FromElementWithArrayValue_ReturnsCorrectArrayValue()
        {
            var integerValueReader = A.Fake <IValueReader>();

            A.CallTo(() => integerValueReader.ReadValue(A <XElement> .Ignored)).Returns(new IntegerValue(2345));
            var valueReaders = A.Fake <IValueReaders>();

            A.CallTo(() => valueReaders.ReadValue(A <XElement> .Ignored)).Returns(new IntegerValue(2345));

            var reader = new ArrayValueReader(valueReaders);

            var xmlElement = new XElement("array", new XElement("data", new XElement("value", new XElement("int"))));

            var value = reader.ReadValue(xmlElement);

            Assert.IsType <ArrayValue>(value);
            var arrayValue = (ArrayValue)value;

            Assert.Single(arrayValue.Value);
            var firstValue = arrayValue.Value.First();

            Assert.IsType <IntegerValue>(firstValue);
            Assert.Equal(2345, firstValue.GetValue <int>());
        }