public override async Task <StarboardAddResult> Add(StarboardAddQuery request, ServerCallContext context) { var result = await _database.AddStarboardAsync(request.GuildId, request.ChannelId, request.MessageId, request.UserId, request.StarMessageId); if (!result.Success) { return(new StarboardAddResult { Status = Status.Failed }); } var output = new StarboardAddResult { Status = Status.Success }; var entry = result.Value; if (entry is null) { return(output); } output.Stars = entry.Stars; output.StarMessageId = entry.StarMessageId; return(output); }
public async Task StarboardClient_Add_ToEntryThatExists_ReturnsOneMoreStar() { // arrange var channel = GetChannel(); var client = new Starboard.StarboardClient(channel); const string guildId = "1"; const string channelId = "1"; const string messageId = "1"; const string userId = "1"; var query = new StarboardAddQuery { GuildId = guildId, ChannelId = channelId, MessageId = messageId, UserId = userId }; // act var createResult = await client.AddAsync(query); var addResult = await client.AddAsync(query); // assert Assert.AreEqual(Status.Success, createResult.Status, "AddAsync() failed."); Assert.AreEqual(1, createResult.Stars); Assert.AreEqual(string.Empty, createResult.StarMessageId); Assert.AreEqual(Status.Success, addResult.Status, "AddAsync() failed."); Assert.AreEqual(2, addResult.Stars); Assert.AreEqual(string.Empty, addResult.StarMessageId); }