64 lines
1.7 KiB
Swift
64 lines
1.7 KiB
Swift
//
|
||
// ReportTests.swift
|
||
// AutoCatTests
|
||
//
|
||
// Created by Selim Mustafaev on 02.12.2024.
|
||
// Copyright © 2024 Selim Mustafaev. All rights reserved.
|
||
//
|
||
|
||
import Testing
|
||
import Mockable
|
||
import AutoCatCore
|
||
@testable import AutoCat
|
||
|
||
@MainActor
|
||
struct ReportTests {
|
||
|
||
let existingVehicleNumber = "А123АА761"
|
||
let nonExistingVehicleNumber = "А999АА761"
|
||
let testColor = "testColor"
|
||
|
||
var storageServiceMock: MockStorageServiceProtocol
|
||
|
||
var viewModel: ReportViewModel
|
||
|
||
init() {
|
||
storageServiceMock = MockStorageServiceProtocol()
|
||
|
||
ServiceContainer.shared.register(StorageServiceProtocol.self, instance: storageServiceMock)
|
||
viewModel = ReportViewModel(vehicle: VehicleDto())
|
||
}
|
||
|
||
@Test("Load vehicle detail")
|
||
func loadVehicleDetail() async throws {
|
||
|
||
let incompleteVehicleModel = VehicleDto(number: existingVehicleNumber)
|
||
let fullVehicleModel = VehicleDto(number: existingVehicleNumber, color: testColor)
|
||
|
||
viewModel.vehicle = incompleteVehicleModel
|
||
|
||
#expect(viewModel.vehicle.color == nil)
|
||
|
||
given(storageServiceMock)
|
||
.loadVehicle(number: .value(existingVehicleNumber))
|
||
.willReturn(fullVehicleModel)
|
||
|
||
await viewModel.loadVehicle()
|
||
|
||
#expect(viewModel.vehicle.color == testColor)
|
||
#expect(viewModel.hud == nil)
|
||
}
|
||
|
||
@Test("Load vehicle error")
|
||
func loadVehicleError() async throws {
|
||
|
||
given(storageServiceMock)
|
||
.loadVehicle(number: .any)
|
||
.willThrow(StorageError.vehicleNotFound)
|
||
|
||
await viewModel.loadVehicle()
|
||
|
||
#expect(viewModel.hud == .error(StorageError.vehicleNotFound))
|
||
}
|
||
}
|