You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Apple/Sources/DependencyInjection/DependencyInjectionTests/DependencyInjectionTests.swift

77 lines
2.1 KiB

//
// DependencyInjectionTests.swift
// DependencyInjectionTests
//
// Created by Emre on 27/12/2023.
//
import XCTest
@testable import DependencyInjection
class DependencyInjectionTests: XCTestCase {
override func setUpWithError() throws {
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDownWithError() throws {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
func testExample() throws {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
// Any test you write for XCTest can be annotated as throws and async.
// Mark your test throws to produce an unexpected failure when your test encounters an uncaught error.
// Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards.
}
func testPerformanceExample() throws {
// This is an example of a performance test case.
self.measure {
// Put the code you want to measure the time of here.
}
}
func testInstance() {
DependencyInjection.shared.addSingleton(UserTest.self, UserTest(age: 10))
let view1 = View1()
let view2 = View2()
XCTAssertEqual(view1.getAge(), view2.getAge())
view1.setAge()
XCTAssertEqual(view1.getAge(), view2.getAge())
view2.setAge()
XCTAssertEqual(view1.getAge(), view2.getAge())
}
class UserTest {
public var age:Int
init(age:Int) {
self.age = age
}
}
class View1 {
@Inject private var user:UserTest
func getAge() -> Int {
return user.age
}
func setAge() {
user.age = 20
}
}
class View2 {
@Inject private var user:UserTest
func getAge() -> Int {
return user.age
}
func setAge() {
user.age = 40
}
}
}