Added some tests

This commit is contained in:
Selim Mustafaev 2024-12-21 23:56:00 +03:00
parent 991af4a48f
commit 883df92484

View File

@ -21,6 +21,7 @@ struct EventsTests {
var viewModel: EventsViewModel var viewModel: EventsViewModel
lazy var vehicleWithEvent: VehicleDto = .normal.addEvent(.valid) lazy var vehicleWithEvent: VehicleDto = .normal.addEvent(.valid)
lazy var unrecognizedVehicleWithEvent: VehicleDto = .unrecognized.addEvent(.valid)
init() { init() {
@ -38,26 +39,37 @@ struct EventsTests {
.user.willReturn(User()) .user.willReturn(User())
} }
@Test("Add event") @Test("Add event", arguments: [true, false])
mutating func addEvent() async throws { mutating func addEvent(isUnrecognized: Bool) async throws {
let updatedVehicle: VehicleDto = isUnrecognized ? unrecognizedVehicleWithEvent : vehicleWithEvent
given(apiServiceMock) given(apiServiceMock)
.add(event: .value(.valid), to: .value(VehicleDto.validNumber)) .add(event: .value(.valid), to: .value(VehicleDto.validNumber))
.willReturn(vehicleWithEvent) .willReturn(vehicleWithEvent)
given(storageServiceMock) given(storageServiceMock)
.updateVehicleIfExists(dto: .value(vehicleWithEvent)) .updateVehicleIfExists(dto: .value(updatedVehicle))
.willReturn() .willReturn()
viewModel = EventsViewModel(vehicle: .normal) given(storageServiceMock)
.add(event: .value(.valid), to: .value(VehicleDto.validNumber))
.willReturn(unrecognizedVehicleWithEvent)
viewModel = EventsViewModel(vehicle: isUnrecognized ? .unrecognized : .normal)
await viewModel.addEvent(.valid) await viewModel.addEvent(.valid)
verify(apiServiceMock) verify(apiServiceMock)
.add(event: .any, to: .any).called(.once) .add(event: .any, to: .any)
.called(isUnrecognized ? .never : .once)
verify(storageServiceMock) verify(storageServiceMock)
.updateVehicleIfExists(dto: .any).called(.once) .updateVehicleIfExists(dto: .any)
.called(isUnrecognized ? .never : .once)
verify(storageServiceMock)
.add(event: .any, to: .any)
.called(isUnrecognized ? .once : .never)
#expect(viewModel.vehicle.events.count == 1) #expect(viewModel.vehicle.events.count == 1)
#expect(viewModel.vehicle.events.first?.id == VehicleEventDto.validId) #expect(viewModel.vehicle.events.first?.id == VehicleEventDto.validId)
@ -65,5 +77,4 @@ struct EventsTests {
#expect(viewModel.events.first?.id == VehicleEventDto.validId) #expect(viewModel.events.first?.id == VehicleEventDto.validId)
#expect(viewModel.hud == nil) #expect(viewModel.hud == nil)
} }
} }