public void TestHistoryQueue()
        {
            RapidFindReplaceControlViewModel model = new RapidFindReplaceControlViewModel();
            model.QueryHistoryCapacity = 5;
            Assert.AreEqual(0, model.QueryHistory.Count);


            model.AddQueryToHistory("t1");
            Assert.AreEqual(1, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[]{"t1"}));

            model.AddQueryToHistory("t2");
            Assert.AreEqual(2, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] { "t2", "t1" }));

            model.AddQueryToHistory("t3");
            Assert.AreEqual(3, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] { "t3", "t2", "t1" }));

            model.AddQueryToHistory("t4");
            Assert.AreEqual(4, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] { "t4", "t3", "t2", "t1" }));

            model.AddQueryToHistory("t5");
            Assert.AreEqual(5, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] { "t5", "t4", "t3", "t2", "t1" }));

            model.AddQueryToHistory("t6");
            Assert.AreEqual(5, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] {  "t6", "t5", "t4", "t3", "t2" }));

            model.QueryHistoryCapacity = 3;
            Assert.AreEqual(3, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] { "t6", "t5", "t4" }));

            model.AddQueryToHistory("t7");
            Assert.AreEqual(3, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] { "t7", "t6", "t5" }));

            model.QueryHistoryCapacity = 6;
            Assert.AreEqual(3, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] { "t7", "t6", "t5" }));

            model.AddQueryToHistory("t8");
            Assert.AreEqual(4, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] { "t8", "t7", "t6", "t5" }));

            model.AddQueryToHistory("t9");
            Assert.AreEqual(5, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] { "t9", "t8", "t7", "t6", "t5" }));

            model.AddQueryToHistory("t10");
            Assert.AreEqual(6, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] { "t10", "t9", "t8", "t7", "t6", "t5" }));

            model.AddQueryToHistory("t11");
            Assert.AreEqual(6, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] { "t11", "t10", "t9", "t8", "t7", "t6"  }));
            
            
            model.QueryHistoryCapacity = 0;
            Assert.AreEqual(0, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] {  }));

            model.AddQueryToHistory("t11");
            Assert.AreEqual(0, model.QueryHistory.Count);
            Assert.IsTrue(CheckContents(model.QueryHistory.GetEnumerator(), new string[] {  }));
           

        }