Exemplo n.º 1
0
 void ProcessRun(AddHighlight addHighlightDelegate, Run run, RunQueue runQueue, Query searchText)
 {
     if (run != null && !string.IsNullOrEmpty(run.Text))
     {
         runQueue.Enqueue(run);
         ScanQueuedRuns(runQueue, searchText, addHighlightDelegate);
     }
 }
Exemplo n.º 2
0
        public void TestRunQueue()
        {
            RunQueue rq = new RunQueue(5);
            FillRunQueue(rq, GetTestRuns());

            //now wrap
            rq.Enqueue(new Run("bbbb"));
            Assert.AreEqual(5, rq.Count);
            rq.Enqueue(new Run("cccc"));
            Assert.AreEqual(5, rq.Count);

            Assert.AreEqual("5555 6666", rq[0].Text);
            Assert.AreEqual("7777 8888", rq[1].Text);
            Assert.AreEqual("9999 aaaa", rq[2].Text);
            Assert.AreEqual("bbbb", rq[3].Text);
            Assert.AreEqual("cccc", rq[4].Text);

        }
Exemplo n.º 3
0
 public static void FillRunQueue(RunQueue rq, List<Run> lr)
 {
     
     for (int i = 0; i < lr.Count; i++)
     {
         rq.Enqueue(lr[i]);
         Assert.AreEqual(i + 1, rq.Count);
         Assert.AreEqual(lr[i].Text, rq[i].Text);
     }
 }
Exemplo n.º 4
0
        public void MakeInvalid()
        {
            RapidFindReplaceControlViewModel model = new RapidFindReplaceControlViewModel();
            model.FindOptions.UseRegularExpressions = true;
            Query q = new Query(".*[");
            RunQueue rq = new RunQueue(1);
            rq.Enqueue(new System.Windows.Documents.Run("hello this is it"));
            model.ScanQueuedRuns(rq, q, null);
            Assert.IsFalse(q.Valid);
            Assert.AreEqual("Regular expression error, parsing \".*[\" - Unterminated [] set.", q.ReasonInvalid);

        }
Exemplo n.º 5
0
        public void TestCrossRunMatch2()
        {
            RunQueue queue = new RunQueue(2);
            Run r1 = new Run("1234co"), r2 = new Run("co5678");
            int callInc = 0;
            queue.Enqueue(r1);
            queue.Enqueue(r2);
            RapidFindReplaceControlViewModel model = new RapidFindReplaceControlViewModel();
            model.ScanQueuedRuns(queue, "coco",
                delegate(Run run, int index, int length)
                {
                    Assert.IsTrue(callInc < 2);
                    if (callInc == 0)
                    {

                        Assert.AreEqual(r1, run);
                        Assert.AreEqual(4, index);
                        Assert.AreEqual(2, length);
                    }
                    else if (callInc == 1)
                    {
                        Assert.AreEqual(r2, run);
                        Assert.AreEqual(0, index);
                        Assert.AreEqual(2, length);
                    }
                    callInc++;
                }
             );
            Assert.AreEqual(2, callInc);
        }
Exemplo n.º 6
0
        public void TestScanRunQueueMultipleTimes3()
        {
            //harder one
            int callInc = 0;
            RunQueue rq2 = new RunQueue(5);
            FillRunQueue(rq2, GetTestRuns2());
            
            rq2.Enqueue(new Run("3 3"));
            rq2.Enqueue(new Run("232"));
            RunQueue rq2_clone = rq2.Clone();
            RapidFindReplaceControlViewModel model = new RapidFindReplaceControlViewModel();
            model.ScanQueuedRuns(rq2, "3",
                delegate(Run run, int index, int length)
                {
                    Assert.IsTrue(callInc< 4);
                    if (callInc == 0)
                    {

                        Assert.AreEqual(rq2_clone[1].Run, run);
                        Assert.AreEqual(0, index);
                        Assert.AreEqual(1, length);
                    }
                    else if (callInc == 1)
                    {

                        Assert.AreEqual(rq2_clone[3].Run, run);
                        Assert.AreEqual(0, index);
                        Assert.AreEqual(1, length);
                    }
                    else if (callInc == 2)
                    {

                        Assert.AreEqual(rq2_clone[3].Run, run);
                        Assert.AreEqual(2, index);
                        Assert.AreEqual(1, length);
                    }
                    else if (callInc == 3)
                    {

                        Assert.AreEqual(rq2_clone[4].Run, run);
                        Assert.AreEqual(1, index);
                        Assert.AreEqual(1, length);
                    }
                    callInc++;

                }
            );
            

        }
Exemplo n.º 7
0
        public void TestScanRunQueueMultipleTimes2()
        {
            //harder one
            int callInc = 0;
            RunQueue rq2 = new RunQueue(5);
            FillRunQueue(rq2, GetTestRuns2());
            RunQueue rq2_clone = rq2.Clone();
            RapidFindReplaceControlViewModel model = new RapidFindReplaceControlViewModel();
            model.ScanQueuedRuns(rq2, "3",
                delegate(Run run, int index, int length)
                {
                    Assert.IsTrue(callInc < 1);
                    if (callInc == 0)
                    {
                        Assert.AreEqual(rq2_clone[1].Run, run);
                        Assert.AreEqual(0, index);
                        Assert.AreEqual(1, length);
                    }
                    callInc++;

                }
            );
            //add new item and search again, this time we don't want to hit 3 again
            rq2.Enqueue(new Run("3"));
            model.ScanQueuedRuns(rq2, "3",
                delegate(Run run, int index, int length)
                {

                    Assert.AreEqual("3", run.Text);

                }
            );

        }
        void ProcessRun(AddHighlight addHighlightDelegate, Run run, RunQueue runQueue, Query searchText)
        {
            if (run != null && !string.IsNullOrEmpty(run.Text))
            {

                runQueue.Enqueue(run);
                ScanQueuedRuns(runQueue, searchText, addHighlightDelegate);

            }
        }