From 837f263513bc32c56a58400cd8902e7c829dc5d5 Mon Sep 17 00:00:00 2001 From: Wojciech Nagrodzki <278594+wnagrodzki@users.noreply.github.com> Date: Wed, 9 Jun 2021 16:38:26 +0200 Subject: [PATCH] Add addVariations(_:) convenience method to UIVariationEnvironment --- .../UIVariationEnvironment.swift | 6 ++++++ .../UIVariationEnvironmentTests.swift | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/Sources/UserInterfaceVariations/UIVariationEnvironment.swift b/Sources/UserInterfaceVariations/UIVariationEnvironment.swift index e247e38..e34a58f 100644 --- a/Sources/UserInterfaceVariations/UIVariationEnvironment.swift +++ b/Sources/UserInterfaceVariations/UIVariationEnvironment.swift @@ -20,6 +20,12 @@ extension UIVariationEnvironment where Self: UITraitEnvironment { variation.applyIfMatchesTraitEnvironment() } + public func addVariations(_ variations: [UIVariation]) { + for variation in variations { + addVariation(variation) + } + } + public func removeVariation(_ variation: UIVariation) { variations.remove(variation) variation.traitEnvironment = nil diff --git a/Tests/UserInterfaceVariationsTests/UIVariationEnvironmentTests.swift b/Tests/UserInterfaceVariationsTests/UIVariationEnvironmentTests.swift index 8e46084..3ae859c 100644 --- a/Tests/UserInterfaceVariationsTests/UIVariationEnvironmentTests.swift +++ b/Tests/UserInterfaceVariationsTests/UIVariationEnvironmentTests.swift @@ -80,6 +80,23 @@ final class UIVariationEnvironmentTests: XCTestCase { variationEnvironment.traitCollection = UITraitCollection(verticalSizeClass: .compact) XCTAssertEqual(label.text, valueWhenCompact) } + + func test_adding_variations_convenience_method() { + let variationEnvironment = UIVariationEnvironmentFake(traitCollection: UITraitCollection(verticalSizeClass: .regular)) + let variation0 = UIVariation(object: label, + keyPath: \.text, + value: "", + horizontalSizeClass: nil, + verticalSizeClass: nil) + let variation1 = UIVariation(object: label, + keyPath: \.text, + value: "", + horizontalSizeClass: nil, + verticalSizeClass: nil) + variationEnvironment.addVariations([variation0, variation1]) + XCTAssert(variationEnvironment.variations[0] as AnyObject === variation0) + XCTAssert(variationEnvironment.variations[1] as AnyObject === variation1) + } } class UIVariationEnvironmentFake: NSObject, UITraitEnvironment {