-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
UseCase 테스트 추가
- Loading branch information
Showing
11 changed files
with
569 additions
and
1 deletion.
There are no files selected for viewing
2 changes: 1 addition & 1 deletion
2
InMyMemory.xcodeproj/xcshareddata/xcschemes/InMyMemory.xcscheme
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
79 changes: 79 additions & 0 deletions
79
InMyMemory/Domain/Tests/UseCaseTests/Repositories/EmotionRepositoryMock.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
// | ||
// EmotionRepositoryMock.swift | ||
// | ||
// | ||
// Created by 홍성준 on 1/19/24. | ||
// | ||
|
||
import Foundation | ||
import Interfaces | ||
import Entities | ||
import RxSwift | ||
|
||
final class EmotionRepositoryMock: EmotionRepositoryInterface { | ||
|
||
init() {} | ||
|
||
var createEmotionCallCount = 0 | ||
var createEmotionEmotion: Emotion? | ||
func create(emotion: Emotion) -> Single<Void> { | ||
createEmotionCallCount += 1 | ||
createEmotionEmotion = emotion | ||
return .just(()) | ||
} | ||
|
||
var readEmotionIDCallCount = 0 | ||
var readEmotionIDEmotionID: UUID? | ||
var readEmotionIDEmotion: Emotion? | ||
func read(emotionID: UUID) -> Single<Emotion?> { | ||
readEmotionIDCallCount += 1 | ||
readEmotionIDEmotionID = emotionID | ||
return .just(readEmotionIDEmotion) | ||
} | ||
|
||
var readGreaterThanCallCount = 0 | ||
var readGreaterThanDate: Date? | ||
var readGreaterThanEmotions: [Emotion] = [] | ||
func read(greaterThan date: Date) -> Single<[Emotion]> { | ||
readGreaterThanCallCount += 1 | ||
readGreaterThanDate = date | ||
return .just(readGreaterThanEmotions) | ||
} | ||
|
||
var readGreaterOrEqualThanLessThanCallCount = 0 | ||
var readGreaterOrEqualThanLessThanGreaterOrEqualDate: Date? | ||
var readGreaterOrEqualThanLessThanLessDate: Date? | ||
var readGreaterOrEqualThanLessThanEmotions: [Emotion] = [] | ||
func read(greaterOrEqualThan greaterOrEqualDate: Date, lessThan lessDate: Date) -> Single<[Emotion]> { | ||
readGreaterOrEqualThanLessThanCallCount += 1 | ||
readGreaterOrEqualThanLessThanGreaterOrEqualDate = greaterOrEqualDate | ||
readGreaterOrEqualThanLessThanLessDate = lessDate | ||
return .just(readGreaterOrEqualThanLessThanEmotions) | ||
} | ||
|
||
var readKeywordCallCount = 0 | ||
var readKeywordKeyword: String? | ||
var readKeywordEmotions: [Emotion] = [] | ||
func read(keyword: String) -> Single<[Emotion]> { | ||
readKeywordCallCount += 1 | ||
readKeywordKeyword = keyword | ||
return .just(readKeywordEmotions) | ||
} | ||
|
||
var updateEmotionCallCount = 0 | ||
var updateEmotionEmotion: Emotion? | ||
func update(emotion: Emotion) -> Single<Void> { | ||
updateEmotionCallCount += 1 | ||
updateEmotionEmotion = emotion | ||
return .just(()) | ||
} | ||
|
||
var deleteEmotionCallCount = 0 | ||
var deleteEmotionEmotion: Emotion? | ||
func delete(emotion: Emotion) -> Single<Void> { | ||
deleteEmotionCallCount += 1 | ||
deleteEmotionEmotion = emotion | ||
return .just(()) | ||
} | ||
|
||
} |
87 changes: 87 additions & 0 deletions
87
InMyMemory/Domain/Tests/UseCaseTests/Repositories/MemoryRepositoryMock.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
// | ||
// MemoryRepositoryMock.swift | ||
// | ||
// | ||
// Created by 홍성준 on 1/19/24. | ||
// | ||
|
||
import Foundation | ||
import Interfaces | ||
import Entities | ||
import RxSwift | ||
|
||
final class MemoryRepositoryMock: MemoryRepositoryInterface { | ||
|
||
init() {} | ||
|
||
var createMemoryCallCount = 0 | ||
var createMemoryMemory: Memory? | ||
func create(memory: Memory) -> Single<Void> { | ||
createMemoryCallCount += 1 | ||
createMemoryMemory = memory | ||
return .just(()) | ||
} | ||
|
||
var readMemoryIDCallCount = 0 | ||
var readMemoryIDMemoryID: UUID? | ||
var readMemoryIDMemory: Memory? | ||
func read(memoryID: UUID) -> Single<Memory?>{ | ||
readMemoryIDCallCount += 1 | ||
readMemoryIDMemoryID = memoryID | ||
return .just(readMemoryIDMemory) | ||
} | ||
|
||
var readGreaterThanCallCount = 0 | ||
var readGreaterThanDate: Date? | ||
var readGreaterThanMemories: [Memory] = [] | ||
func read(greaterThan date: Date) -> Single<[Memory]> { | ||
readGreaterThanCallCount += 1 | ||
readGreaterThanDate = date | ||
return .just(readGreaterThanMemories) | ||
} | ||
|
||
var readGreaterOrEqualThanLessThanCallCount = 0 | ||
var readGreaterOrEqualThanLessThanGreaterOrEqualDate: Date? | ||
var readGreaterOrEqualThanLessThanLessDate: Date? | ||
var readGreaterOrEqualThanLessThanMemories: [Memory] = [] | ||
func read(greaterOrEqualThan greaterOrEqualDate: Date, lessThan lessDate: Date) -> Single<[Memory]> { | ||
readGreaterOrEqualThanLessThanCallCount += 1 | ||
readGreaterOrEqualThanLessThanGreaterOrEqualDate = greaterOrEqualDate | ||
readGreaterOrEqualThanLessThanLessDate = lessDate | ||
return .just(readGreaterOrEqualThanLessThanMemories) | ||
} | ||
|
||
var readKeywordCallCount = 0 | ||
var readKeywordKeyword: String? | ||
var readKeywordMemories: [Memory] = [] | ||
func read(keyword: String) -> Single<[Memory]> { | ||
readKeywordCallCount += 1 | ||
readKeywordKeyword = keyword | ||
return .just(readKeywordMemories) | ||
} | ||
|
||
var updateMemoryCallCount = 0 | ||
var updateMemoryMemory: Memory? | ||
func update(memory: Memory) -> Single<Void> { | ||
updateMemoryCallCount += 1 | ||
updateMemoryMemory = memory | ||
return .just(()) | ||
} | ||
|
||
var deleteMemoryCallCount = 0 | ||
var deleteMemoryMemory: Memory? | ||
func delete(memory: Memory) -> Single<Void> { | ||
deleteMemoryCallCount += 1 | ||
deleteMemoryMemory = memory | ||
return .just(()) | ||
} | ||
|
||
var deleteMemoryIDCallCount = 0 | ||
var deleteMemoryIDMemoryID: UUID? | ||
func delete(memoryID: UUID) -> Single<Void> { | ||
deleteMemoryIDCallCount += 1 | ||
deleteMemoryIDMemoryID = memoryID | ||
return .just(()) | ||
} | ||
|
||
} |
79 changes: 79 additions & 0 deletions
79
InMyMemory/Domain/Tests/UseCaseTests/Repositories/TodoRepositoryMock.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
// | ||
// TodoRepositoryMock.swift | ||
// | ||
// | ||
// Created by 홍성준 on 1/19/24. | ||
// | ||
|
||
import Foundation | ||
import Interfaces | ||
import Entities | ||
import RxSwift | ||
|
||
final class TodoRepositoryMock: TodoRepositoryInterface { | ||
|
||
init() {} | ||
|
||
var createTodoCallCount = 0 | ||
var createTodoTodo: Todo? | ||
func create(todo: Todo) -> Single<Void> { | ||
createTodoCallCount += 1 | ||
createTodoTodo = todo | ||
return .just(()) | ||
} | ||
|
||
var readTodoIDCallCount = 0 | ||
var readTodoIDTodoID: UUID? | ||
var readTodoIDTodo: Todo? | ||
func read(todoID: UUID) -> Single<Todo?> { | ||
readTodoIDCallCount += 1 | ||
readTodoIDTodoID = todoID | ||
return .just(readTodoIDTodo) | ||
} | ||
|
||
var readGreaterThanCallCount = 0 | ||
var readGreaterThanDate: Date? | ||
var readGreaterThanTodo: [Todo] = [] | ||
func read(greaterThan date: Date) -> Single<[Todo]> { | ||
readGreaterThanCallCount += 1 | ||
readGreaterThanDate = date | ||
return .just(readGreaterThanTodo) | ||
} | ||
|
||
var readGreaterOrEqualThanLessThanCallCount = 0 | ||
var readGreaterOrEqualThanLessThanGreaterOrEqualDate: Date? | ||
var readGreaterOrEqualThanLessThanLessDate: Date? | ||
var readGreaterOrEqualThanLessThanTodos: [Todo] = [] | ||
func read(greaterOrEqualThan greaterOrEqualDate: Date, lessThan lessDate: Date) -> Single<[Todo]> { | ||
readGreaterOrEqualThanLessThanCallCount += 1 | ||
readGreaterOrEqualThanLessThanGreaterOrEqualDate = greaterOrEqualDate | ||
readGreaterOrEqualThanLessThanLessDate = lessDate | ||
return .just(readGreaterOrEqualThanLessThanTodos) | ||
} | ||
|
||
var readKeywordCallCount = 0 | ||
var readKeywordKeyword: String? | ||
var readKeywordTodos: [Todo] = [] | ||
func read(keyword: String) -> Single<[Todo]> { | ||
readKeywordCallCount += 1 | ||
readKeywordKeyword = keyword | ||
return .just(readKeywordTodos) | ||
} | ||
|
||
var updateTodoCallCount = 0 | ||
var updateTodoTodo: Todo? | ||
func update(todo: Todo) -> Single<Void> { | ||
updateTodoCallCount += 1 | ||
updateTodoTodo = todo | ||
return .just(()) | ||
} | ||
|
||
var deleteTodoCallCount = 0 | ||
var deleteTodoTodo: Todo? | ||
func delete(todo: Todo) -> Single<Void> { | ||
deleteTodoCallCount += 1 | ||
deleteTodoTodo = todo | ||
return .just(()) | ||
} | ||
|
||
} |
40 changes: 40 additions & 0 deletions
40
InMyMemory/Domain/Tests/UseCaseTests/UseCases/EmotionRecordUseCaseTests.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
// | ||
// EmotionRecordUseCaseTests.swift | ||
// | ||
// | ||
// Created by 홍성준 on 1/19/24. | ||
// | ||
|
||
@testable import UseCases | ||
import Entities | ||
import XCTest | ||
import Quick | ||
import Nimble | ||
|
||
final class EmotionRecordUseCaseTests: QuickSpec { | ||
|
||
override class func spec() { | ||
var sut: EmotionRecordUseCase! | ||
var repository: EmotionRepositoryMock! | ||
|
||
describe("") { | ||
beforeEach { | ||
repository = .init() | ||
sut = .init(emotionRepository: repository) | ||
} | ||
|
||
context("createEmotion이 호출되면") { | ||
let emotion: Emotion = .init(id: .init(), note: "", emotionType: .good, date: .init()) | ||
beforeEach { | ||
_ = sut.createEmotion(emotion) | ||
} | ||
|
||
it("EmotionRepository의 create(emotion: Emotion)이 호출된다") { | ||
expect { repository.createEmotionEmotion?.id } == emotion.id | ||
expect { repository.createEmotionCallCount } == 1 | ||
} | ||
} | ||
} | ||
} | ||
|
||
} |
Oops, something went wrong.