Jakub Gwóźdź
09/06/2022, 9:44 AMtestApplication { … }
, but I have a method that is simply
suspend fun readPartsContents(call: ApplicationCall): List<UploadedContent> = call
.receiveMultipart()
.readAllParts()
.flatMap(::processPart)
and I’d like to mock that call
in my unit test. But I can’t since .receiveMultipart()
is unmockable extension function…Jakub Gwóźdź
09/06/2022, 11:32 AMval call: ApplicationCall = mockk()
val multiPartData: MultiPartData = mockk()
val input: Input = mockk()
val zipPart = PartData.FileItem({ input }, { input.release() }, partHeaders(Application.Zip, "zip/random.zip"))
mockkStatic(ApplicationCall::receiveMultipart)
mockkStatic(MultiPartData::readAllParts)
mockkStatic(Input::asStream)
coEvery { call.receiveMultipart() } returns multiPartData
coEvery { multiPartData.readAllParts() } returns listOf(zipPart)
every { input.asStream() } returns randomZip.inputStream()
justRun { input.release() }