From 2c72d41e7864776796cf8d1aec9b22f177dd33d0 Mon Sep 17 00:00:00 2001 From: Tommy Chow Date: Sat, 25 Sep 2021 01:17:40 -0400 Subject: [PATCH] Add channel & user parse test --- test/channel_test.dart | 48 ++++++++++++++++++++++++++++++++++++++++++ test/user_test.dart | 36 +++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 test/channel_test.dart create mode 100644 test/user_test.dart diff --git a/test/channel_test.dart b/test/channel_test.dart new file mode 100644 index 00000000..063f903b --- /dev/null +++ b/test/channel_test.dart @@ -0,0 +1,48 @@ +import 'dart:convert'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:frosty/models/channel.dart'; + +void main() { + test('Twitch channel should parse', () { + const sampleChannel = ''' + { + "id":"43809710301", + "user_id":"71092938", + "user_login":"xqcow", + "user_name":"xQcOW", + "game_id":"508292", + "game_name":"Bloons TD 6", + "type":"live", + "title":"A shorter title...", + "viewer_count":50051, + "started_at":"2021-09-23T20:06:22Z", + "language":"en", + "thumbnail_url":"https://static-cdn.jtvnw.net/previews-ttv/live_user_xqcow-{width}x{height}.jpg", + "tag_ids":[ + "e6bb8b34-4c28-4b5f-94ed-12c1ebf2d0e4", + "6ea6bca4-4712-4ab9-a906-e3336a9d8039", + "6606e54c-f92d-40f6-8257-74977889ccdd" + ], + "is_mature":false + } + '''; + + final decoded = jsonDecode(sampleChannel); + final channel = Channel.fromJson(decoded); + + expect(channel.id, '43809710301'); + expect(channel.userId, '71092938'); + expect(channel.userLogin, 'xqcow'); + expect(channel.userName, 'xQcOW'); + expect(channel.gameId, '508292'); + expect(channel.gameName, 'Bloons TD 6'); + expect(channel.type, 'live'); + expect(channel.title, 'A shorter title...'); + expect(channel.viewerCount, 50051); + expect(channel.startedAt, '2021-09-23T20:06:22Z'); + expect(channel.language, 'en'); + expect(channel.thumbnailUrl, 'https://static-cdn.jtvnw.net/previews-ttv/live_user_xqcow-{width}x{height}.jpg'); + expect(channel.tagIds, ["e6bb8b34-4c28-4b5f-94ed-12c1ebf2d0e4", "6ea6bca4-4712-4ab9-a906-e3336a9d8039", "6606e54c-f92d-40f6-8257-74977889ccdd"]); + expect(channel.isMature, false); + }); +} diff --git a/test/user_test.dart b/test/user_test.dart new file mode 100644 index 00000000..f1031937 --- /dev/null +++ b/test/user_test.dart @@ -0,0 +1,36 @@ +import 'dart:convert'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:frosty/models/user.dart'; + +void main() { + test('Twitch user should parse', () { + const sampleUser = ''' + { + "id":"88888888", + "login":"bob", + "display_name":"Bob", + "type":"random type", + "broadcaster_type":"streamer", + "description":"random description", + "profile_image_url":"https://static-cdn.jtvnw.net/user-default-pictures-uv/ead5c8b2-a4c9-4724-b1dd-9f00b46cbd3d-profile_image-300x300.png", + "offline_image_url":"", + "view_count":94, + "created_at":"2013-09-25T00:32:05Z" + } + '''; + + final decoded = jsonDecode(sampleUser); + final user = UserTwitch.fromJson(decoded); + + expect(user.id, '88888888'); + expect(user.login, 'bob'); + expect(user.displayName, 'Bob'); + expect(user.type, 'random type'); + expect(user.broadcasterType, 'streamer'); + expect(user.description, 'random description'); + expect(user.profileImageUrl, 'https://static-cdn.jtvnw.net/user-default-pictures-uv/ead5c8b2-a4c9-4724-b1dd-9f00b46cbd3d-profile_image-300x300.png'); + expect(user.offlineImageUrl, ''); + expect(user.viewCount, 94); + expect(user.createdAt, '2013-09-25T00:32:05Z'); + }); +}