mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-09-23 19:15:10 +02:00
Add test avoid duplicates with same zap request
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
package com.vitorpamplona.amethyst.service.zaps
|
||||
|
||||
import com.vitorpamplona.amethyst.model.HexKey
|
||||
import com.vitorpamplona.amethyst.model.Note
|
||||
import com.vitorpamplona.amethyst.service.model.EventInterface
|
||||
import com.vitorpamplona.amethyst.service.model.LnZapEventInterface
|
||||
import com.vitorpamplona.amethyst.service.model.zaps.UserZaps
|
||||
import io.mockk.*
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import org.junit.Assert
|
||||
import org.junit.Test
|
||||
import java.math.BigDecimal
|
||||
|
||||
class UserZapsTest {
|
||||
@Test
|
||||
@@ -21,36 +24,33 @@ class UserZapsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun group_by_user_with_just_one_user() {
|
||||
val u1 = mockk<Note>()
|
||||
val z1 = mockk<Note>()
|
||||
val z2 = mockk<Note>()
|
||||
val zaps: Map<Note, Note?> = mapOf(u1 to z1, u1 to z2)
|
||||
val actual = UserZaps.groupByUser(zaps)
|
||||
|
||||
Assert.assertEquals(listOf(Pair(u1, z2)), actual)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun group_by_user() {
|
||||
// FIXME: not working yet...
|
||||
// IDEA:
|
||||
// [ (u1 -> z1) (u1 -> z2) (u2 -> z3) ]
|
||||
// [ (u1 -> z1 + z2) (u2 -> z3)]
|
||||
val u1 = mockk<Note>()
|
||||
val u2 = mockk<Note>()
|
||||
|
||||
val z1 = mockk<Note>()
|
||||
val z2 = mockk<Note>()
|
||||
val z3 = mockk<Note>()
|
||||
every { z3.event } returns mockk<EventInterface>()
|
||||
|
||||
val zaps: Map<Note, Note?> = mapOf(u1 to z1, u1 to z2, u2 to z3)
|
||||
fun avoid_duplicates_with_same_zap_request() {
|
||||
val zapRequest = mockk<Note>()
|
||||
|
||||
val zaps: Map<Note, Note?> = mapOf(
|
||||
zapRequest to mockZapNoteWith("user-1", amount = 100),
|
||||
zapRequest to mockZapNoteWith("user-1", amount = 200),
|
||||
)
|
||||
|
||||
val actual = UserZaps.groupByUser(zaps)
|
||||
|
||||
Assert.assertEquals(1, actual.count())
|
||||
Assert.assertEquals(zapRequest, actual.first().first)
|
||||
Assert.assertEquals(
|
||||
listOf(Pair(u1, z1), Pair(u1, z2), Pair(u2, z3)),
|
||||
actual
|
||||
BigDecimal(200),
|
||||
(actual.first().second.event as LnZapEventInterface).amount()
|
||||
)
|
||||
}
|
||||
|
||||
private fun mockZapNoteWith(pubkey: HexKey, amount: Int): Note {
|
||||
|
||||
val lnZapEvent = mockk<LnZapEventInterface>()
|
||||
every { lnZapEvent.amount() } returns amount.toBigDecimal()
|
||||
every { lnZapEvent.pubKey() } returns pubkey
|
||||
|
||||
val zapNote = mockk<Note>()
|
||||
every { zapNote.event } returns lnZapEvent
|
||||
|
||||
return zapNote
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user