コード例 #1
0
        public void It_Should_Return_None_Where_A_Field_Is_Missing()
        {
            // Arrange
            var array = CreateArray();
            var field = "field2";

            var dictionaryValues = array.ArrValue.Select(x => x.Value).Cast<DictionaryValue>().ToList();
            dictionaryValues[1].DictValue.Remove(field);
            //array.ArrValue[1].Value.ValueAs<DictionaryValue>().DictValue.Remove(field);
            //((DictionaryValue) array.ArrValue[1]).DictValue.Remove(field);
            var mapFilter = new MapFilter(new StringValue(field));

            // Act
            var result = (mapFilter.Apply(new TemplateContext(), array).SuccessValue<ArrayValue>()).ToList();


            // Assert
            //IEnumerable<String> expected = dictionaryValues.Select(x => x.DictValue[field].;
//            var expected = array.ArrValue.Select(x => x.Value.ValueAs<DictionaryValue>().DictValue)
//                .Select(x => x.ContainsKey(field) ? x[field].Value.ToString() : "");
                

//            var expected = array.ArrValue.Cast<DictionaryValue>().Select(
//                x => x.DictValue.ContainsKey(field) ?
//                    x.DictValue[field].Value.ToString() :
//                    UndefinedMessage(field)).ToList();

            //Logger.Log("EXPECTED: " + String.Join(",", expected));
            Assert.That(result.Count(x => !x.HasValue), Is.EqualTo(1));
            //var actual = result.Select(x => x.Value.ToString());

            //Logger.Log("ACTUAL: " + String.Join(",", actual));
            //Assert.That(actual, Is.EquivalentTo(expected));

        }
コード例 #2
0
        public void It_Should_Return_An_Error_When_Trying_To_Map_A_Non_Dictionary()
        {
            // Arrange
            var mapFilter = new MapFilter(new StringValue("field1"));
            IList<IExpressionConstant> objlist = new List<IExpressionConstant>
            {
                NumericValue.Create(123),
                new StringValue("Test")
            };
            // Act
            var result = mapFilter.Apply(new TemplateContext(), new ArrayValue(objlist)).SuccessValue<ArrayValue>();

            // Assert
            Assert.That(result.ArrValue.Count, Is.EqualTo(objlist.Count()));
            Assert.That(result.ArrValue[0].HasValue, Is.False);
            Assert.That(result.ArrValue[1].HasValue, Is.False);
        }
コード例 #3
0
        public void It_Should_Extract_The_Property_From_Each_Element()
        {
            // Arrange
            var array = CreateArray();
            var field = "field1";
            var mapFilter = new MapFilter(new StringValue(field));

            // Act
            var result = mapFilter.Apply(new TemplateContext(), array).SuccessValue<ArrayValue>();

            // Assert
            var dictionaryValues = array.ArrValue.Select(x => x.Value).Cast<DictionaryValue>();

            IEnumerable<String> expected = dictionaryValues.Select(x => x.DictValue[field].Value.Value.ToString());
            //var expected = array.ArrValue.Cast<DictionaryValue>().Select(x => x.DictValue[field].Value.ToString());
            IEnumerable<String> actual = result.Select(x => x.Value.Value.ToString());
            Assert.That(actual, Is.EquivalentTo(expected));
        }
コード例 #4
0
        public void It_Should_Do_The_Same_As_Lookup_When_Dictionary()
        {
            // Arrange
            var dict = DataFixtures.CreateDictionary(1, "Value 1 A", "Value 1 B");
            var field = "field1";
            var mapFilter = new MapFilter(new StringValue(field));

            // Act
            var result = mapFilter.Apply(new TemplateContext(), dict).SuccessValue<StringValue>();

            // Assert
            Assert.That(result, Is.EquivalentTo("Value 1 A"));
        }