public void ConstructionByDefaultConstructor()
        {
            QualifiedTopicName topicName = new QualifiedTopicName();

            Assert.IsNull(topicName.Namespace, "Checking that namespace is null by default.");
            Assert.IsNull(topicName.LocalName, "Checking that localname is null by default.");
        }
        public void ConstructionByDottedName()
        {
            QualifiedTopicName topicName = new QualifiedTopicName("Dotted.Namespace.LocalName");

            Assert.AreEqual("LocalName", topicName.LocalName);
            Assert.AreEqual("Dotted.Namespace", topicName.Namespace);
        }
 public void DeleteTopic()
 {
     QualifiedTopicName topicName = new QualifiedTopicName("TopicOne", "NamespaceOne");
     TestForModifications(delegate(ModificationRecorder provider)
     {
         provider.DeleteTopic(new UnqualifiedTopicName(topicName.LocalName), false);
     },
     new TopicDeletedModification(topicName));
 }
        public void AsQualifiedTopicRevision()
        {
            QualifiedTopicName topicName = new QualifiedTopicName("Namespace.TopicName");
            QualifiedTopicRevision revision = topicName.AsQualifiedTopicRevision();

            Assert.AreEqual("Namespace", revision.Namespace, "Checking that namespace is preserved.");
            Assert.AreEqual("TopicName", revision.LocalName, "Checking that local name is preserved.");
            Assert.IsNull(revision.Version, "Checking that version is null.");
        }
        public void GetParsedTopic()
        {
            QualifiedTopicName topicName = new QualifiedTopicName("NamespaceOne.TopicOne");

            DoTest(delegate(TestParameters<DependencyRecorder> parameters)
            {
                parameters.Provider.GetParsedTopic(new UnqualifiedTopicRevision(topicName.LocalName));
                Assert.IsTrue(RequestContext.Current.Dependencies.Contains(new TopicContentsDependency(topicName)),
                    "Making sure that dependency on correct topic was recorded.");
            });
        }
        public void DeleteTopic()
        {
            QualifiedTopicName topicName = new QualifiedTopicName("NamespaceOne.TopicOne");

            DoTest(delegate(TestParameters<DependencyRecorder> parameters)
            {
                parameters.Provider.DeleteTopic(new UnqualifiedTopicName(topicName.LocalName), false);
                Assert.AreEqual(0, RequestContext.Current.Dependencies.Count,
                    "Making sure that topic deletion results in no dependencies.");
            });
        }
        public void AllChangesForTopicSince()
        {
            QualifiedTopicName topicName = new QualifiedTopicName("NamespaceOne.TopicOne");

            DoTest(delegate(TestParameters<DependencyRecorder> parameters)
            {
                parameters.Provider.AllChangesForTopicSince(new UnqualifiedTopicName(topicName.LocalName), DateTime.MinValue);
                Assert.IsTrue(RequestContext.Current.Dependencies.Contains(new TopicContentsDependency(topicName)),
                    "Making sure that dependency on correct topic was recorded");
            });
        }
예제 #8
0
        /// <summary>
        /// Answer a formatted RSS <item> for the given topic
        /// </summary>
        /// <param name="topic"></param>
        /// <returns></returns>
        public void FormatRssItem(QualifiedTopicName topic, XmlWriter newsletter)
        {
            NamespaceManager storeManager = Federation.NamespaceManagerForNamespace(topic.Namespace);

            IEnumerable changes = Federation.GetTopicChanges(topic);

            IEnumerator e = changes.GetEnumerator();
            if (!e.MoveNext())
                return;	// No history!

            newsletter.WriteStartElement("item");
            newsletter.WriteElementString("title", topic.LocalName);

            newsletter.WriteStartElement("description");
            FormatRssTopicHistory(topic, false, newsletter, changes);
            newsletter.WriteEndElement();

            newsletter.WriteStartElement("body");
            newsletter.WriteAttributeString("xmlns", @"http://www.w3.org/1999/xhtml");
            FormatRssTopicHistory(topic, true, newsletter, changes);
            newsletter.WriteEndElement();

            newsletter.WriteElementString(
                "created",
                Federation.GetTopicCreationTime(topic).ToUniversalTime().ToString("r")
                );

            Uri link = new Uri(new Uri(FullRootUrl(Request)), TheLinkMaker.LinkToTopic(new QualifiedTopicRevision(topic),
                true));
            newsletter.WriteElementString("link", link.AbsoluteUri);

            newsletter.WriteElementString(
                "pubDate",
                Federation.GetTopicModificationTime(topic).ToUniversalTime().ToString("r")
                );

            newsletter.WriteElementString("guid", link.ToString());

            newsletter.WriteEndElement();
        }
 public void ConstructionByEmptyNamespaceExplicit()
 {
     QualifiedTopicName topicName = new QualifiedTopicName("LocalName", "");
 }
 public TopicContentsModification(QualifiedTopicName topic)
     : base(topic)
 {
 }
 private void AssertCacheDoesNotContainTopicChanges(MockCache mockCache, QualifiedTopicName qualifiedTopicName)
 {
     throw new Exception("The method or operation is not implemented.");
 }
 public void ConstructionByNullNamespace()
 {
     QualifiedTopicName topicName = new QualifiedTopicName("LocalName", null);
 }
 public void LockTopic()
 {
     QualifiedTopicName topicName = new QualifiedTopicName("TopicOne", "NamespaceOne");
     TestForModifications(delegate(ModificationRecorder provider)
     {
         provider.LockTopic(new UnqualifiedTopicName(topicName.LocalName));
     },
     new TopicPermissionsModification(topicName));
 }
 public void WriteTopic()
 {
     QualifiedTopicName topicName = new QualifiedTopicName("TopicOne", "NamespaceOne");
     TestForModifications(delegate(ModificationRecorder provider)
     {
         provider.WriteTopic(new UnqualifiedTopicRevision(topicName.LocalName), "A change of seasons");
     },
     new TopicContentsModification(topicName));
 }
        public void TopicIsReadOnly()
        {
            QualifiedTopicName topicName = new QualifiedTopicName("NamespaceOne.TopicOne");

            DoTest(delegate(TestParameters<DependencyRecorder> parameters)
            {
                parameters.Provider.TopicIsReadOnly(new UnqualifiedTopicName(topicName.LocalName));
                Assert.IsTrue(RequestContext.Current.Dependencies.Contains(new TopicPermissionsDependency(topicName)),
                    "Making that that dependency on topic permissions was recorded.");
            });
        }
 public void ConstructionByEmptyNamespaceViaQName()
 {
     QualifiedTopicName topicName = new QualifiedTopicName(".FooBar");
 }
 public void ConstructionByLocalName()
 {
     QualifiedTopicName topicName = new QualifiedTopicName("LocalName");
 }
 public TopicDeletedModification(QualifiedTopicName topic)
     : base(topic)
 {
 }
예제 #19
0
        private void AssertTopicsCorrectUnordered(ArrayList actualTopics, params TopicName[] expectedTopics)
        {
            QualifiedTopicNameCollection topics = new QualifiedTopicNameCollection();

            foreach (TopicVersionInfo actualTopic in actualTopics)
            {
                QualifiedTopicName topic = new QualifiedTopicName(actualTopic.ExposedFullname);
                topics.Add(topic);
            }

            AssertTopicsCorrectUnordered(topics, expectedTopics);
        }
 public TopicPermissionsModification(QualifiedTopicName topic)
     : base(topic)
 {
 }