Skip to content

Commit f9ab6c9

Browse files
committed
CC-6787: T16478825 resolve failed testcase ensuring correct sdk used with folderlinks
(cherry picked from commit 4a80bd4)
1 parent 503405f commit f9ab6c9

File tree

4 files changed

+23
-12
lines changed

4 files changed

+23
-12
lines changed

MEGAUnitTests/Utils/Shared Views/Shared Controls/SetVideoPlayerItemMetadataCommandTests.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ final class SetVideoPlayerItemMetadataCommandTests: XCTestCase {
1212
node: MockNode(handle: 1),
1313
fileManager: FileManager(),
1414
sdk: MockSdk(),
15-
nodeAssetManager: NodeAssetsManager()
15+
nodeAssetManager: NodeAssetsManager(sdk: MockSdk())
1616
)
1717

1818
await sut.execute()

iMEGA/Cloud drive/Cells/NodeCollectionViewCell+Additions.swift

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import MEGADesignToken
22
import MEGADomain
3+
import MEGASdk
34
import MEGASDKRepo
45
import UIKit
56

@@ -17,16 +18,19 @@ extension NodeCollectionViewCell {
1718
.forEach { $0?.alpha = 1 }
1819
}
1920

20-
@objc func createViewModel(node: MEGANode?, isFromSharedItem: Bool) -> NodeCollectionViewCellViewModel {
21+
@objc func createViewModel(node: MEGANode?, isFromSharedItem: Bool, sdk: MEGASdk) -> NodeCollectionViewCellViewModel {
2122
NodeCollectionViewCellViewModel(
2223
node: node?.toNodeEntity(),
2324
isFromSharedItem: isFromSharedItem,
2425
nodeUseCase: NodeUseCase(
2526
nodeDataRepository: NodeDataRepository.newRepo,
2627
nodeValidationRepository: NodeValidationRepository.newRepo,
2728
nodeRepository: NodeRepository.newRepo),
28-
thumbnailUseCase: ThumbnailUseCase(repository: ThumbnailRepository.newRepo),
29-
nodeIconUseCase: NodeIconUseCase(nodeIconRepo: NodeAssetsManager.shared))
29+
thumbnailUseCase: ThumbnailUseCase(repository: ThumbnailRepository(
30+
sdk: sdk,
31+
fileManager: .default,
32+
nodeProvider: DefaultMEGANodeProvider(sdk: sdk))),
33+
nodeIconUseCase: NodeIconUseCase(nodeIconRepo: NodeAssetsManager(sdk: sdk)))
3034
}
3135

3236
@objc func bind(viewModel: NodeCollectionViewCellViewModel) {

iMEGA/Cloud drive/Cells/NodeCollectionViewCell.m

+3-3
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ - (void)configureCellForNode:(MEGANode *)node allowedMultipleSelection:(BOOL)mul
4747
self.node = node;
4848
self.delegate = delegate;
4949

50-
[self bindWithViewModel:[self createViewModelWithNode:node isFromSharedItem:isFromSharedItem]];
50+
[self bindWithViewModel:[self createViewModelWithNode:node isFromSharedItem:isFromSharedItem sdk:sdk]];
5151

5252
if (node.isTakenDown) {
5353
self.nameLabel.attributedText = [node attributedTakenDownName];
@@ -102,7 +102,7 @@ - (void)configureCellForNode:(MEGANode *)node allowedMultipleSelection:(BOOL)mul
102102

103103
- (void)configureCellForOfflineItem:(NSDictionary *)item itemPath:(NSString *)pathForItem allowedMultipleSelection:(BOOL)multipleSelection sdk:(nonnull MEGASdk *)sdk delegate:(id<NodeCollectionViewCellDelegate> _Nullable)delegate {
104104

105-
[self bindWithViewModel:[self createViewModelWithNode:nil isFromSharedItem:NO]];
105+
[self bindWithViewModel:[self createViewModelWithNode:nil isFromSharedItem:NO sdk: sdk]];
106106

107107
self.favouriteView.hidden = self.linkView.hidden = self.versionedView.hidden = self.topNodeIconsView.hidden = YES;
108108
self.labelView.hidden = self.downloadedImageView.hidden = self.downloadedView.hidden = YES;
@@ -182,7 +182,7 @@ - (void)configureCellForOfflineItem:(NSDictionary *)item itemPath:(NSString *)pa
182182
}
183183

184184
- (void)configureCellForFolderLinkNode:(MEGANode *)node allowedMultipleSelection:(BOOL)multipleSelection sdk:(nonnull MEGASdk *)sdk delegate:(id<NodeCollectionViewCellDelegate> _Nullable)delegate {
185-
[self configureCellForNode:node allowedMultipleSelection:multipleSelection isFromSharedItem:NO sdk:sdk delegate:delegate];
185+
[self configureCellForNode:node allowedMultipleSelection:multipleSelection isFromSharedItem:YES sdk:sdk delegate:delegate];
186186

187187
if (self.downloadedImageView != nil) {
188188
if ([node isFile] && [MEGAStore.shareInstance offlineNodeWithNode:node] != nil) {

iMEGA/Utils/NodeAssetsManager.swift

+12-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@ import MEGARepo
33
import MEGASDKRepo
44

55
@objc final class NodeAssetsManager: NSObject {
6-
@objc static var shared = NodeAssetsManager()
6+
@objc static var shared = NodeAssetsManager(sdk: .shared)
7+
8+
private let sdk: MEGASdk
9+
10+
init(sdk: MEGASdk) {
11+
self.sdk = sdk
12+
}
713

814
@objc func icon(for node: MEGANode) -> UIImage {
915
switch node.type {
@@ -81,9 +87,10 @@ enum FileExtensionType: String {
8187

8288
extension NodeAssetsManager: NodeIconRepositoryProtocol {
8389
func iconData(for node: MEGADomain.NodeEntity) -> Data {
84-
let sdk = MEGASdk.shared
85-
guard let megaNode = node.toMEGANode(in: sdk) else { return Data() }
86-
87-
return icon(for: megaNode).pngData() ?? Data()
90+
guard let megaNode = node.toMEGANode(in: sdk),
91+
let icon = icon(for: megaNode).pngData() else {
92+
return Data()
93+
}
94+
return icon
8895
}
8996
}

0 commit comments

Comments
 (0)