예제 #1
0
        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);
        }
예제 #2
0
        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);
        }