From a5ab11f88c75564e1e39fecc030e95168234491c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=80=E1=85=B5=E1=86=B7=E1=84=8C=E1=85=A5=E1=86=BC?= =?UTF-8?q?=E1=84=89=E1=85=A1=E1=86=BC?= Date: Wed, 16 Feb 2022 22:09:09 +0900 Subject: [PATCH] =?UTF-8?q?test=20JuiceMaker=20test=5F=EA=B3=BC=EC=9D=BC?= =?UTF-8?q?=EC=A5=AC=EC=8A=A4=EB=A5=BC=5F=EB=A7=8C=EB=93=A4=EA=B3=A0=5F?= =?UTF-8?q?=EB=82=A8=EC=9D=80=EA=B3=BC=EC=9D=BC=EC=9D=98=5F=EA=B0=9C?= =?UTF-8?q?=EC=88=98=EA=B0=80=5F=EC=98=AC=EB=B0=94=EB=A5=B8=EA=B0=80()=20?= =?UTF-8?q?=EC=BC=80=EC=9D=B4=EC=8A=A4=20=EC=B6=94=EA=B0=80=20#1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - FruitStore 타입 변경 (Struct -> Class) --- JuiceMaker/JuiceMaker/Model/FruitStore.swift | 6 ++--- .../JuiceMakerTests/JuiceMakerTests.swift | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/JuiceMaker/JuiceMaker/Model/FruitStore.swift b/JuiceMaker/JuiceMaker/Model/FruitStore.swift index c5191734e..ac9b1c2df 100644 --- a/JuiceMaker/JuiceMaker/Model/FruitStore.swift +++ b/JuiceMaker/JuiceMaker/Model/FruitStore.swift @@ -20,7 +20,7 @@ extension FruitStoreError: LocalizedError { } /// 과일 저장소 타입 -struct FruitStore { +class FruitStore { private(set) var inventory = [FruitType: Int]() init(initialFruitCount: Int = 10) { @@ -29,7 +29,7 @@ struct FruitStore { } } - mutating func use(of fruitTypes: [FruitType: Int]) -> Result { + func use(of fruitTypes: [FruitType: Int]) -> Result { let checkedInventory = checkInventory(of: fruitTypes) switch checkedInventory { case .success(): @@ -40,7 +40,7 @@ struct FruitStore { } } - mutating func changeFruitCount(of fruit: FruitType, count: Int) { + func changeFruitCount(of fruit: FruitType, count: Int) { guard count > 0 else { return } diff --git a/JuiceMaker/JuiceMakerTests/JuiceMakerTests.swift b/JuiceMaker/JuiceMakerTests/JuiceMakerTests.swift index 71cd066d3..a1c40fc6e 100644 --- a/JuiceMaker/JuiceMakerTests/JuiceMakerTests.swift +++ b/JuiceMaker/JuiceMakerTests/JuiceMakerTests.swift @@ -57,4 +57,29 @@ class JuiceMakerTests: XCTestCase { XCTSuccess() } } + + func test_과일쥬스를_만들고_남은과일의_개수가_올바른가() { + // given + let fruitStore = FruitStore(initialFruitCount: 10) + var juiceMaker = JuiceMaker(fruitStore: fruitStore) + let input = MockJuice(items: [.banana: 5]) + let expected: [FruitType: Int] = [ + .strawberry: 10, + .banana: 5, + .pineapple: 10, + .kiwi: 10, + .mango: 10 + ] + + // when + let writeResult = juiceMaker.make(with: input) + + // then + switch writeResult { + case .success(): + XCTAssertEqual(fruitStore.inventory, expected) + case .failure(_): + XCTFail() + } + } }