Skip to content

Commit

Permalink
Change NetworkManager.
Browse files Browse the repository at this point in the history
  • Loading branch information
bullinnyc committed Jan 2, 2024
1 parent ef6cb40 commit e39d82a
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 25 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
//
// EnvironmentValues + NetworkManager.swift
// CachedAsyncImage
//
// Created by Dmitry Kononchuk on 02.01.2024.
// Copyright © 2024 Dmitry Kononchuk. All rights reserved.
//

import SwiftUI

struct NetworkManagerKey: EnvironmentKey {
// MARK: - Public Properties

static let defaultValue: NetworkManagerProtocol = NetworkManager()
}

extension EnvironmentValues {
// MARK: - Public Properties

var networkManager: NetworkManagerProtocol {
get { self[NetworkManagerKey.self] }
set { self[NetworkManagerKey.self] = newValue }
}
}
10 changes: 1 addition & 9 deletions Sources/CachedAsyncImage/Services/NetworkManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,7 @@ protocol NetworkManagerProtocol {
)
}

final class NetworkManager: NetworkManagerProtocol {
// MARK: - Public Properties

static let shared = NetworkManager()

// MARK: - Private Initializers

private init() {}

struct NetworkManager: NetworkManagerProtocol {
// MARK: - Public Methods

func fetchImage(from url: URL?) -> (
Expand Down
2 changes: 1 addition & 1 deletion Sources/CachedAsyncImage/Services/TempImageCache.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// CachedAsyncImage
//
// Created by Dmitry Kononchuk on 02.01.2024.
// Copyright © 2023 Dmitry Kononchuk. All rights reserved.
// Copyright © 2024 Dmitry Kononchuk. All rights reserved.
//

import Foundation
Expand Down
6 changes: 3 additions & 3 deletions Sources/CachedAsyncImage/Views/CachedAsyncImage.swift
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public struct CachedAsyncImage: View {
) {
_imageLoader = StateObject(
wrappedValue: ImageLoader(
networkManager: NetworkManager.shared,
networkManager: Environment(\.networkManager).wrappedValue,
imageCache: CachedAsyncImage.getImageCache()
)
)
Expand All @@ -79,7 +79,7 @@ public struct CachedAsyncImage: View {
) {
_imageLoader = StateObject(
wrappedValue: ImageLoader(
networkManager: NetworkManager.shared,
networkManager: Environment(\.networkManager).wrappedValue,
imageCache: CachedAsyncImage.getImageCache()
)
)
Expand All @@ -105,7 +105,7 @@ public struct CachedAsyncImage: View {
) {
_imageLoader = StateObject(
wrappedValue: ImageLoader(
networkManager: NetworkManager.shared,
networkManager: Environment(\.networkManager).wrappedValue,
imageCache: CachedAsyncImage.getImageCache()
)
)
Expand Down
9 changes: 6 additions & 3 deletions Tests/CachedAsyncImageTests/ImageLoaderTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,11 @@ final class ImageLoaderTests: XCTestCase {
// Given
let url = "https://example.com/image.jpg"
let cachedImage = RM.image("backToTheFuture")
let networkManager = sut.networkManager
var imageCache = sut.imageCache

let imageLoader = ImageLoader(
networkManager: sut.networkManager,
networkManager: networkManager,
imageCache: imageCache
)

Expand All @@ -59,11 +60,13 @@ final class ImageLoaderTests: XCTestCase {
func testFetchImage_WithoutCachedImage() {
// Given
let url = "https://example.com/image.jpg"
let networkManager = sut.networkManager

let imageCache = sut.imageCache
imageCache.removeCache()

let imageLoader = ImageLoader(
networkManager: sut.networkManager,
networkManager: networkManager,
imageCache: imageCache
)

Expand Down Expand Up @@ -125,7 +128,7 @@ extension ImageLoaderTests {
)

private func makeSUT() -> Sut {
let networkManager = NetworkManagerMock.shared
let networkManager = NetworkManagerMock()
let imageCache = TempImageCache()

return (networkManager, imageCache)
Expand Down
10 changes: 1 addition & 9 deletions Tests/CachedAsyncImageTests/Mocks/NetworkManagerMock.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,7 @@ import Foundation
import Combine
@testable import CachedAsyncImage

final class NetworkManagerMock: NetworkManagerProtocol {
// MARK: - Public Properties

static let shared = NetworkManagerMock()

// MARK: - Private Initializers

private init() {}

struct NetworkManagerMock: NetworkManagerProtocol {
// MARK: - Public Methods

func fetchImage(from url: URL?) -> (
Expand Down

0 comments on commit e39d82a

Please sign in to comment.