Exemplo n.º 1
0
        public void Setup()
        {
            var subfinders = new List <IValueFinder>()
            {
                new TotalValueFinder()
            };

            _sut = new ValuesExtractor(subfinders, new List <IComplexValueFinder>());
        }
Exemplo n.º 2
0
            public static (Expression A, Expression B) Extract(Expression expression)
            {
                var extractor = new ValuesExtractor();

                extractor.Visit(expression);
                if (extractor.A == null || extractor.B == null)
                {
                    throw new NotSupportedException("Could not extract values from expression.");
                }

                return(extractor.A, extractor.B);
            }
Exemplo n.º 3
0
        public void ExctractValues_TotalValueSpecified654654_123andMoreFindersWithProperValues()
        {
            var finders = new List <IValueFinder>()
            {
                new TotalValueFinder(), new VendorValueFinder()
            };
            var extractor = new ValuesExtractor(finders, new List <IComplexValueFinder>());

            _sut = new SerkoEngine(extractor, calc);
            var values = _sut.ParseAndCalculateGst("the total value is <total>110</total> and vendor <vendor>is vendor</vendor>");

            Assert.That(values, Is.Not.Null);
            Assert.That(values.Keys, Is.Not.Empty);
            Assert.That(values.Values, Is.Not.Empty);
            Assert.That(values.Keys.Count, Is.EqualTo(4));
            Assert.That(values["total"], Is.EqualTo("110"));
            Assert.That(values["gst"], Is.EqualTo("10,00"));
            Assert.That(values["totalNoGst"], Is.EqualTo("100,00"));
            Assert.That(values["vendor"], Is.EqualTo("is vendor"));
        }
Exemplo n.º 4
0
        public void ExctractValues_ExpenseSubTags()
        {
            var finders = new List <IValueFinder>()
            {
                new TotalValueFinder(), new VendorValueFinder(), new ExpenseValueFinder(new List <IValueFinder>()
                {
                    new VendorValueFinder()
                })
            };
            var extractor = new ValuesExtractor(finders, new List <IComplexValueFinder>());

            _sut = new SerkoEngine(extractor, calc);
            var values = _sut.ParseAndCalculateGst("<expense><vendor>asdf</vendor></expense><total>1234</total>");

            Assert.That(values, Is.Not.Null);
            Assert.That(values.Keys, Is.Not.Empty);
            Assert.That(values.Values, Is.Not.Empty);
            Assert.That(values.Keys.Count, Is.EqualTo(4));
            Assert.That(values["total"], Is.EqualTo("1234"));
            Assert.That(values["gst"], Is.EqualTo("112,18"));
            Assert.That(values["totalNoGst"], Is.EqualTo("1121,82"));
            Assert.That(values["vendor"], Is.EqualTo("asdf"));
        }
Exemplo n.º 5
0
        public static Expression <Func <bool> > Equivalent <TValue>(Expression <Func <bool> > values, params string[] excludedProperties)
        {
            var extracted = ValuesExtractor.Extract(values);

            return(Equivalent(typeof(TValue), extracted.A, extracted.B, excludedProperties));
        }