Skip to content

Instantly share code, notes, and snippets.

@sbis04
Created February 17, 2021 01:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sbis04/a7b15f4378e2f0cefcc8ac3ec6b0520b to your computer and use it in GitHub Desktop.
Save sbis04/a7b15f4378e2f0cefcc8ac3ec6b0520b to your computer and use it in GitHub Desktop.
main() {
Dio dio;
group('MUX API mock tests', () {
DioAdapter dioAdapter;
MUXClient muxClient;
setUpAll(() {
dio = Dio();
dioAdapter = DioAdapter();
dio.httpClientAdapter = dioAdapter;
muxClient = MUXClient();
muxClient.initializeDio();
});
test('GET videos', () async {
const path = '$muxServerUrl/assets';
String testJsonResponse =
'''{"data" : [{"playback_ids" : [{"policy" : "public", "id" : "9pWt97lvZeW02LOhYpaGiKPN01XvOaK6K15QClHrVxUqs"}], "status" : "ready", "id" : "tOY008DPRz9jB5r01DpOIfKxlspNocMsDUmK3iodCMEZ00", "created_at" : "1612112341",},]}''';
dio.httpClientAdapter = dioAdapter;
dioAdapter.onGet(path).reply(200, testJsonResponse);
final onGetResponse = await dio.get(path);
expect(await muxClient.getAssetList(), isA<AssetData>());
expect(onGetResponse.data, testJsonResponse);
});
test('GET status', () async {
const String videoId = 'QsaseZLbz01n3hv5mJL1sB6TnB8MT3mL7CfiAhaY02MIk';
const path = '/asset';
String testJsonResponse =
'''{"data": {"status": "ready", "playback_ids": [{"policy": "public", "id": "tcSCm5mqYxI1Rok602o8yKJQb001zOMvFb4bW61lKSzqE"}], "id": "BIJ95sTJnI4RMwm57GTBWA00WUoZYkQdwjKPqnNAxwi00", "created_at": "1612129368"}}''';
dio.httpClientAdapter = dioAdapter;
dioAdapter.onGet(path).reply(200, testJsonResponse);
final onGetResponse = await dio.get(path);
expect(
await muxClient.checkPostStatus(videoId: videoId), isA<VideoData>());
expect(onGetResponse.data, testJsonResponse);
});
test('POST a video', () async {
const path = '$muxServerUrl/assets';
String testJsonResponse =
'''{"data": {"status": "preparing", "playback_ids": [{"policy": "public", "id": "tcSCm5mqYxI1Rok602o8yKJQb001zOMvFb4bW61lKSzqE"}], "id": "BIJ95sTJnI4RMwm57GTBWA00WUoZYkQdwjKPqnNAxwi00", "created_at": "1612129368"}}''';
dio.httpClientAdapter = dioAdapter;
dioAdapter.onPost(
path,
data: {
"input": demoVideoUrl,
"playback_policy": playbackPolicy,
},
).reply(200, testJsonResponse);
final onPostResponse = await dio.post(
path,
data: {
"input": demoVideoUrl,
"playback_policy": playbackPolicy,
},
);
expect(
await muxClient.storeVideo(videoUrl: demoVideoUrl), isA<VideoData>());
expect(onPostResponse.data, testJsonResponse);
});
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment