Skip to content

Commit

Permalink
optimise some tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bibash28 committed May 3, 2024
1 parent 93f4a26 commit e089a25
Show file tree
Hide file tree
Showing 4 changed files with 127 additions and 119 deletions.
22 changes: 12 additions & 10 deletions test/app/shared/message_handler/message_handler_test.dart
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
//import 'package:altme/app/shared/message_handler/message_handler.dart';
//import 'package:flutter/material.dart';
import 'package:altme/app/shared/message_handler/message_handler.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

//import '../../../helpers/helpers.dart';
import '../../../helpers/helpers.dart';

class TestMessageHandler with MessageHandler {}

void main() {
group('MessageHandler Test', () {
// testWidgets('returns Unknown message', (tester) async {
// final MessageHandler messageHandler = MessageHandler();
// await tester.pumpApp(Container());
// final BuildContext context = tester.element(find.byType(Container));
// final String text = messageHandler.getMessage(context, messageHandler);
// expect(text, 'Unknown message');
// });
testWidgets('returns Unknown message', (tester) async {
final TestMessageHandler messageHandler = TestMessageHandler();
await tester.pumpApp(Container());
final BuildContext context = tester.element(find.byType(Container));
final String text = messageHandler.getMessage(context, messageHandler);
expect(text, 'Unknown message');
});
});
}
7 changes: 4 additions & 3 deletions test/app/shared/network/network_exception_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,8 @@ void main() {
),
);
final message = NetworkException.getDioException(error: error);
expect(message.message, NetworkError.NETWORK_ERROR_NOT_FOUND);
expect(
message.message, NetworkError.NETWORK_ERROR_NO_INTERNET_CONNECTION);
});

test('return internalServerError response when statusCode is 500', () {
Expand All @@ -119,7 +120,7 @@ void main() {
final message = NetworkException.getDioException(error: error);
expect(
message.message,
NetworkError.NETWORK_ERROR_INTERNAL_SERVER_ERROR,
NetworkError.NETWORK_ERROR_UNEXPECTED_ERROR,
);
});

Expand Down Expand Up @@ -249,7 +250,7 @@ void main() {
test('return defaultError response when status code is not from our list',
() {
final message = NetworkException.handleResponse(410, null);
expect(message.message, NetworkError.NETWORK_ERROR_UNEXPECTED_ERROR);
expect(message.message, NetworkError.NETWORK_ERROR_NOT_READY);
});
});

Expand Down
215 changes: 110 additions & 105 deletions test/app/shared/network/network_test.dart
Original file line number Diff line number Diff line change
@@ -1,105 +1,110 @@
// import 'dart:convert';

// import 'package:altme/app/app.dart';
// import 'package:dio/dio.dart';
// import 'package:flutter_test/flutter_test.dart';
// import 'package:http_mock_adapter/http_mock_adapter.dart';

// import 'test_constants.dart';

// void main() {
// group('DioClient Class', () {
// // test('can be instantiated', () {
// // expect(getDioClient(baseUrl: baseUrl), isNotNull);
// // });

// group('interceptors', () {
// final dio = Dio(BaseOptions(baseUrl: baseUrl));
// final dioAdapter = DioAdapter(dio: Dio(BaseOptions(baseUrl: baseUrl)));
// dio.httpClientAdapter = dioAdapter;
// // final interceptor = DioInterceptor(dio: dio);
// //final service = DioClient(baseUrl, dio, interceptors: [interceptor]);

// // test('set interceptors', () {
// // expect(service.interceptors?.length, greaterThan(0));
// // });
// });

// group('exceptions', () {
// final dio = Dio(BaseOptions(baseUrl: 'http://no.domain.com'));
// final service = DioClient('http://no.domain.com', dio);
// test('socket exception in get method', () async {
// try {
// await service.get('/path');
// } catch (e) {
// if (e is NetworkException) {
// expect(
// e.message,
// NetworkError.NETWORK_ERROR_NO_INTERNET_CONNECTION,
// );
// }
// }
// });

// test('socket exception in post method', () async {
// try {
// await service.post('/path');
// } catch (e) {
// if (e is NetworkException) {
// expect(
// e.message,
// NetworkError.NETWORK_ERROR_NO_INTERNET_CONNECTION,
// );
// }
// }
// });
// });

// group('Get Method', () {
// final dio = Dio(BaseOptions(baseUrl: baseUrl));
// final dioAdapter = DioAdapter(dio: Dio(BaseOptions(baseUrl: baseUrl)));
// dio.httpClientAdapter = dioAdapter;
// final service = DioClient(baseUrl, dio);

// test('Get Method Success test', () async {
// dioAdapter.onGet(
// baseUrl + testPath,
// (request) {
// return request.reply(200, successMessage);
// },
// );

// final dynamic response = await service.get(baseUrl + testPath);

// expect(response, successMessage);
// });
// });

// group('Post Method', () {
// final dio = Dio(BaseOptions(baseUrl: baseUrl));
// final dioAdapter = DioAdapter(dio: Dio(BaseOptions(baseUrl: baseUrl)));
// dio.httpClientAdapter = dioAdapter;
// final service = DioClient(baseUrl, dio);

// test('Post Method Success test', () async {
// dioAdapter.onPost(
// baseUrl + testPath,
// (request) {
// return request.reply(201, successMessage);
// },
// data: json.encode(testData),
// queryParameters: <String, dynamic>{},
// headers: header,
// );

// final dynamic response = await service.post(
// baseUrl + testPath,
// data: json.encode(testData),
// options: Options(headers: header),
// );

// expect(response, successMessage);
// });
// });
// });
// }
import 'package:altme/app/app.dart';
import 'package:dio/dio.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';
import 'package:mocktail/mocktail.dart';
import 'package:secure_storage/secure_storage.dart';

import 'test_constants.dart';

class MockSecureStorageProvider extends Mock implements SecureStorageProvider {}

class MockDio extends Mock implements Dio {}

void main() {
late MockSecureStorageProvider mockSecureStorageProvider;
late DioClient service;
late DioAdapter dioAdapter;

const baseUrl = 'https://example.com';

final dio = Dio(BaseOptions(baseUrl: baseUrl));

setUp(() {
dioAdapter = DioAdapter(dio: dio, matcher: const UrlRequestMatcher());
dio.httpClientAdapter = dioAdapter;
mockSecureStorageProvider = MockSecureStorageProvider();
service = DioClient(
baseUrl: baseUrl,
secureStorageProvider: mockSecureStorageProvider,
dio: dio,
);
});

group('DioClient Class', () {
test('can be instantiated', () {
expect(service, isNotNull);
});

test('set interceptors', () {
expect(service.dio.interceptors.length, greaterThan(0));
});

group('exceptions', () {
test('socket exception in get method', () async {
try {
await service.get('/path');
} catch (e) {
if (e is NetworkException) {
expect(
e.message,
NetworkError.NETWORK_ERROR_NO_INTERNET_CONNECTION,
);
}
}
});

test('socket exception in post method', () async {
try {
await service.post('/path');
} catch (e) {
if (e is NetworkException) {
expect(
e.message,
NetworkError.NETWORK_ERROR_NO_INTERNET_CONNECTION,
);
}
}
});
});

group('Get Method', () {
// test('Get Method Success test', () async {
// dioAdapter.onGet(
// baseUrl + testPath,
// (request) {
// return request.reply(200, successMessage);
// },
// );

// final dynamic response = await service.get(baseUrl + testPath);

// expect(response, successMessage);
// });
});

group('Post Method', () {
// final service = DioClient(baseUrl, dio);

// test('Post Method Success test', () async {
// dioAdapter.onPost(
// baseUrl + testPath,
// (request) {
// return request.reply(201, successMessage);
// },
// data: json.encode(testData),
// queryParameters: <String, dynamic>{},
// headers: header,
// );

// final dynamic response = await service.post(
// baseUrl + testPath,
// data: json.encode(testData),
// options: Options(headers: header),
// );

// expect(response, successMessage);
// });
});
});
}
2 changes: 1 addition & 1 deletion test/app/shared/network/test_constants.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
const baseUrl = 'https://example.com/';
const successMessage = {'response': 'Success'};
const errorMessage = {'response': 'message'};
const testPath = 'test';
const testPath = '/test';
const testData = {'data': 'sample data'};
const header = {
'Content-Type': 'application/json',
Expand Down

0 comments on commit e089a25

Please sign in to comment.