Skip to content

Commit 39b7a98

Browse files
committed
refactor: Hapus business logic fitur cron tracking didalam tracking bloc sekalian dengan event dan state-nya
1 parent 6378aa4 commit 39b7a98

7 files changed

Lines changed: 2 additions & 171 deletions

File tree

lib/feature/presentation/bloc/tracking/tracking_bloc.dart

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,7 @@ import 'dart:async';
33
import 'package:bloc/bloc.dart';
44
import 'package:bloc_concurrency/bloc_concurrency.dart';
55
import 'package:dipantau_desktop_client/core/util/helper.dart';
6-
import 'package:dipantau_desktop_client/feature/data/model/create_track/bulk_create_track_data_body.dart';
7-
import 'package:dipantau_desktop_client/feature/data/model/create_track/bulk_create_track_image_body.dart';
86
import 'package:dipantau_desktop_client/feature/data/model/create_track/create_track_body.dart';
9-
import 'package:dipantau_desktop_client/feature/domain/usecase/bulk_create_track_data/bulk_create_track_data.dart';
10-
import 'package:dipantau_desktop_client/feature/domain/usecase/bulk_create_track_image/bulk_create_track_image.dart';
117
import 'package:dipantau_desktop_client/feature/domain/usecase/create_track/create_track.dart';
128

139
part 'tracking_event.dart';
@@ -16,19 +12,13 @@ part 'tracking_state.dart';
1612

1713
class TrackingBloc extends Bloc<TrackingEvent, TrackingState> {
1814
final CreateTrack createTrack;
19-
final BulkCreateTrackData bulkCreateTrackData;
2015
final Helper helper;
21-
final BulkCreateTrackImage bulkCreateTrackImage;
2216

2317
TrackingBloc({
2418
required this.createTrack,
25-
required this.bulkCreateTrackData,
2619
required this.helper,
27-
required this.bulkCreateTrackImage,
2820
}) : super(InitialTrackingState()) {
2921
on<CreateTimeTrackingEvent>(_onCreateTimeTrackingEvent, transformer: sequential());
30-
31-
on<CronTrackingEvent>(_onCronTrackingEvent, transformer: sequential());
3222
}
3323

3424
FutureOr<void> _onCreateTimeTrackingEvent(
@@ -52,41 +42,4 @@ class TrackingBloc extends Bloc<TrackingEvent, TrackingState> {
5242
final errorMessage = helper.getErrorMessageFromFailure(failure);
5343
emit(FailureTrackingState(errorMessage: errorMessage));
5444
}
55-
56-
FutureOr<void> _onCronTrackingEvent(
57-
CronTrackingEvent event,
58-
Emitter<TrackingState> emit,
59-
) async {
60-
final bodyData = event.bodyData;
61-
final ids = <int>[];
62-
if (bodyData != null) {
63-
final result = await bulkCreateTrackData(
64-
ParamsBulkCreateTrackData(
65-
body: bodyData,
66-
),
67-
);
68-
if (result.response != null) {
69-
ids.addAll(bodyData.data.where((element) => element.id != null).map((e) => e.id!));
70-
}
71-
}
72-
73-
final bodyImage = event.bodyImage;
74-
final files = <String>[];
75-
if (bodyImage != null) {
76-
final result = await bulkCreateTrackImage(
77-
ParamsBulkCreateTrackImage(
78-
body: bodyImage,
79-
),
80-
);
81-
if (result.response != null) {
82-
files.addAll(bodyImage.files);
83-
}
84-
}
85-
emit(
86-
SuccessCronTrackingState(
87-
ids: ids,
88-
files: files,
89-
),
90-
);
91-
}
9245
}

lib/feature/presentation/bloc/tracking/tracking_event.dart

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,4 @@ class CreateTimeTrackingEvent extends TrackingEvent {
1717
String toString() {
1818
return 'CreateTimeTrackingEvent{body: $body, trackEntityId: $trackEntityId}';
1919
}
20-
}
21-
22-
class CronTrackingEvent extends TrackingEvent {
23-
final BulkCreateTrackDataBody? bodyData;
24-
final BulkCreateTrackImageBody? bodyImage;
25-
26-
CronTrackingEvent({
27-
required this.bodyData,
28-
required this.bodyImage,
29-
});
30-
31-
@override
32-
String toString() {
33-
return 'CronTrackingEvent{bodyData: $bodyData, bodyImage: $bodyImage}';
34-
}
35-
}
20+
}

lib/feature/presentation/bloc/tracking/tracking_state.dart

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,4 @@ class SuccessCreateTimeTrackingState extends TrackingState {
3232
String toString() {
3333
return 'SuccessCreateTimeTrackingState{files: $files, trackEntityId: $trackEntityId}';
3434
}
35-
}
36-
37-
class SuccessCronTrackingState extends TrackingState {
38-
final List<int> ids;
39-
final List<String> files;
40-
41-
SuccessCronTrackingState({
42-
required this.ids,
43-
required this.files,
44-
});
45-
46-
@override
47-
String toString() {
48-
return 'SuccessCronTrackingState{ids: $ids, files: $files}';
49-
}
50-
}
35+
}

lib/injection_container.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,7 @@ void init() {
7272
sl.registerFactory(
7373
() => TrackingBloc(
7474
createTrack: sl(),
75-
bulkCreateTrackData: sl(),
7675
helper: sl(),
77-
bulkCreateTrackImage: sl(),
7876
),
7977
);
8078
sl.registerFactory(

test/feature/presentation/bloc/tracking/tracking_bloc_test.dart

Lines changed: 0 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,8 @@ import 'dart:convert';
22

33
import 'package:bloc_test/bloc_test.dart';
44
import 'package:dipantau_desktop_client/core/error/failure.dart';
5-
import 'package:dipantau_desktop_client/feature/data/model/create_track/bulk_create_track_data_body.dart';
6-
import 'package:dipantau_desktop_client/feature/data/model/create_track/bulk_create_track_image_body.dart';
75
import 'package:dipantau_desktop_client/feature/data/model/create_track/create_track_body.dart';
86
import 'package:dipantau_desktop_client/feature/data/model/general/general_response.dart';
9-
import 'package:dipantau_desktop_client/feature/domain/usecase/bulk_create_track_data/bulk_create_track_data.dart';
10-
import 'package:dipantau_desktop_client/feature/domain/usecase/bulk_create_track_image/bulk_create_track_image.dart';
117
import 'package:dipantau_desktop_client/feature/domain/usecase/create_track/create_track.dart';
128
import 'package:dipantau_desktop_client/feature/presentation/bloc/tracking/tracking_bloc.dart';
139
import 'package:flutter_test/flutter_test.dart';
@@ -19,20 +15,14 @@ import '../../../../helper/mock_helper.mocks.dart';
1915
void main() {
2016
late TrackingBloc bloc;
2117
late MockCreateTrack mockCreateTrack;
22-
late MockBulkCreateTrackData mockBulkCreateTrackData;
2318
late MockHelper mockHelper;
24-
late MockBulkCreateTrackImage mockBulkCreateTrackImage;
2519

2620
setUp(() {
2721
mockCreateTrack = MockCreateTrack();
28-
mockBulkCreateTrackData = MockBulkCreateTrackData();
2922
mockHelper = MockHelper();
30-
mockBulkCreateTrackImage = MockBulkCreateTrackImage();
3123
bloc = TrackingBloc(
3224
createTrack: mockCreateTrack,
33-
bulkCreateTrackData: mockBulkCreateTrackData,
3425
helper: mockHelper,
35-
bulkCreateTrackImage: mockBulkCreateTrackImage,
3626
);
3727
});
3828

@@ -144,48 +134,4 @@ void main() {
144134
},
145135
);
146136
});
147-
148-
group('cron tracking', () {
149-
final bodyData = BulkCreateTrackDataBody.fromJson(
150-
json.decode(
151-
fixture('bulk_create_track_data_body.json'),
152-
),
153-
);
154-
final bodyImage = BulkCreateTrackImageBody.fromJson(
155-
json.decode(
156-
fixture('bulk_create_track_image_body.json'),
157-
),
158-
);
159-
final tEvent = CronTrackingEvent(
160-
bodyData: bodyData,
161-
bodyImage: bodyImage,
162-
);
163-
final paramsData = ParamsBulkCreateTrackData(body: bodyData);
164-
final paramsImage = ParamsBulkCreateTrackImage(body: bodyImage);
165-
final tResponse = GeneralResponse.fromJson(
166-
json.decode(
167-
fixture('general_response.json'),
168-
),
169-
);
170-
171-
blocTest(
172-
'pastikan emit [SuccessCronTrackingState] ketika terima event CronTrackingEvent dengan proses berhasil',
173-
build: () {
174-
final result = (failure: null, response: tResponse);
175-
when(mockBulkCreateTrackData(any)).thenAnswer((_) async => result);
176-
when(mockBulkCreateTrackImage(any)).thenAnswer((_) async => result);
177-
return bloc;
178-
},
179-
act: (TrackingBloc bloc) {
180-
return bloc.add(tEvent);
181-
},
182-
expect: () => [
183-
isA<SuccessCronTrackingState>(),
184-
],
185-
verify: (_) {
186-
verify(mockBulkCreateTrackData(paramsData));
187-
verify(mockBulkCreateTrackImage(paramsImage));
188-
},
189-
);
190-
});
191137
}

test/feature/presentation/bloc/tracking/tracking_event_test.dart

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,4 @@ void main() {
2626
},
2727
);
2828
});
29-
30-
group('CronTrackingEvent', () {
31-
final tEvent = CronTrackingEvent(
32-
bodyData: null,
33-
bodyImage: null,
34-
);
35-
36-
test(
37-
'pastikan output dari fungsi toString',
38-
() async {
39-
// assert
40-
expect(
41-
tEvent.toString(),
42-
'CronTrackingEvent{bodyData: ${tEvent.bodyData}, bodyImage: ${tEvent.bodyImage}}',
43-
);
44-
},
45-
);
46-
});
4729
}

test/feature/presentation/bloc/tracking/tracking_state_test.dart

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,4 @@ void main() {
3434
},
3535
);
3636
});
37-
38-
group('SuccessCronTrackingState', () {
39-
final tState = SuccessCronTrackingState(
40-
ids: [],
41-
files: [],
42-
);
43-
44-
test(
45-
'pastikan output dari fungsi toString',
46-
() async {
47-
// assert
48-
expect(
49-
tState.toString(),
50-
'SuccessCronTrackingState{ids: ${tState.ids}, files: ${tState.files}}',
51-
);
52-
},
53-
);
54-
});
5537
}

0 commit comments

Comments
 (0)