public async Task Regular_comment_on_twitch_should_be_saved_to_database() { // arrange await _service.StartAsync(CancellationToken.None); var messageText = "hello just checking in " + Guid.NewGuid(); var username = "******" + Guid.NewGuid(); var arrivedKey = $"{username}::arrived_recently"; DocumentsToRemove.Add(arrivedKey); // clean up the "arrived" document // act _fakeTwitchClient.FakeRaiseMessage(messageText, username: username); // assert - message was saved var findMessage = TestCluster.QueryAsync <dynamic>( $"SELECT m.message FROM `{Bucket.Name}` m WHERE m.message = $message", QueryOptions.Create().Parameter("message", messageText).ScanConsistency(QueryScanConsistency.RequestPlus)); var rows = await findMessage.Result.Rows.ToListAsync(); Assert.That(rows.Count, Is.EqualTo(1)); // assert - user arrived doc was saved var userArrivedExists = await Collection.ExistsAsync(arrivedKey); Assert.That(userArrivedExists.Exists, Is.True); }
public async Task Is_chat_message_stored() { // arrange var expectedUsername = "******" + Guid.NewGuid(); var expectedMessage = "some message whatever " + Guid.NewGuid(); var expectedChannel = "mychannel" + Guid.NewGuid(); var twitchLibMessage = TwitchLibMessageBuilder.Create() .WithUsername(expectedUsername) .Build(); var chatMessage = ChatMessageBuilder.Create() .WithTwitchLibMessage(twitchLibMessage) .WithMessage(expectedMessage) .WithChannel(expectedChannel) .Build(); var request = new StoreMessage(chatMessage); // act await _handler.Handle(request, CancellationToken.None); // assert var n1ql = $"SELECT RAW COUNT(*) FROM `{Bucket.Name}` WHERE message = $expectedMessage"; var result = await TestCluster.QueryAsync <int>(n1ql, QueryOptions.Create().Parameter("expectedMessage", expectedMessage).ScanConsistency(QueryScanConsistency.RequestPlus)); var count = await result.Rows.FirstOrDefaultAsync(); Assert.That(count, Is.EqualTo(1)); }
public async Task <IActionResult> GetEventsForUser(string userId) { // CREATE INDEX ix_userid on useractivity (userId); var bucket = await _bucketProvider.GetBucketAsync("useractivity"); var cluster = bucket.Cluster; var events = await cluster.QueryAsync <UserEventGet>( @"SELECT description, eventType, eventDt FROM useractivity WHERE userId = $userId ORDER BY eventDt DESC", QueryOptions.Create().Parameter("$userId", userId)); return(Ok(events.Rows)); }
public async Task <IAsyncEnumerable <TriviaQuestion> > Handle(GetRandomTriviaQuestions request, CancellationToken cancellationToken) { var bucket = await _bucketProvider.GetBucketAsync(); var cluster = bucket.Cluster; var n1ql = @"SELECT META(t).id, t.* FROM `" + bucket.Name + @"` t WHERE t.type = 'trivia' AND t.approved = true ORDER BY RANDOM() LIMIT $limit;"; var results = await cluster.QueryAsync <TriviaQuestion>(n1ql, QueryOptions.Create() .Parameter("limit", request.NumQuestions)); return(results.Rows); }
public async Task <IAsyncEnumerable <TriviaQuestion> > Handle(GetPageOfTriviaQuestions request, CancellationToken cancellationToken) { var bucket = await _bucketProvider.GetBucketAsync(); var cluster = bucket.Cluster; var n1ql = @$ "SELECT META(t).id, t.* FROM `{bucket.Name}` t WHERE t.type = 'trivia' ORDER BY t.approved, t.question LIMIT $pageSize OFFSET $pageNum * $pageSize"; var result = await cluster.QueryAsync <TriviaQuestion>(n1ql, QueryOptions.Create() .Parameter("pageSize", Globals.MANAGE_TRIVIA_PAGE_SIZE) .Parameter("pageNum", request.PageNum)); return(result.Rows); }
public static Task <IQueryResult <T> > QueryAsync <T>(this ICluster cluster, string statement) { return(cluster.QueryAsync <T>(statement, QueryOptions.Create(statement))); }
/// <summary> /// Executes a N1QL query on the server. /// </summary> /// <typeparam name="T">The type of the result.</typeparam> /// <param name="scope">The calling scope.</param> /// <param name="statement">The statement to execute.</param> /// <returns>A Task that can be awaited for the results of the query.</returns> public static Task <IQueryResult <T> > QueryAsync <T>(this IScope scope, string statement) { return(scope.QueryAsync <T>(statement, QueryOptions.Create(statement))); }