Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SPT-1998 Добавление таргета для моков #129

Merged
merged 3 commits into from
Apr 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
530 changes: 337 additions & 193 deletions NodeKit.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

81 changes: 81 additions & 0 deletions NodeKit.xcodeproj/xcshareddata/xcschemes/NodeKitMock.xcscheme
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1530"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"
buildArchitectures = "Automatic">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "50816AB02BC6FEB600A43F3D"
BuildableName = "NodeKitMockV.xctest"
BlueprintName = "NodeKitMockV"
ReferencedContainer = "container:NodeKit.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "90B608CA283E1110006F4309"
BuildableName = "NodeKit.framework"
BlueprintName = "NodeKit"
ReferencedContainer = "container:NodeKit.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "50816AB02BC6FEB600A43F3D"
BuildableName = "NodeKitMockV.xctest"
BlueprintName = "NodeKitMockV"
ReferencedContainer = "container:NodeKit.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
2 changes: 1 addition & 1 deletion NodeKit/Encodings/ParameterEncoding.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
//

import Foundation
import ThirdParty
import NodeKitThirdParty

/// A dictionary of parameters to apply to a `URLRequest`.
public typealias Parameters = [String: Any]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
// Copyright © 2024 Surf. All rights reserved.
//

import ThirdParty
import NodeKitThirdParty

/// Протокол фабрики для создания объекта, позволяющего собирать multipart/form-data.
public protocol MultipartFormDataFactory {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Foundation
import ThirdParty
import NodeKitThirdParty

/// Модель для внутреннего представления multipart запроса.
public struct MultipartUrlRequest {
Expand Down
34 changes: 34 additions & 0 deletions NodeKitMock/AborterMock.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
//
// AborterMock.swift
// NodeKitTests
//
// Created by Andrei Frolov on 22.03.24.
// Copyright © 2024 Surf. All rights reserved.
//

import NodeKit

public class AborterMock: Aborter {

public init() { }

public var invokedCancel = false
public var invokedCancelCount = 0

public func cancel() {
invokedCancel = true
invokedCancelCount += 1
}

public var invokedAsyncCancel = false
public var invokedAsyncCancelCount = 0
public var invokedAsyncCancelParameter: LoggingContextProtocol?
public var invokedAsyncCancelParameterProtocol: [LoggingContextProtocol] = []

public func cancel(logContext: LoggingContextProtocol) {
invokedAsyncCancel = true
invokedAsyncCancelCount += 1
invokedAsyncCancelParameter = logContext
invokedAsyncCancelParameterProtocol.append(logContext)
}
}
34 changes: 34 additions & 0 deletions NodeKitMock/AsyncNodeMock.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
//
// AsyncNodeMock.swift
// NodeKitTests
//
// Created by Andrei Frolov on 22.03.24.
// Copyright © 2024 Surf. All rights reserved.
//

import Combine
import NodeKit

public class AsyncNodeMock<Input, Output>: AsyncNode {
public init() { }

public var invokedAsyncProcess = false
public var invokedAsyncProcessCount = 0
public var invokedAsyncProcessParameters: (data: Input, logContext: LoggingContextProtocol)?
public var invokedAsyncProcessParametersList: [(data: Input, logContext: LoggingContextProtocol)] = []
public var stubbedAsyncProccessResult: NodeResult<Output>!
public var stubbedAsyncProcessRunFunction: (() async -> Void)?
public var stubbedAsyncProcessNonAsyncRunFunction: (() -> Void)?

public func process(_ data: Input, logContext: LoggingContextProtocol) async -> NodeResult<Output> {
invokedAsyncProcess = true
invokedAsyncProcessCount += 1
invokedAsyncProcessParameters = (data, logContext)
invokedAsyncProcessParametersList.append((data, logContext))
if let function = stubbedAsyncProcessRunFunction {
await function()
}
stubbedAsyncProcessNonAsyncRunFunction?()
return stubbedAsyncProccessResult
}
}
32 changes: 32 additions & 0 deletions NodeKitMock/AsyncStreamNodeMock.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
//
// AsyncStreamNodeMock.swift
// NodeKitTests
//
// Created by Andrei Frolov on 29.03.24.
// Copyright © 2024 Surf. All rights reserved.
//

import NodeKit

public class AsyncStreamNodeMock<Input, Output>: AsyncStreamNode {

public init() { }

public var invokedAsyncStreamProcess = false
public var invokedAsyncStreamProcessCount = 0
public var invokedAsyncStreamProcessParameter: (data: Input, logContext: LoggingContextProtocol)?
public var invokedAsyncStreamProcessParameterList: [(data: Input, logContext: LoggingContextProtocol)] = []
public var stubbedAsyncStreamProccessResult: (() -> AsyncStream<NodeResult<Output>>)!
public var stubbedAsyncStreamProcessRunFunction: (() -> Void)?

public func process(_ data: Input, logContext: LoggingContextProtocol) -> AsyncStream<NodeResult<Output>> {
invokedAsyncStreamProcess = true
invokedAsyncStreamProcessCount += 1
invokedAsyncStreamProcessParameter = (data, logContext)
invokedAsyncStreamProcessParameterList.append((data, logContext))
if let function = stubbedAsyncStreamProcessRunFunction {
function()
}
return stubbedAsyncStreamProccessResult()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,16 @@
// Copyright © 2024 Surf. All rights reserved.
//

@testable import NodeKit
import NodeKit

final class CancellableTaskMock: CancellableTask {
public class CancellableTaskMock: CancellableTask {

var invokedCancel = false
var invokedCancelCount = 0
public init() { }

func cancel() {
public var invokedCancel = false
public var invokedCancelCount = 0

public func cancel() {
invokedCancel = true
invokedCancelCount += 1
}
Expand Down
36 changes: 36 additions & 0 deletions NodeKitMock/CombineNodeMock.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
//
// CombineNodeMock.swift
// NodeKitTests
//
// Created by Andrei Frolov on 03.04.24.
// Copyright © 2024 Surf. All rights reserved.
//

import Combine
import NodeKit

public class CombineNodeMock<Input, Output>: CombineNode {

public struct NodeResultPublisherParameters {
public let input: Input
public let scheduler: any Scheduler
public let logContext: LoggingContextProtocol
}

public init() { }

public var invokedNodeResultPublisher = false
public var invokedNodeResultPublisherCount = 0
public var invokedNodeResultPublisherParameters: NodeResultPublisherParameters?
public var invokedNodeResultPublisherParametersList: [NodeResultPublisherParameters] = []
public var stubbedNodeResultPublisherResult: AnyPublisher<NodeResult<Output>, Never>!

public func nodeResultPublisher(for data: Input, on scheduler: some Scheduler, logContext: LoggingContextProtocol) -> AnyPublisher<NodeResult<Output>, Never> {
let results = NodeResultPublisherParameters(input: data, scheduler: scheduler, logContext: logContext)
invokedNodeResultPublisher = true
invokedNodeResultPublisherCount += 1
invokedNodeResultPublisherParameters = results
invokedNodeResultPublisherParametersList.append(results)
return stubbedNodeResultPublisherResult
}
}
40 changes: 40 additions & 0 deletions NodeKitMock/CombineStreamNodeMock.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
//
// CombineStreamNodeMock.swift
// NodeKitTests
//
// Created by Andrei Frolov on 03.04.24.
// Copyright © 2024 Surf. All rights reserved.
//

import Combine
import NodeKit

public class CombineStreamNodeMock<Input, Output>: CombineStreamNode {
public init() { }

public var invokedNodeResultPublisher = false
public var invokedNodeResultPublisherCount = 0
public var invokedNodeResultPublisherParameter: (any Scheduler)?
public var invokedNodeResultPublisherParameterList: [any Scheduler] = []
public var stubbedNodeResultPublisherResult: AnyPublisher<NodeResult<Output>, Never>!

public func nodeResultPublisher(on scheduler: some Scheduler) -> AnyPublisher<NodeResult<Output>, Never> {
invokedNodeResultPublisher = true
invokedNodeResultPublisherCount += 1
invokedNodeResultPublisherParameter = scheduler
invokedNodeResultPublisherParameterList.append(scheduler)
return stubbedNodeResultPublisherResult
}

public var invokedProcess = false
public var invokedProcessCount = 0
public var invokedProcessParameters: (data: Input, logContext: LoggingContextProtocol)?
public var invokedProcessParameterList: [(data: Input, logContext: LoggingContextProtocol)] = []

public func process(_ data: Input, logContext: LoggingContextProtocol) {
invokedProcess = true
invokedProcessCount += 1
invokedProcessParameters = (data, logContext)
invokedProcessParameterList.append((data, logContext))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,20 @@
// Copyright © 2024 Surf. All rights reserved.
//

@testable import NodeKit
import NodeKit

final class DTOConvertibleMock: DTOConvertible {
typealias DTO = RawMappableMock
public final class DTOConvertibleMock: DTOConvertible {
public typealias DTO = RawMappableMock

static var invokedFrom = false
static var invokedFromCount = 0
static var invokedFromParameter: RawMappableMock?
static var invokedFromParameterList: [RawMappableMock] = []
static var stubbedFromResult: Result<DTOConvertibleMock, Error>!
public init() { }

static func from(dto: RawMappableMock) throws -> DTOConvertibleMock {
public static var invokedFrom = false
public static var invokedFromCount = 0
public static var invokedFromParameter: RawMappableMock?
public static var invokedFromParameterList: [RawMappableMock] = []
public static var stubbedFromResult: Result<DTOConvertibleMock, Error>!

public static func from(dto: RawMappableMock) throws -> DTOConvertibleMock {
invokedFrom = true
invokedFromCount += 1
invokedFromParameter = dto
Expand All @@ -30,11 +32,11 @@ final class DTOConvertibleMock: DTOConvertible {
}
}

var invokedToDTO = false
var invokedToDTOCount = 0
var stubbedToDTOResult: Result<RawMappableMock, Error>!
public var invokedToDTO = false
public var invokedToDTOCount = 0
public var stubbedToDTOResult: Result<RawMappableMock, Error>!

func toDTO() throws -> RawMappableMock {
public func toDTO() throws -> RawMappableMock {
invokedToDTO = true
invokedToDTOCount += 1
switch stubbedToDTOResult! {
Expand All @@ -45,7 +47,7 @@ final class DTOConvertibleMock: DTOConvertible {
}
}

static func flush() {
public static func flush() {
invokedFrom = false
invokedFromCount = 0
invokedFromParameter = nil
Expand Down
Loading
Loading