Ejemplo n.º 1
0
        public void StringsDemonstration()
        {
            var loData             = Defaults.IEnumerable.Filled.String;
            var loContext          = new _Context();
            var loWalker           = new DSE.Extensions.EnumerableWalker <String, _Context>(loData, loContext);
            var lsTestValueOnBegin = "Begin";
            var lsTestValueOnEnd   = "End";
            var loTestGroup        = new _Group();

            loWalker
            .OnBegin(_ => { _.SaltBefore = lsTestValueOnBegin; _.CountBefore++; })
            .OnItem((_, s) => { _.Count++; _.Items.Add(s); })
            .OnGroup(loTestGroup, (c, g, s) => !String.IsNullOrEmpty(s) && (s[0] == '2'), (c, g, s) => g.CountBefore++, (c, g) => g.CountAfter++)
            .OnEnd(_ => { _.SaltAfter = lsTestValueOnEnd; _.CountAfter++; })
            .Walk();

            Assert.AreEqual(loContext.CountBefore, 1);
            Assert.AreEqual(loContext.SaltBefore, lsTestValueOnBegin);
            Assert.AreEqual(loContext.CountAfter, 1);
            Assert.AreEqual(loContext.SaltAfter, lsTestValueOnEnd);

            var loTestList = new List <String>();
            var lnGroupHit = 0;

            foreach (var loItem in loData)
            {
                loTestList.Add(loItem);
            }

            Assert.AreEqual(loContext.Count, loTestList.Count);

            for (var i = 0; i < loTestList.Count; i++)
            {
                var lsValue = loTestList[i];

                Assert.AreEqual(lsValue, loContext.Items[i]);

                if (!String.IsNullOrEmpty(lsValue) && lsValue[0] == '2')
                {
                    lnGroupHit++;
                }
            }

            Assert.AreEqual(loTestGroup.CountBefore, lnGroupHit);
            Assert.AreEqual(loTestGroup.CountAfter, lnGroupHit);
        }
Ejemplo n.º 2
0
        public void StringsDemonstration()
        {
            var loData = Defaults.IEnumerable.Filled.String;
            var loContext = new _Context();
            var loWalker = new DSE.Extensions.EnumerableWalker<String, _Context>(loData, loContext);
            var lsTestValueOnBegin = "Begin";
            var lsTestValueOnEnd = "End";
            var loTestGroup = new _Group();

            loWalker
                .OnBegin(_ => { _.SaltBefore = lsTestValueOnBegin; _.CountBefore++; })
                .OnItem((_, s) => { _.Count++; _.Items.Add(s); })
                .OnGroup(loTestGroup, (c, g, s) => !String.IsNullOrEmpty(s) && (s[0] == '2'), (c, g, s) => g.CountBefore++, (c, g) => g.CountAfter++)
                .OnEnd(_ => { _.SaltAfter = lsTestValueOnEnd; _.CountAfter++; })
                    .Walk();

            Assert.AreEqual(loContext.CountBefore, 1);
            Assert.AreEqual(loContext.SaltBefore, lsTestValueOnBegin);
            Assert.AreEqual(loContext.CountAfter, 1);
            Assert.AreEqual(loContext.SaltAfter, lsTestValueOnEnd);

            var loTestList = new List<String>();
            var lnGroupHit = 0;

            foreach (var loItem in loData)
                loTestList.Add(loItem);

            Assert.AreEqual(loContext.Count, loTestList.Count);

            for (var i = 0; i < loTestList.Count; i++)
            {
                var lsValue = loTestList[i];

                Assert.AreEqual(lsValue, loContext.Items[i]);

                if (!String.IsNullOrEmpty(lsValue) && lsValue[0] == '2')
                {
                    lnGroupHit++;
                }
            }

            Assert.AreEqual(loTestGroup.CountBefore, lnGroupHit);
            Assert.AreEqual(loTestGroup.CountAfter, lnGroupHit);
        }