unit test
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:fotodocumentation/controller/base_controller.dart';
|
||||
import 'package:fotodocumentation/controller/customer_controller.dart';
|
||||
import 'package:fotodocumentation/controller/foto_customer_controller.dart';
|
||||
import 'package:fotodocumentation/dto/customer_dto.dart';
|
||||
import 'package:fotodocumentation/utils/di_container.dart';
|
||||
import 'package:fotodocumentation/utils/http_client_utils.dart';
|
||||
@@ -17,7 +17,7 @@ void main() {
|
||||
when(jwtTokenStorage.getAccessToken()).thenAnswer((_) => null);
|
||||
DiContainer.instance.put(JwtTokenStorage, jwtTokenStorage);
|
||||
|
||||
CustomerController controller = CustomerControllerImpl();
|
||||
FotoCustomerController controller = FotoCustomerControllerImpl();
|
||||
|
||||
group('PictureControllerTest', () {
|
||||
test('returns a list of customers', () async {
|
||||
@@ -0,0 +1,128 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:fotodocumentation/controller/base_controller.dart';
|
||||
import 'package:fotodocumentation/controller/questionnaire_customer_controller.dart';
|
||||
import 'package:fotodocumentation/dto/questionnaire_customer_dto.dart';
|
||||
import 'package:fotodocumentation/utils/di_container.dart';
|
||||
import 'package:fotodocumentation/utils/http_client_utils.dart';
|
||||
import 'package:fotodocumentation/utils/jwt_token_storage.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:mockito/mockito.dart';
|
||||
|
||||
import '../testing/test_http_client_utils.dart';
|
||||
import '../testing/test_utils.mocks.dart';
|
||||
|
||||
void main() {
|
||||
DiContainer.instance.initState();
|
||||
var jwtTokenStorage = MockJwtTokenStorage();
|
||||
when(jwtTokenStorage.getAccessToken()).thenAnswer((_) => null);
|
||||
DiContainer.instance.put(JwtTokenStorage, jwtTokenStorage);
|
||||
|
||||
QuestionnaireCustomerController controller = QuestionnaireCustomerControllerImpl();
|
||||
|
||||
group('PictureControllerTest', () {
|
||||
test('returns a list of customers', () async {
|
||||
final client = MockClient();
|
||||
DiContainer.instance.put(HttpClientUtils, TestHttpCLientUtilsImpl(client));
|
||||
when(client.get(Uri.parse('http://localhost:8080/api/questionnairecustomer?query=&startsWith='), headers: {"Accept-Language": "en-US"})).thenAnswer((_) async => http.Response(_customersJson, 200));
|
||||
|
||||
var dtos = await controller.getAll("", "");
|
||||
expect(dtos, isA<List<QuestionnaireCustomerListDto>>());
|
||||
expect(dtos.length, 3);
|
||||
});
|
||||
|
||||
test('throws an exception if the http call completes with an error', () async {
|
||||
final client = MockClient();
|
||||
DiContainer.instance.put(HttpClientUtils, TestHttpCLientUtilsImpl(client));
|
||||
|
||||
when(client.get(Uri.parse('http://localhost:8080/api/questionnairecustomer?query=&startsWith='), headers: {"Accept-Language": "en-US"})).thenAnswer((_) async => http.Response('Not Found', 404));
|
||||
|
||||
expect(() async => await controller.getAll("", ""), throwsA(isA<ServerError>()));
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
test('returns a customer', () async {
|
||||
final client = MockClient();
|
||||
DiContainer.instance.put(HttpClientUtils, TestHttpCLientUtilsImpl(client));
|
||||
|
||||
when(client.get(Uri.parse('http://localhost:8080/api/questionnairecustomer/4'), headers: {"Accept-Language": "en-US"}))
|
||||
.thenAnswer((_) async => http.Response(_customerJson, 200));
|
||||
|
||||
var dto = await controller.get(id: 4);
|
||||
expect(dto, isA<QuestionnaireCustomerListDto>());
|
||||
});
|
||||
|
||||
test('export a customer', () async {
|
||||
final client = MockClient();
|
||||
DiContainer.instance.put(HttpClientUtils, TestHttpCLientUtilsImpl(client));
|
||||
|
||||
when(client.get(Uri.parse('http://localhost:8080/api/questionnairecustomer/export/4'), headers: {"Accept-Language": "en-US"}))
|
||||
.thenAnswer((_) async => http.Response(_customerJson, 200));
|
||||
|
||||
var dto = await controller.export(customerId: 4);
|
||||
expect(dto, isA<List<int>>());
|
||||
});
|
||||
|
||||
test('export a customer picture', () async {
|
||||
final client = MockClient();
|
||||
DiContainer.instance.put(HttpClientUtils, TestHttpCLientUtilsImpl(client));
|
||||
|
||||
when(client.get(Uri.parse('http://localhost:8080/api/questionnairecustomer/export/4?picture=1'), headers: {"Accept-Language": "en-US"}))
|
||||
.thenAnswer((_) async => http.Response(_customerJson, 200));
|
||||
|
||||
var dto = await controller.export(customerId: 4, questionnaireId: 1);
|
||||
expect(dto, isA<List<int>>());
|
||||
});
|
||||
}
|
||||
|
||||
String _customersJson = '''[
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Müller Apotheke",
|
||||
"customerNumber": "1234",
|
||||
"lastUpdateDate": 1729764570000
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "Meier Apotheke",
|
||||
"customerNumber": "2345",
|
||||
"lastUpdateDate": 1729764570000
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "Schmidt Apotheke",
|
||||
"customerNumber": "3456",
|
||||
"lastUpdateDate": 1729764570000
|
||||
}
|
||||
]''';
|
||||
|
||||
String _customerJson = '''{
|
||||
"id": 1,
|
||||
"name": "Müller Apotheke",
|
||||
"customerNumber": "1234",
|
||||
"pictures": [
|
||||
{
|
||||
"id": 1,
|
||||
"comment": "good looking picture 1",
|
||||
"category": null,
|
||||
"pictureDate": 1729764570000,
|
||||
"evaluation": 1,
|
||||
"username": "verboomp",
|
||||
"imageUrl": "",
|
||||
"normalSizeUrl": "",
|
||||
"thumbnailSizeUrl": ""
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"comment": "good looking picture 2",
|
||||
"category": null,
|
||||
"pictureDate": 1729764570000,
|
||||
"evaluation": 1,
|
||||
"username": "verboomp",
|
||||
"imageUrl": "",
|
||||
"normalSizeUrl": "",
|
||||
"thumbnailSizeUrl": ""
|
||||
}
|
||||
]
|
||||
}''';
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:fotodocumentation/utils/global_router.dart';
|
||||
import 'package:fotodocumentation/utils/login_credentials.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
|
||||
import 'package:fotodocumentation/controller/customer_controller.dart';
|
||||
import 'package:fotodocumentation/controller/foto_customer_controller.dart';
|
||||
import 'package:fotodocumentation/dto/customer_dto.dart';
|
||||
import 'package:fotodocumentation/utils/di_container.dart';
|
||||
|
||||
@@ -31,7 +31,7 @@ Future<void> _searchtest(WidgetTester tester) async {
|
||||
String searchText = 'Henk';
|
||||
|
||||
var controller = MockCustomerController();
|
||||
DiContainer.instance.put(CustomerController, controller);
|
||||
DiContainer.instance.put(FotoCustomerController, controller);
|
||||
|
||||
when(controller.getAll("", "")).thenAnswer((_) async => _list);
|
||||
when(controller.getAll(searchText, "")).thenAnswer((_) async => [_list.first]);
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:fotodocumentation/utils/global_router.dart';
|
||||
import 'package:fotodocumentation/utils/login_credentials.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
|
||||
import 'package:fotodocumentation/controller/customer_controller.dart';
|
||||
import 'package:fotodocumentation/controller/foto_customer_controller.dart';
|
||||
import 'package:fotodocumentation/controller/picture_controller.dart';
|
||||
import 'package:fotodocumentation/dto/customer_dto.dart';
|
||||
import 'package:fotodocumentation/utils/di_container.dart';
|
||||
@@ -28,7 +28,7 @@ void main() {
|
||||
var controller = MockCustomerController();
|
||||
var pictureController = MockPictureController();
|
||||
DiContainer.instance.put(PictureController, pictureController);
|
||||
DiContainer.instance.put(CustomerController, controller);
|
||||
DiContainer.instance.put(FotoCustomerController, controller);
|
||||
|
||||
when(controller.get(id: 1)).thenAnswer((_) async => _dto);
|
||||
when(controller.getAll("", "")).thenAnswer((_) async => _list);
|
||||
@@ -51,7 +51,7 @@ void main() {
|
||||
var controller = MockCustomerController();
|
||||
var pictureController = MockPictureController();
|
||||
DiContainer.instance.put(PictureController, pictureController);
|
||||
DiContainer.instance.put(CustomerController, controller);
|
||||
DiContainer.instance.put(FotoCustomerController, controller);
|
||||
|
||||
when(controller.get(id: 1)).thenAnswer((_) async => _dto);
|
||||
when(controller.getAll("", "")).thenAnswer((_) async => _list);
|
||||
@@ -83,7 +83,7 @@ void main() {
|
||||
var controller = MockCustomerController();
|
||||
var pictureController = MockPictureController();
|
||||
DiContainer.instance.put(PictureController, pictureController);
|
||||
DiContainer.instance.put(CustomerController, controller);
|
||||
DiContainer.instance.put(FotoCustomerController, controller);
|
||||
|
||||
when(controller.get(id: 1)).thenAnswer((_) async => _dto);
|
||||
when(controller.getAll("", "")).thenAnswer((_) async => _list);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_image_test_utils/image_test/image_test_io.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:fotodocumentation/controller/customer_controller.dart';
|
||||
import 'package:fotodocumentation/controller/foto_customer_controller.dart';
|
||||
import 'package:fotodocumentation/dto/customer_dto.dart' show CustomerDto, CustomerListDto;
|
||||
import 'package:fotodocumentation/dto/picture_dto.dart';
|
||||
import 'package:fotodocumentation/pages/foto/customer/foto_picture_fullscreen_dialog.dart';
|
||||
@@ -69,7 +69,7 @@ void main() {
|
||||
);
|
||||
|
||||
mockCustomerController = MockCustomerController();
|
||||
DiContainer.instance.put(CustomerController, mockCustomerController);
|
||||
DiContainer.instance.put(FotoCustomerController, mockCustomerController);
|
||||
});
|
||||
|
||||
group('PictureWidget', () {
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:http/http.dart' as http;
|
||||
import 'package:mockito/annotations.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
|
||||
import 'package:fotodocumentation/controller/customer_controller.dart';
|
||||
import 'package:fotodocumentation/controller/foto_customer_controller.dart';
|
||||
import 'package:fotodocumentation/controller/login_controller.dart';
|
||||
import 'package:fotodocumentation/controller/picture_controller.dart';
|
||||
import 'package:fotodocumentation/l10n/app_localizations.dart';
|
||||
@@ -63,7 +63,7 @@ Future<void> pumpAppConfig(WidgetTester tester, String initialLocation) async {
|
||||
@GenerateMocks([
|
||||
LoginCredentials,
|
||||
LoginController,
|
||||
CustomerController,
|
||||
FotoCustomerController,
|
||||
PictureController,
|
||||
JwtTokenStorage,
|
||||
http.Client,
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'dart:convert' as _i14;
|
||||
import 'dart:typed_data' as _i15;
|
||||
import 'dart:ui' as _i5;
|
||||
|
||||
import 'package:fotodocumentation/controller/customer_controller.dart' as _i9;
|
||||
import 'package:fotodocumentation/controller/foto_customer_controller.dart' as _i9;
|
||||
import 'package:fotodocumentation/controller/login_controller.dart' as _i6;
|
||||
import 'package:fotodocumentation/controller/picture_controller.dart' as _i11;
|
||||
import 'package:fotodocumentation/dto/customer_dto.dart' as _i10;
|
||||
@@ -188,7 +188,7 @@ class MockLoginController extends _i1.Mock implements _i6.LoginController {
|
||||
///
|
||||
/// See the documentation for Mockito's code generation for more information.
|
||||
class MockCustomerController extends _i1.Mock
|
||||
implements _i9.CustomerController {
|
||||
implements _i9.FotoCustomerController {
|
||||
MockCustomerController() {
|
||||
_i1.throwOnMissingStub(this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user