public void AsUnqualifiedTopicName()
        {
            UnqualifiedTopicRevision revision = new UnqualifiedTopicRevision("LocalName(Revision)");

            Assert.AreEqual("LocalName", revision.AsUnqualifiedTopicName().DottedName,
                "Checking that the right name was returned.");
        }
        public void TextReaderForTopic()
        {
            DoTest(delegate(TestParameters<TopicCacheProvider> parameters)
            {
                UnqualifiedTopicRevision revision = new UnqualifiedTopicRevision("TopicOne");

                ClearCache(parameters.Cache);
                parameters.Store.TextReaderForTopicCalled = false;
                string firstRetrieval = parameters.Provider.TextReaderForTopic(revision).ToString();
                Assert.IsTrue(parameters.Store.TextReaderForTopicCalled,
                    "Checking that first retrieval does not come from cache.");

                parameters.Store.TextReaderForTopicCalled = false;
                string secondRetrieval = parameters.Provider.TextReaderForTopic(revision).ToString();
                Assert.IsFalse(parameters.Store.TextReaderForTopicCalled,
                    "Checking that second retrieval comes from cache.");

                parameters.Manager.WriteTopicAndNewVersion(revision.AsUnqualifiedTopicName(), "New content", "test");

                parameters.Store.TextReaderForTopicCalled = false;
                string thirdRetrieval = parameters.Provider.TextReaderForTopic(revision).ToString();
                Assert.IsTrue(parameters.Store.TextReaderForTopicCalled,
                    "Checking that a retrieval after a write of a new topic does not come from cache.");

                parameters.Manager.DeleteTopic(revision.AsUnqualifiedTopicName(), false);

                parameters.Store.TextReaderForTopicCalled = false;
                TextReader fourthRetrieval = parameters.Provider.TextReaderForTopic(revision);
                Assert.IsTrue(parameters.Store.TextReaderForTopicCalled,
                    "Checking that a retrieval after a delete of a topic does not come from cache.");

                parameters.Manager.DeleteAllTopicsAndHistory();

                parameters.Store.TextReaderForTopicCalled = false;
                TextReader fifthRetrieval = parameters.Provider.TextReaderForTopic(revision);
                Assert.IsTrue(parameters.Store.TextReaderForTopicCalled,
                    "Checking that a retrieval after a delete of all namespace content does not come from cache.");

            });
        }