Skip to content

Commit

Permalink
Fixed Errors with merge
Browse files Browse the repository at this point in the history
  • Loading branch information
BicaniWolfie committed Dec 6, 2023
1 parent 7e68480 commit 16e71c4
Show file tree
Hide file tree
Showing 11 changed files with 70 additions and 163 deletions.
2 changes: 1 addition & 1 deletion test/blocs/activity_bloc_test.dart
Expand Up @@ -57,7 +57,7 @@ void main() {
mockWeekModel.weekNumber, mockWeekModel))
.thenAnswer(
(_) => rx_dart.BehaviorSubject<WeekModel>.seeded(mockWeekModel));
when(activityApi.update(mockActivity, mockUser.id)).thenAnswer(
when(() => activityApi.update(mockActivity, mockUser.id!)).thenAnswer(
(_) => rx_dart.BehaviorSubject<ActivityModel>.seeded(mockActivity));
}

Expand Down
53 changes: 11 additions & 42 deletions test/blocs/auth_bloc.test.dart
Expand Up @@ -9,7 +9,6 @@ import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:weekplanner/blocs/auth_bloc.dart';
import 'package:weekplanner/models/enums/weekplan_mode.dart';
import 'package:api_client/models/giraf_user_model.dart';

///A mock of the account api to use in the tests
class MockAccountApi extends Mock implements AccountApi {
Expand All @@ -35,38 +34,7 @@ class MockUserApi extends Mock implements UserApi {

throw Exception;
}

@override
///Mocks the me function, otherwise it will be null
Stream<GirafUserModel> me() {
///Setting up the "me()" stream variables depending on the different users
Role userRole;
String userRoleName;
String displayAndUsername;
if(user.compareTo('Graatand') == 0) { userRole = Role.Guardian;
displayAndUsername = 'Graatand';
userRoleName = 'Guardian';}
else if(user.compareTo('Chris') == 0) { userRole = Role.Trustee;
displayAndUsername = 'Chris';
userRoleName = 'Trustee';}
else if(user.compareTo('Janne') == 0) { userRole = Role.Citizen;
displayAndUsername = 'Janne';
userRoleName = 'Citizen';}

///Assigning the stream based on the if-else chain above
return Stream<GirafUserModel>.value(GirafUserModel(
id: '1',
department: 3,
role: userRole,
roleName: userRoleName,
displayName: displayAndUsername,
username: displayAndUsername),
);
}
}
///Making an instance of the MockUserApi class, so that the "user" variable
///can be changed making it possible to change the stream within the "me()" function.
MockUserApi mockUserApi = new MockUserApi();

void main() {
late Api _api;
Expand All @@ -76,7 +44,7 @@ void main() {
_api = Api('any');
authBloc = AuthBloc(_api);
_api.account = MockAccountApi();
_api.user = mockUserApi;
_api.user = MockUserApi();
});

test('Check if the mode defaults to guardian', async((DoneFn done) {
Expand Down Expand Up @@ -115,30 +83,31 @@ void main() {
authBloc.setMode(WeekplanMode.trustee);
}));

test('Should check that authenticate works (Guardian)', async((DoneFn done) {
//mockUserApi.user = 'Graatand';
const String username = 'Graatand';
const String password = 'password';
test('Should check that authenticate works', async((DoneFn done) {
authBloc.mode.skip(1).listen((WeekplanMode mode) {
expect(mode, WeekplanMode.guardian);
done();
});
authBloc.authenticate(mockUserApi.user, mockUserApi.password);
authBloc.authenticate(username, password);
}));

test('Should check that authenticate works (Trustee)', async((DoneFn done) {
mockUserApi.user = 'Chris';
const String username2 = 'Chris';
test('Should check that authenticate works', async((DoneFn done) {
authBloc.mode.skip(1).listen((WeekplanMode mode) {
expect(mode, WeekplanMode.trustee);
done();
});
authBloc.authenticate(mockUserApi.user, mockUserApi.password);
authBloc.authenticate(username2, password);
}));

test('Should check that authenticate works (Citizen)', async((DoneFn done) {
mockUserApi.user = 'Janne';
const String username3 = 'Janne';
test('Should check that authenticate works', async((DoneFn done) {
authBloc.mode.skip(1).listen((WeekplanMode mode) {
expect(mode, WeekplanMode.citizen);
done();
});
authBloc.authenticate(mockUserApi.user, mockUserApi.password);
authBloc.authenticate(username3, password);
}));
}
4 changes: 2 additions & 2 deletions test/blocs/copy_resolve_bloc_test.dart
Expand Up @@ -8,8 +8,8 @@ import 'package:flutter_test/flutter_test.dart';
import 'package:weekplanner/blocs/copy_resolve_bloc.dart';

void main() {
CopyResolveBloc bloc;
Api api;
Api api = Api('any');
CopyResolveBloc bloc = CopyResolveBloc(api);
final WeekModel oldWeekmodel = WeekModel(
thumbnail:
PictogramModel(title: 'title', accessLevel: AccessLevel.PRIVATE),
Expand Down
6 changes: 3 additions & 3 deletions test/blocs/edit_weekplan_bloc_test.dart
Expand Up @@ -17,9 +17,9 @@ class MockWeekApi extends Mock implements WeekApi {}

//test functionality for editing a weekplan bloc
void main() {
EditWeekplanBloc bloc;
WeekplansBloc mockWeekplanSelector;
Api api;
Api api = Api('any');
EditWeekplanBloc bloc = EditWeekplanBloc(api);
WeekplansBloc mockWeekplanSelector = WeekplansBloc(api);
//Create mockup pictogram
final PictogramModel mockThumbnail = PictogramModel(
id: 1,
Expand Down
8 changes: 4 additions & 4 deletions test/blocs/new_citizen_bloc_test.dart
Expand Up @@ -49,10 +49,10 @@ void main() {
bloc = NewCitizenBloc(api);
bloc.initialize();

//sets api calls to return correct user data
when(api.account.register(any, any, any, any,
departmentId: anyNamed('departmentId'), role: anyNamed('role')))
.thenAnswer((_) {
//sets api calls to return correct user data
when(() => api.account.register(any(), any(), any(), any(),
departmentId: any(named: 'departmentId'),
role: any(named: 'role'))).thenAnswer((_) {
return Stream<GirafUserModel>.value(user);
});
});
Expand Down
14 changes: 7 additions & 7 deletions test/blocs/new_weekplan_bloc_test.dart
Expand Up @@ -14,17 +14,16 @@ import 'package:weekplanner/di.dart';

class MockWeekApi extends Mock implements WeekApi {}

class MockWeekModel extends Fake implements WeekModel {}

//tests for various functions related to creating new weekplans
void main() {
NewWeekplanBloc bloc;
Api api;

class MockWeekModel extends Fake implements WeekModel {}

setUpAll(() {
registerFallbackValue(MockWeekModel());
});

Api api = Api('baseUrl');
NewWeekplanBloc bloc = NewWeekplanBloc(api);
//create a mock week for use in the tests
final PictogramModel mockThumbnail = PictogramModel(
id: 1,
Expand All @@ -47,8 +46,9 @@ void main() {
setUp(() {
api = Api('baseUrl');
api.week = MockWeekApi();
//setup api listeners to return the correct values from the mock week created earlier
when(api.week.update(any, any, any, any)).thenAnswer((_) {
// Setup api listeners to return the correct values
// from the mock week created earlier
when(() => api.week.update(any(), any(), any(), any())).thenAnswer((_) {
return Stream<WeekModel>.value(mockWeek);
});

Expand Down
9 changes: 3 additions & 6 deletions test/blocs/pictogram_bloc_test.dart
Expand Up @@ -35,17 +35,15 @@ void main() {

// Make a mock call to the api.
// It deposes the result and returns with an empty, seeded list.
when(pictogramApi.getAll(

when(() => pictogramApi.getAll(
page: bloc.latestPage, pageSize: pageSize, query: query))
.thenAnswer((_) => rx_dart.BehaviorSubject<List<PictogramModel>>.seeded(
<PictogramModel>[]));

// Validate behaviour of the stream. bloc.search adds two objects to
// bloc.pictograms: one null and one placeholder PictogramModel.
// The listener below is called every time bloc.pictograms is updated.
bloc.pictograms.listen((List<PictogramModel> response) {

bloc.pictograms.listen((List<PictogramModel>? response) {
switch (count) {
case 0:
// If the stream is empty, ie. no results,
Expand All @@ -57,8 +55,7 @@ void main() {
case 1:
// If the stream is not empty, the 'getAll' method must have been run.
// 'verify' makes the test fail if 'getAll' was not called.
verify(pictogramApi.getAll(

verify(() => pictogramApi.getAll(
page: bloc.latestPage, pageSize: pageSize, query: query));
done();
break;
Expand Down
102 changes: 28 additions & 74 deletions test/blocs/weekplans_bloc_test.dart
Expand Up @@ -58,51 +58,38 @@ void main() {
weekNameModelList.add(weekNameModel1);
});

when(weekApi.getNames('test')).thenAnswer((_) =>
rx_dart.BehaviorSubject<List<WeekNameModel>>.seeded(weekNameModelList));
when(() => weekApi.getNames('test')).thenAnswer((_) =>
rx_dart.BehaviorSubject<List<WeekNameModel>?>.seeded(weekNameModelList));

when(weekApi.get(
'test', weekNameModel1.weekYear, weekNameModel1.weekNumber))
.thenAnswer(
(_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel1));
when(() => weekApi.get(
'test', weekNameModel1.weekYear!, weekNameModel1.weekNumber!))
.thenAnswer((_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel1));

when(weekApi.get(
'test', weekNameModel2.weekYear, weekNameModel2.weekNumber))
.thenAnswer(
(_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel2));
when(() => weekApi.get(
'test', weekNameModel2.weekYear!, weekNameModel2.weekNumber!))
.thenAnswer((_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel2));

when(weekApi.get(
'test', weekNameModel3.weekYear, weekNameModel3.weekNumber))
.thenAnswer(
(_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel3));
when(() => weekApi.get(
'test', weekNameModel3.weekYear!, weekNameModel3.weekNumber!))
.thenAnswer((_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel3));

when(weekApi.get(
'test', weekNameModel4.weekYear, weekNameModel4.weekNumber))
.thenAnswer(
(_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel4));
when(() => weekApi.get(
'test', weekNameModel4.weekYear!, weekNameModel4.weekNumber!))
.thenAnswer((_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel4));

when(weekApi.get(
'test', weekNameModel5.weekYear, weekNameModel5.weekNumber))
.thenAnswer(
(_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel5));

when(weekApi.get(
'test', weekNameModel6.weekYear, weekNameModel6.weekNumber))
.thenAnswer(
(_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel6));
when(() => weekApi.get(
'test', weekNameModel5.weekYear!, weekNameModel5.weekNumber!))
.thenAnswer((_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel5));

when(() => weekApi.get(
'test', weekNameModel6.weekYear!, weekNameModel6.weekNumber!))
.thenAnswer((_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel6));

when(() => weekApi.delete(any(), any(), any()))
.thenAnswer((_) => rx_dart.BehaviorSubject<bool>.seeded(true));

test('Should be able to load weekplans for a user', async((DoneFn done) {
when(() => weekApi.get(
mockUser.id!, weekNameModel1.weekYear!, weekNameModel1.weekNumber!))
.thenAnswer(
(_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel1));

when(() => weekApi.getNames(mockUser.id!)).thenAnswer((_) =>
rx_dart.BehaviorSubject<List<WeekNameModel>>.seeded(weekNameModelList));
when(() => weekApi.delete(any(), any(), any()))
.thenAnswer((_) => rx_dart.BehaviorSubject<bool>.seeded(true));

test('Should be able to load weekplans for a user', async((DoneFn done) {
//Checks if the loaded weekNameModels are not null and are equal to the
Expand Down Expand Up @@ -242,7 +229,6 @@ void main() {
bloc.toggleMarkedWeekModel(weekModel1);
expect(bloc.getNumberOfMarkedWeekModels(), 1);


bloc.toggleMarkedWeekModel(WeekModel(name: 'testWeekModel'));
expect(bloc.getNumberOfMarkedWeekModels(), 2);

Expand All @@ -259,13 +245,13 @@ void main() {
];
// Gets a mockUser id, WeekNameModel1s yeah and weekNumber
// Then anwsers with the seeded WeekNameModel form the list
when(weekApi.get(
mockUser.id, weekNameModel1.weekYear, weekNameModel1.weekNumber))
when(() => weekApi.get(
mockUser.id!, weekNameModel1.weekYear!, weekNameModel1.weekNumber!))
.thenAnswer(
(_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel1));
// Gets the id of the mockUser and answers with the
// seeded weekNameModelList
when(weekApi.getNames(mockUser.id)).thenAnswer((_) =>
when(() => weekApi.getNames(mockUser.id!)).thenAnswer((_) =>
rx_dart.BehaviorSubject<List<WeekNameModel>>.seeded(weekNameModelList));
//loads the mockUser, toggles weekModel1 and checks how many
// weekModels are marked
Expand Down Expand Up @@ -302,13 +288,13 @@ void main() {
];
// Gets a mockUser id, WeekNameModel6s yeah and weekNumber
// Then anwsers with the seeded WeekNameModel form the list
when(weekApi.get(
mockUser.id, weekNameModel6.weekYear, weekNameModel6.weekNumber))
when(() => weekApi.get(
mockUser.id!, weekNameModel6.weekYear!, weekNameModel6.weekNumber!))
.thenAnswer(
(_) => rx_dart.BehaviorSubject<WeekModel>.seeded(weekModel6));
// Gets the id of the mockUser and answers with the
// seeded weekNameModelList
when(weekApi.getNames(mockUser.id)).thenAnswer((_) =>
when(() => weekApi.getNames(mockUser.id!)).thenAnswer((_) =>
rx_dart.BehaviorSubject<List<WeekNameModel>>.seeded(weekNameModelList));

//loads the mockUser, toggles weekModel6 and checks how many
Expand Down Expand Up @@ -349,38 +335,6 @@ void main() {
bloc.toggleEditMode();
}));

//test('Check if the week models are sorted by date', async((DoneFn done)
// async
//{
// final List<WeekModel> correctListOld = <WeekModel>[
// weekModel1, weekModel4, weekModel5
// ];
// final List<WeekModel> correctListUpcoming = <WeekModel>[
// weekModel3, weekModel2
// ];
//
// weekNameModelList.add(weekNameModel2);
// weekNameModelList.add(weekNameModel3);
// weekNameModelList.add(weekNameModel4);
// weekNameModelList.add(weekNameModel5);
//
// weekModelList.add(weekModel2);
// weekModelList.add(weekModel3);
// weekModelList.add(weekModel4);
// weekModelList.add(weekModel5);
//
// bloc.load(DisplayNameModel(displayName: 'test', role: 'test',
// id: 'test'));
//
// bloc.oldWeekModels.listen((List<WeekModel>oldWeekModels) {
// expect(correctListOld, oldWeekModels);
// });
// bloc.weekModels.listen((List<WeekModel>weekModels) {
// expect(correctListUpcoming, weekModels);
// });
// done();
//}));

test('Test marked week models', async((DoneFn done) {
final List<WeekModel> correctMarked = <WeekModel>[
weekModel1,
Expand Down
6 changes: 1 addition & 5 deletions test/screens/weekplan_screen_test.dart
Expand Up @@ -1305,12 +1305,8 @@ void main() {
WidgetTester tester) async {
await tester.runAsync(() async {
final Completer<bool> checkCompleted = Completer<bool>();
int i = 0;
if(DateTime.now().toString() == DateTime.monday.toString()){
i++;
}
mockActivities[2].state = ActivityState.Normal;

mockActivities[2].state = ActivityState.Normal;
mockActivities[2].timer!.paused = true;
mockActivities[2].timer!.fullLength = 100;
mockWeek.days![0].activities!.add(mockActivities[2]);
Expand Down

0 comments on commit 16e71c4

Please sign in to comment.