Exemplo n.º 1
0
        public void ValidateAtom(WebSubscription sub)
        {
            // TODO sample atom data is a bit thin!
            int[] found = new int[2] {
                0, 0
            };
            Assert.AreEqual(2, sub.Entries.Count);
            foreach (KeyValuePair <string, Entry> kvp in sub.Entries)
            {
                WebEntry entry = sub.Entries[kvp.Key] as WebEntry;
                Assert.AreNotEqual(null, entry);
                Assert.AreEqual(true, entry.Serial >= 0);
                Assert.AreEqual(true, entry.Serial < 2);
                ++found[entry.Serial];
                switch (entry.Serial)
                {
                case 1:
                    Assert.AreEqual("http://example.org/foobar.html", entry.URI);
                    Assert.AreEqual("Title", entry.Title);
                    Assert.AreEqual("contents", entry.Description);
                    Assert.AreEqual(new DateTime(2013, 01, 28, 04, 04, 02, DateTimeKind.Utc), entry.Date);
                    break;

                case 0:
                    Assert.AreEqual("http://example.org/2003/12/13/atom03", entry.URI);
                    Assert.AreEqual("Atom-Powered Robots Run Amok", entry.Title);
                    Assert.AreEqual("Some text.", entry.Description);
                    Assert.AreEqual(new DateTime(2003, 12, 13, 18, 30, 2, DateTimeKind.Utc), entry.Date);
                    break;
                }
            }
            Assert.AreEqual(1, found[0]);
            Assert.AreEqual(1, found[1]);
        }
Exemplo n.º 2
0
 public Task AddSubscription(WebSubscription subscription)
 {
     if (State.Subscriptions == null)
     {
         State.Subscriptions = new List <WebSubscription>();
     }
     State.Subscriptions.Add(subscription);
     return(WriteStateAsync());
 }
Exemplo n.º 3
0
        public async Task <IActionResult> AddSubscription([FromBody] WebSubscription webSubscription)
        {
            await _subscriptionsRepository.AddSubscription(webSubscription);

            var pushMessage = new PushMessage("Hello, this is a test!", "BTC", OrderBookType.Buy);
            await _pushManager.TriggerPush(pushMessage);

            return(Ok(new { ok = true }));
        }
Exemplo n.º 4
0
        public void ValidateRss(WebSubscription sub)
        {
            int[] found = new int[4] {
                0, 0, 0, 0
            };
            foreach (KeyValuePair <string, Entry> kvp in sub.Entries)
            {
                WebEntry data = sub.Entries[kvp.Key] as WebEntry;
                Assert.AreNotEqual(null, data);
                Assert.AreEqual(true, data.Serial >= 0);
                Assert.AreEqual(true, data.Serial < 4);
                ++found[data.Serial];
                switch (data.Serial)
                {
                case 3:
                    Assert.AreEqual("http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp", data.URI);
                    Assert.AreEqual("Star City", data.Title);
                    Assert.AreEqual("How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href=\"http://howe.iki.rssi.ru/GCTC/gctc_e.htm\">Star City</a>.",
                                    data.Description);
                    Assert.AreEqual(new DateTime(2003, 6, 3, 9, 39, 21, DateTimeKind.Utc), data.Date);
                    break;

                case 2:
                    Assert.AreEqual("http://liftoff.msfc.nasa.gov/2003/05/30.html#item572", data.URI);
                    Assert.AreEqual("", data.Title);
                    Assert.AreEqual("Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href=\"http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm\">partial eclipse of the Sun</a> on Saturday, May 31st.",
                                    data.Description);
                    Assert.AreEqual(new DateTime(2003, 5, 30, 11, 6, 42, DateTimeKind.Utc), data.Date);
                    break;

                case 1:
                    Assert.AreEqual("http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp", data.URI);
                    Assert.AreEqual("The Engine That Does More", data.Title);
                    Assert.AreEqual("Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly.  The proposed VASIMR engine would do that.",
                                    data.Description);
                    Assert.AreEqual(new DateTime(2003, 5, 27, 8, 37, 32, DateTimeKind.Utc), data.Date);
                    break;

                case 0:
                    Assert.AreEqual("http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp", data.URI);
                    Assert.AreEqual("Astronauts' Dirty Laundry", data.Title);
                    Assert.AreEqual("Compared to earlier spacecraft, the International Space Station has many luxuries, but laundry facilities are not one of them.  Instead, astronauts have other options.",
                                    data.Description);
                    Assert.AreEqual(new DateTime(2003, 5, 20, 8, 56, 2, DateTimeKind.Utc), data.Date);
                    break;
                }
            }
            Assert.AreEqual(1, found[0]);
            Assert.AreEqual(1, found[1]);
            Assert.AreEqual(1, found[2]);
            Assert.AreEqual(1, found[3]);
        }
Exemplo n.º 5
0
        public Task RemoveSubscription(WebSubscription sub)
        {
            if (State.Subscriptions == null)
            {
                State.Subscriptions = new List <WebSubscription>();
            }
            var existingSub = State.Subscriptions.FirstOrDefault(s => s.Id == sub.Id);

            if (existingSub != null)
            {
                State.Subscriptions.Remove(existingSub);
            }
            return(WriteStateAsync());
        }
Exemplo n.º 6
0
        public void TestRdfFeedItems()
        {
            SubscriptionList sl  = new SubscriptionList();
            WebSubscription  sub = new WebSubscription()
            {
                Parent = sl
            };

            sub.Load();
            Dictionary <string, int> propertyChanges = DetectSubscriptionChanges(sub);

            using (FileStream fs = new FileStream("rss-rdf-sample.xml", FileMode.Open)) {
                sub.UpdateFromStreamReader(new StreamReader(fs), SynchronousDispatch, RejectError);
            }
            ValidateRdf(sub);
        }
Exemplo n.º 7
0
        public void ValidateRdf(WebSubscription sub)
        {
            int[] found = new int[3] {
                0, 0, 0
            };
            foreach (KeyValuePair <string, Entry> kvp in sub.Entries)
            {
                WebEntry data = sub.Entries[kvp.Key] as WebEntry;
                Assert.AreNotEqual(null, data);
                Assert.AreEqual(true, data.Serial >= 0);
                Assert.AreEqual(true, data.Serial < 3);
                ++found[data.Serial];
                switch (data.Serial)
                {
                case 2:
                    Assert.AreEqual("http://lwn.net/Articles/546186/rss", data.URI);
                    Assert.AreEqual("Ubuntu 13.04 (Raring Ringtail) Beta 2 released", data.Title);
                    Assert.AreEqual("\n      The second and final Ubuntu 13.04 ...\n",
                                    data.Description);
                    Assert.AreEqual(new DateTime(2013, 4, 5, 17, 28, 0, DateTimeKind.Utc), data.Date);
                    break;

                case 1:
                    Assert.AreEqual("http://lwn.net/Articles/546120/rss", data.URI);
                    Assert.AreEqual("Friday's security updates", data.Title);
                    Assert.AreEqual("\n      <p>\n<b>Fedora</b> has updated ...\n ",
                                    data.Description);
                    Assert.AreEqual(new DateTime(2013, 4, 5, 14, 53, 13, DateTimeKind.Utc), data.Date);
                    break;

                case 0:
                    Assert.AreEqual("http://lwn.net/Articles/545918/rss", data.URI);
                    Assert.AreEqual("Thursday's security updates", data.Title);
                    Assert.AreEqual("\n      <p>\n<b>Debian</b> has updated ...\n",
                                    data.Description);
                    Assert.AreEqual(new DateTime(2013, 4, 4, 16, 10, 58, DateTimeKind.Utc), data.Date);
                    break;
                }
            }
            Assert.AreEqual(1, found[0]);
            Assert.AreEqual(1, found[1]);
            Assert.AreEqual(1, found[2]);
        }
Exemplo n.º 8
0
        public void TestAtomFeedDetails()
        {
            SubscriptionList sl  = new SubscriptionList();
            WebSubscription  sub = new WebSubscription()
            {
                Parent = sl
            };

            sub.Load();
            Dictionary <string, int> propertyChanges = DetectSubscriptionChanges(sub);

            using (FileStream fs = new FileStream("atomsample.xml", FileMode.Open)) {
                sub.UpdateFromStreamReader(new StreamReader(fs), SynchronousDispatch, RejectError);
            }
            Assert.AreEqual(1, propertyChanges["Title"]);
            Assert.AreEqual(1, propertyChanges["PublicURI"]);
            Assert.AreEqual("Example Feed", sub.Title);
            Assert.AreEqual("http://example.org/", sub.PublicURI);
        }
Exemplo n.º 9
0
        public void TestAtomFeedSerialization()
        {
            SubscriptionList sl  = new SubscriptionList();
            WebSubscription  sub = new WebSubscription()
            {
                Parent = sl
            };

            sub.Load();
            using (FileStream fs = new FileStream("atomsample.xml", FileMode.Open)) {
                sub.UpdateFromStreamReader(new StreamReader(fs), SynchronousDispatch, RejectError);
            }
            foreach (KeyValuePair <string, Entry> kvp in sub.Entries)
            {
                if (kvp.Value.Serial % 2 == 1)
                {
                    kvp.Value.Read = true;
                }
            }
            sub.Save("data.xml");

            WebSubscription sub2 = new WebSubscription()
            {
                Parent = sl
            };
            Dictionary <string, int> propertyChanges = DetectSubscriptionChanges(sub2);

            sub2.Load("data.xml");
            Assert.AreEqual(1, propertyChanges["Entries"]);
            ValidateAtom(sub2);
            foreach (KeyValuePair <string, Entry> kvp in sub2.Entries)
            {
                if (kvp.Value.Serial % 2 == 1)
                {
                    Assert.AreEqual(true, kvp.Value.Read);
                }
                else
                {
                    Assert.AreEqual(false, kvp.Value.Read);
                }
            }
        }
Exemplo n.º 10
0
        public void TestRdfFeedDetails()
        {
            SubscriptionList sl  = new SubscriptionList();
            WebSubscription  sub = new WebSubscription()
            {
                Parent = sl
            };

            sub.Load();
            Dictionary <string, int> propertyChanges = DetectSubscriptionChanges(sub);

            using (FileStream fs = new FileStream("rss-rdf-sample.xml", FileMode.Open)) {
                sub.UpdateFromStreamReader(new StreamReader(fs), SynchronousDispatch, RejectError);
            }
            Assert.AreEqual(1, propertyChanges["Title"]);
            Assert.AreEqual(1, propertyChanges["PublicURI"]);
            Assert.AreEqual(1, propertyChanges["Description"]);
            Assert.AreEqual("LWN.net", sub.Title);
            Assert.AreEqual("http://lwn.net", sub.PublicURI);
            Assert.AreEqual("\n LWN.net is a ...\n    ", sub.Description);
        }
Exemplo n.º 11
0
        public void TestRssFeedDetails()
        {
            SubscriptionList sl  = new SubscriptionList();
            WebSubscription  sub = new WebSubscription()
            {
                Parent = sl
            };

            sub.Load();
            Dictionary <string, int> propertyChanges = DetectSubscriptionChanges(sub);

            using (FileStream fs = new FileStream("rss2sample.xml", FileMode.Open)) {
                sub.UpdateFromStreamReader(new StreamReader(fs), SynchronousDispatch, RejectError);
            }
            Assert.AreEqual(1, propertyChanges["Title"]);
            Assert.AreEqual(1, propertyChanges["PublicURI"]);
            Assert.AreEqual(1, propertyChanges["Description"]);
            Assert.AreEqual("Liftoff News", sub.Title);
            Assert.AreEqual("http://liftoff.msfc.nasa.gov/", sub.PublicURI);
            Assert.AreEqual("Liftoff to Space Exploration.", sub.Description);
        }
Exemplo n.º 12
0
 public async Task RemoveSubscription(WebSubscription sub)
 {
     var subscriptionGrain = _clusterClient.GetGrain <ISubscriptionGrain>("subs");
     await subscriptionGrain.RemoveSubscription(sub);
 }
Exemplo n.º 13
0
 public async Task AddSubscription(WebSubscription webSubscription)
 {
     var subscriptionGrain = _clusterClient.GetGrain <ISubscriptionGrain>("subs");
     await subscriptionGrain.AddSubscription(webSubscription);
 }