Files
resgen.swift/Tests/ResgenSwiftTests/Images/ImageExtensionGeneratorTests.swift
Thibaut Schmitt 7162f13166
Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit
Add visibility parameters to control scope of generated extension
2025-07-18 11:53:46 +02:00

172 lines
4.7 KiB
Swift

//
// ImageExtensionGeneratorTests.swift
//
//
// Created by Thibaut Schmitt on 05/09/2022.
//
import Foundation
import XCTest
import ToolCore
@testable import ResgenSwift
final class ImageExtensionGeneratorTests: XCTestCase {
func test_uiKit_GeneratedExtensionContent() {
// Given
let images = [
ParsedImage(name: "image_one", tags: "id", width: 10, height: 10),
ParsedImage(name: "image_two", tags: "id", width: 180, height: 90),
]
// When
let extensionContent = ImageExtensionGenerator.getExtensionContent(
images: images,
staticVar: false,
extensionName: "GenImages",
inputFilename: "myInputFilename",
isSwiftUI: false,
visibility: .public
)
// Expect
let expect = """
// Generated by ResgenSwift.Images \(ResgenSwiftVersion)
// Images from myInputFilename
import UIKit
extension GenImages {
public var image_one: UIImage {
UIImage(named: "image_one")!
}
public var image_two: UIImage {
UIImage(named: "image_two")!
}
}
"""
XCTAssertEqual(extensionContent.adaptForXCTest(), expect.adaptForXCTest())
}
func test_uiKit_GeneratedExtensionContentForStaticVar() {
// Given
let images = [
ParsedImage(name: "image_one", tags: "id", width: 10, height: 10),
ParsedImage(name: "image_two", tags: "id", width: 180, height: 90),
]
// When
let extensionContent = ImageExtensionGenerator.getExtensionContent(
images: images,
staticVar: true,
extensionName: "GenImages",
inputFilename: "myInputFilename",
isSwiftUI: false,
visibility: .internal
)
// Expect
let expect = """
// Generated by ResgenSwift.Images \(ResgenSwiftVersion)
// Images from myInputFilename
import UIKit
extension GenImages {
internal static var image_one: UIImage {
UIImage(named: "image_one")!
}
internal static var image_two: UIImage {
UIImage(named: "image_two")!
}
}
"""
XCTAssertEqual(extensionContent.adaptForXCTest(), expect.adaptForXCTest())
}
func test_swiftUI_GeneratedExtensionContent() {
// Given
let images = [
ParsedImage(name: "image_one", tags: "id", width: 10, height: 10),
ParsedImage(name: "image_two", tags: "id", width: 180, height: 90),
]
// When
let extensionContent = ImageExtensionGenerator.getExtensionContent(
images: images,
staticVar: false,
extensionName: "GenImages",
inputFilename: "myInputFilename",
isSwiftUI: true,
visibility: .public
)
// Expect
let expect = """
// Generated by ResgenSwift.Images \(ResgenSwiftVersion)
// Images from myInputFilename
import SwiftUI
extension GenImages {
public var image_one: Image {
Image("image_one")
}
public var image_two: Image {
Image("image_two")
}
}
"""
XCTAssertEqual(extensionContent.adaptForXCTest(), expect.adaptForXCTest())
}
func test_swiftUI_GeneratedExtensionContentForStaticVar() {
// Given
let images = [
ParsedImage(name: "image_one", tags: "id", width: 10, height: 10),
ParsedImage(name: "image_two", tags: "id", width: 180, height: 90),
]
// When
let extensionContent = ImageExtensionGenerator.getExtensionContent(
images: images,
staticVar: true,
extensionName: "GenImages",
inputFilename: "myInputFilename",
isSwiftUI: true,
visibility: .package
)
// Expect
let expect = """
// Generated by ResgenSwift.Images \(ResgenSwiftVersion)
// Images from myInputFilename
import SwiftUI
extension GenImages {
package static var image_one: Image {
Image("image_one")
}
package static var image_two: Image {
Image("image_two")
}
}
"""
XCTAssertEqual(extensionContent.adaptForXCTest(), expect.adaptForXCTest())
}
}