From 53e520ee8a81618a66b7ea870b085a9a7c574564 Mon Sep 17 00:00:00 2001 From: Chemaclass Date: Sun, 5 Mar 2023 23:28:39 +0100 Subject: [PATCH] Add test avoid duplicates with same zap request --- .../amethyst/service/zaps/UserZapsTest.kt | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/app/src/test/java/com/vitorpamplona/amethyst/service/zaps/UserZapsTest.kt b/app/src/test/java/com/vitorpamplona/amethyst/service/zaps/UserZapsTest.kt index 07bf3048b..052ac44c2 100644 --- a/app/src/test/java/com/vitorpamplona/amethyst/service/zaps/UserZapsTest.kt +++ b/app/src/test/java/com/vitorpamplona/amethyst/service/zaps/UserZapsTest.kt @@ -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() - val z1 = mockk() - val z2 = mockk() - val zaps: Map = 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() - val u2 = mockk() - - val z1 = mockk() - val z2 = mockk() - val z3 = mockk() - every { z3.event } returns mockk() - - val zaps: Map = mapOf(u1 to z1, u1 to z2, u2 to z3) + fun avoid_duplicates_with_same_zap_request() { + val zapRequest = mockk() + + val zaps: Map = 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() + every { lnZapEvent.amount() } returns amount.toBigDecimal() + every { lnZapEvent.pubKey() } returns pubkey + + val zapNote = mockk() + every { zapNote.event } returns lnZapEvent + + return zapNote + } }