Esempio n. 1
0
        public void GetParameters_Returns_Parameters()
        {
            var wmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage>();
            Expression <Func <WelcomeMessage, bool> > expression =
                wm =>
                wm.Type == WelcomeMessageType.ListMessages &&
                wm.Count == 1 &&
                wm.Cursor == "ABC123" &&
                wm.ID == 456;
            var lambdaExpression = expression as LambdaExpression;

            Dictionary <string, string> queryParams = wmReqProc.GetParameters(lambdaExpression);

            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair <string, string>("Type", ((int)WelcomeMessageType.ListMessages).ToString(CultureInfo.InvariantCulture))));
            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair <string, string>("Count", "1")));
            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair <string, string>("Cursor", "ABC123")));
            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair <string, string>("ID", "456")));
        }
Esempio n. 2
0
        public void ProcessResults_ForShowWelcomeMessage_HandlesSingleResult()
        {
            var wmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage>
            {
                BaseUrl = "https://api.twitter.com/1.1/",
                Type    = WelcomeMessageType.ShowMessage
            };

            List <WelcomeMessage> msgs = wmReqProc.ProcessResults(TestQuerySingleWelcomeMessageResponse);

            WelcomeMessage welcomeMsg = msgs?.First();

            Assert.IsNotNull(welcomeMsg);
            WelcomeMessageValue val = welcomeMsg.Value;

            Assert.IsNotNull(val);
            WelcomeMsg msg = val.WelcomeMessage;

            Assert.IsNotNull(msg);
            Assert.AreEqual("950134376347574276", msg.Id);
            Assert.AreEqual("1515364662621", msg.CreatedTimestamp);
            Assert.AreEqual("472356", msg.SourceAppId);
            Assert.AreEqual("New Welcome Message", msg.Name);
            WelcomeMessageData data = msg.MessageData;

            Assert.IsNotNull(data);
            Assert.AreEqual("Welcome!", data.Text);
            JObject app       = val.Apps;
            JObject appDetail = app.Value <JObject>("472356");

            Assert.AreEqual("472356", appDetail.Value <string>("id"));
            Assert.AreEqual("LINQ to Tweeter", appDetail.Value <string>("name"));
            Assert.AreEqual("https://github.com/JoeMayo/LinqToTwitter", appDetail.Value <string>("url"));
        }
Esempio n. 3
0
        public void ProcessResults_ForListRules_HandlesMultipleResults()
        {
            var wmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage>
            {
                BaseUrl = "https://api.twitter.com/1.1/",
                Type    = WelcomeMessageType.ListMessages
            };

            List <WelcomeMessage> msgs = wmReqProc.ProcessResults(TestQueryMultipleRuleResponses);

            WelcomeMessage welcomeMsg = msgs.FirstOrDefault();

            Assert.IsNotNull(welcomeMsg);
            WelcomeMessageValue val = welcomeMsg.Value;

            Assert.IsNotNull(val);
            List <WelcomeMessageRule> rules = val.WelcomeMessageRules;

            Assert.IsNotNull(rules);
            WelcomeMessageRule rule = rules.FirstOrDefault();

            Assert.IsNotNull(rule);
            Assert.AreEqual("949450720239001600", rule.ID);
            Assert.AreEqual("1515201666303", rule.CreatedTimestamp);
            Assert.AreEqual("949450173926617092", rule.WelcomeMessageID);
        }
Esempio n. 4
0
        public void ProcessResults_ForListWelcomeMessages_HandlesMultipleResults()
        {
            var wmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage>
            {
                BaseUrl = "https://api.twitter.com/1.1/",
                Type    = WelcomeMessageType.ListMessages
            };

            List <WelcomeMessage> msgs = wmReqProc.ProcessResults(TestQueryMultipleWelcomeMessageResponses);

            WelcomeMessage welcomeMsg = msgs?.First();

            Assert.IsNotNull(welcomeMsg);
            WelcomeMessageValue val = welcomeMsg.Value;

            Assert.IsNotNull(val);
            List <WelcomeMsg> msgList = val.WelcomeMessages;
            WelcomeMsg        msg     = msgList.FirstOrDefault();

            Assert.IsNotNull(msg);
            Assert.AreEqual("New Welcome Message", msg.Name);
            WelcomeMessageData data = msg.MessageData;

            Assert.IsNotNull(data);
            Assert.AreEqual("Welcome!", data.Text);
        }
Esempio n. 5
0
        public void BuildUrl_WithNullParamDictionary_Throws()
        {
            var wmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };

            ArgumentException ex = L2TAssert.Throws <ArgumentException>(() => wmReqProc.BuildUrl(null));

            Assert.AreEqual("Type", ex.ParamName);
        }
Esempio n. 6
0
        public void ProcessResults_WithEmptyResults_ReturnsEmptyCollection()
        {
            var wmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };

            List <WelcomeMessage> msgs = wmReqProc.ProcessResults(string.Empty);

            Assert.IsFalse(msgs.Any());
        }
Esempio n. 7
0
        public void BuildUrl_WithMissingType_Throws()
        {
            var wmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            var parameters = new Dictionary <string, string>();

            ArgumentException ex = L2TAssert.Throws <ArgumentException>(() => wmReqProc.BuildUrl(parameters));

            Assert.AreEqual("Type", ex.ParamName);
        }
Esempio n. 8
0
        public void BuildUrl_ForShowMessageWithoutID_Throws()
        {
            var wmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            var parameters =
                new Dictionary <string, string>
            {
                { "Type", ((int)WelcomeMessageType.ShowMessage).ToString(CultureInfo.InvariantCulture) },
                //{ "ID", "478805447" },
            };

            ArgumentNullException ex = L2TAssert.Throws <ArgumentNullException>(() => wmReqProc.BuildUrl(parameters));

            Assert.AreEqual("ID", ex.ParamName);
        }
Esempio n. 9
0
        public void ProcessResults_WithShowQuery_ReplacesInputParams()
        {
            const ulong ID = 5;

            var wmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage>
            {
                BaseUrl = "https://api.twitter.com/1.1/",
                Type    = WelcomeMessageType.ShowMessage,
                ID      = ID
            };

            List <WelcomeMessage> msgs = wmReqProc.ProcessResults(TestQuerySingleWelcomeMessageResponse);

            WelcomeMessage wm = msgs.First();

            Assert.AreEqual(ID, wm.ID);
        }
Esempio n. 10
0
        public void BuildUrl_WithShowRule_ConstructsUrl()
        {
            var wmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            const string Expected   = "https://api.twitter.com/1.1/direct_messages/welcome_messages/rules/show.json?id=1";
            var          parameters =
                new Dictionary <string, string>
            {
                { "Type", ((int)WelcomeMessageType.ShowRule).ToString(CultureInfo.InvariantCulture) },
                { "ID", "1" }
            };

            Request req = wmReqProc.BuildUrl(parameters);

            Assert.AreEqual(Expected, req.FullUrl);
        }
Esempio n. 11
0
        public void BuildUrl_WithListRules_ConstructsUrl()
        {
            var wmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            const string Expected   = "https://api.twitter.com/1.1/direct_messages/welcome_messages/rules/list.json?count=2&cursor=ABC123";
            var          parameters =
                new Dictionary <string, string>
            {
                { "Type", ((int)WelcomeMessageType.ListRules).ToString(CultureInfo.InvariantCulture) },
                { "Count", "2" },
                { "Cursor", "ABC123" }
            };

            Request req = wmReqProc.BuildUrl(parameters);

            Assert.AreEqual(Expected, req.FullUrl);
        }
Esempio n. 12
0
        public void ProcessResults_WithListQuery_ReplacesInputParams()
        {
            const int    Count  = 4;
            const string Cursor = "ABC123";

            var dmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage>
            {
                BaseUrl = "https://api.twitter.com/1.1/",
                Type    = WelcomeMessageType.ListMessages,
                Count   = Count,
                Cursor  = Cursor
            };

            List <WelcomeMessage> msgs = dmReqProc.ProcessResults(TestQueryMultipleWelcomeMessageResponses);

            WelcomeMessage wm = msgs.First();

            Assert.AreEqual(Count, wm.Count);
            Assert.AreEqual(Cursor, wm.Cursor);
        }
Esempio n. 13
0
        public void ProcessResults_ForShowWelcomeMessageRule_HandlesSingleResult()
        {
            var wmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage>
            {
                BaseUrl = "https://api.twitter.com/1.1/",
                Type    = WelcomeMessageType.ShowMessage
            };

            List <WelcomeMessage> msgs = wmReqProc.ProcessResults(TestQuerySingleWelcomeMessageRuleResponse);

            WelcomeMessage welcomeMsg = msgs.FirstOrDefault();

            Assert.IsNotNull(welcomeMsg);
            WelcomeMessageValue val = welcomeMsg.Value;

            Assert.IsNotNull(val);
            WelcomeMessageRule rule = val.WelcomeMessageRule;

            Assert.IsNotNull(rule);
            Assert.AreEqual("950225380517937152", rule.ID);
            Assert.AreEqual("1515386359706", rule.CreatedTimestamp);
            Assert.AreEqual("950134376347574276", rule.WelcomeMessageID);
        }
Esempio n. 14
0
        public void DirectMessageRequestProcessor_Works_With_Actions()
        {
            var wmReqProc = new WelcomeMessageRequestProcessor <WelcomeMessage>();

            Assert.IsInstanceOfType(wmReqProc, typeof(IRequestProcessorWithAction <WelcomeMessage>));
        }