Example #1
0
        public void ConverterTest()
        {
            const string input = @"
                {
                    ""events"": [
                        {
                            ""type"": ""message"",
                            ""replyToken"": ""98645878f3dcae996c83b3fb483b7c3e"",
                            ""source"": {
                                ""userId"": ""U16cb23db6619b551c5729daebe6396ee"",
                                ""type"": ""user""
                            },
                            ""timestamp"": 1588685138631,
                            ""mode"": ""active"",
                            ""message"": {
                                ""type"": ""text"",
                                ""id"": ""11982107614650"",
                                ""text"": ""some message""
                            }
                        },
                        {
                            ""replyToken"": ""0f3779fba5d07d3b349968cb31eab56f"",
                            ""type"": ""message"",
                            ""timestamp"": 1231321,
                            ""source"": {
                                ""type"": ""group"",
                                ""userId"": ""U4af4980629..."",
                                ""groupId"": ""gggg4980629...""
                            },
                            ""message"": {
                                ""id"": ""325708"",
                                ""type"": ""text"",
                                ""text"": ""test message""
                            }
                        },
                        {
                            ""replyToken"": ""8cf9239d56244f4197887e939187e19e"",
                            ""type"": ""message"",
                            ""timestamp"": 1231321,
                            ""source"": {
                                ""type"": ""user"",
                                ""userId"": ""U4af4980629...""
                            },
                            ""message"": {
                                ""packageId"": ""1"",
                                ""type"": ""sticker"",
                                ""stickerId"": ""13""
                            }
                        },
                        {
                            ""replyToken"": ""0f37b349968c5d79fba307db31eabf65"",
                            ""type"": ""memberJoined"",
                            ""timestamp"": 1462629479859,
                            ""source"": {
                                ""type"": ""group"",
                                ""groupId"": ""C4af4980629...""
                            },
                            ""joined"": {
                            ""members"": [
                                {
                                    ""type"": ""user"",
                                    ""userId"": ""U4af4980629...""
                                },
                                {
                                    ""type"": ""user"",
                                    ""userId"": ""U91eeaf62d9...""
                                }
                            ]
                            }
                        }
                    ],
                    ""destination"": ""U9ebdd473d2415d19f58642e1734974f""
                }
            ";
            EventRequest want  = new EventRequest
            {
                Destination = "U9ebdd473d2415d19f58642e1734974f",
                Events      = new Event[] {
                    new MessageEvent {
                        ReplyToken = "98645878f3dcae996c83b3fb483b7c3e",
                        Timestamp  = 1588685138631,
                        Source     = new Source
                        {
                            Type   = "user",
                            UserID = "U16cb23db6619b551c5729daebe6396ee",
                        },
                        Message = new TextMessage()
                        {
                            Text = "some message"
                        }
                    },
                    new MessageEvent {
                        ReplyToken = "0f3779fba5d07d3b349968cb31eab56f",
                        Timestamp  = 1231321,
                        Source     = new Source
                        {
                            Type    = "group",
                            UserID  = "U4af4980629...",
                            GroupID = "gggg4980629...",
                        },
                        Message = new TextMessage()
                        {
                            Text = "test message"
                        }
                    },
                    new MessageEvent {
                        ReplyToken = "8cf9239d56244f4197887e939187e19e",
                        Timestamp  = 1231321,
                        Source     = new Source
                        {
                            Type   = "user",
                            UserID = "U4af4980629...",
                        },
                        Message = new StickerMessage()
                        {
                            PackageID = "1",
                            StickerID = "13",
                        }
                    },
                    new MemberJoinEvent {
                        ReplyToken  = "0f37b349968c5d79fba307db31eabf65",
                        JoinMembers = new Members
                        {
                            Sources = new Source[]
                            {
                                new Source {
                                    Type   = "user",
                                    UserID = "U4af4980629..."
                                },
                                new Source {
                                    Type   = "user",
                                    UserID = "U91eeaf62d9..."
                                },
                            },
                        },
                    },
                },
            };

            EventRequest got;

            try
            {
                got = JsonConvert.DeserializeObject <EventRequest>(input, new WebhookEventConverter());
            }
            catch (Exception e)
            {
                Assert.Fail(e.Message);
                return;
            }

            ReflectionCompare.Compare(got, want);
        }
Example #2
0
        public void TestParseRequest()
        {
            const string data = @"
                {
                    ""events"": [
                        {
                            ""type"": ""message"",
                            ""replyToken"": ""98645878f3dcae996c83b3fb483b7c3e"",
                            ""source"": {
                                ""userId"": ""U16cb23db6619b551c5729daebe6396ee"",
                                ""type"": ""user""
                            },
                            ""timestamp"": 1588685138631,
                            ""mode"": ""active"",
                            ""message"": {
                                ""type"": ""text"",
                                ""id"": ""11982107614650"",
                                ""text"": ""some message""
                            }
                        },
                        {
                            ""replyToken"": ""0f3779fba5d07d3b349968cb31eab56f"",
                            ""type"": ""message"",
                            ""timestamp"": ""1231321"",
                            ""source"": {
                                ""type"": ""group"",
                                ""userId"": ""U4af4980629..."",
                                ""groupId"": ""gggg4980629...""
                            },
                            ""message"": {
                                ""id"": ""325708"",
                                ""type"": ""text"",
                                ""text"": ""test message""
                            }
                        },
                        {
                            ""replyToken"": ""8cf9239d56244f4197887e939187e19e"",
                            ""type"": ""message"",
                            ""timestamp"": ""1231321"",
                            ""source"": {
                                ""type"": ""user"",
                                ""userId"": ""U4af4980629...""
                            },
                            ""message"": {
                                ""packageId"": ""1"",
                                ""type"": ""sticker"",
                                ""stickerId"": ""13""
                            }
                        },
                        {
                            ""replyToken"": ""0f37b349968c5d79fba307db31eabf65"",
                            ""type"": ""memberJoined"",
                            ""timestamp"": 1462629479859,
                            ""source"": {
                                ""type"": ""group"",
                                ""groupId"": ""C4af4980629...""
                            },
                            ""joined"": {
                            ""members"": [
                                {
                                    ""type"": ""user"",
                                    ""userId"": ""U4af4980629...""
                                },
                                {
                                    ""type"": ""user"",
                                    ""userId"": ""U91eeaf62d9...""
                                }
                            ]
                            }
                        }
                    ],
                    ""destination"": ""U9ebdd473d2415d19f58642e1734974f""
                }
            ";
            byte[] byteArray = Encoding.ASCII.GetBytes(data);
            MemoryStream input = new MemoryStream(byteArray);
            EventRequest want = JsonConvert.DeserializeObject<EventRequest>(data, new WebhookEventConverter());

            Handler handler = new Handler();
            EventRequest got = handler.ParseRequest(input);

            ReflectionCompare.Compare(got, want);
        }