public async void TipShouldSucceedOnMultipleRecipients() { const decimal tipAmount = 42; const decimal balance = 400; var recipients = $"<@{TestConstants.RecipientAccount.SlackId}>, <@{TestConstants.RecipientAccount2.SlackId}>"; var txId2 = txId + 1; var message = CreateChannelMessage($"<@{botUserId}> tip {recipients} {tipAmount}"); SetupNxtAccount(TestConstants.SenderAccount, balance); SetupNxtAccount(TestConstants.RecipientAccount, 0); SetupNxtAccount(TestConstants.RecipientAccount2, 0); nxtConnectorMock.Setup(c => c.Transfer( It.Is <NxtAccount>(a => a == TestConstants.SenderAccount), It.Is <string>(r => r == TestConstants.RecipientAccount.NxtAccountRs), It.Is <NxtTransferable>(t => t == Nxt.Singleton), It.Is <decimal>(amount => amount == tipAmount), It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync(txId); nxtConnectorMock.Setup(c => c.Transfer( It.Is <NxtAccount>(a => a == TestConstants.SenderAccount), It.Is <string>(r => r == TestConstants.RecipientAccount2.NxtAccountRs), It.Is <NxtTransferable>(t => t == Nxt.Singleton), It.Is <decimal>(amount => amount == tipAmount), It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync(txId2); slackConnectorMock.Setup(c => c.GetInstantMessageId(It.Is <string>(id => id == TestConstants.RecipientAccount.SlackId))).ReturnsAsync(imSession.Id); await slackHandler.TipBotChannelCommand(message, slackUser, channelSession); slackConnectorMock.Verify(c => c.SendMessage(channelSession.Id, It.Is <string>(input => input.Equals(MessageConstants.MultitipSentChannel(slackUser.Id, recipients, tipAmount, "NXT", ""))), true)); slackConnectorMock.Verify(c => c.SendMessage(imSession.Id, It.Is <string>(input => input.Equals(MessageConstants.TipSentDirectMessage(slackUser.Id, tipAmount, "NXT", txId))), true)); }