public async Task WhenPostIsNotFound_ItShouldReturnNull()
        {
            await this.DatabaseTestAsync(async testDatabase =>
            {
                this.InitializeTarget(testDatabase);
                await this.CreateEntitiesAsync(testDatabase, likePost: true);
                await testDatabase.TakeSnapshotAsync();

                var result = await this.target.ExecuteAsync(UserId, PostId.Random());

                Assert.IsNull(result);

                return(ExpectedSideEffects.None);
            });
        }
        public async Task WhenInsertFailsBecauseOtherError_ItShouldRaiseError()
        {
            await this.DatabaseTestAsync(async testDatabase =>
            {
                this.target = new RequestFreePostDbStatement(testDatabase);
                await this.CreateDataAsync(testDatabase);

                await testDatabase.TakeSnapshotAsync();

                await ExpectedException.AssertExceptionAsync <Exception>(
                    () => this.target.ExecuteAsync(RequestorId, PostId.Random(), Now, MaximumPosts));

                return(ExpectedSideEffects.None);
            });
        }
        public async Task ItShouldReturnComments()
        {
            var expectedResult = new CommentsResult(
                new List <CommentsResult.Item>
            {
                new CommentsResult.Item(CommentId.Random(), PostId.Random(), UserId.Random(), new Username("blah"), new Comment("comment"), DateTime.UtcNow),
            });

            this.getComments.Setup(v => v.ExecuteAsync(PostId))
            .Returns(Task.FromResult(expectedResult))
            .Verifiable();

            var result = await this.target.HandleAsync(new GetCommentsQuery(Requester, PostId, Timestamp));

            Assert.AreEqual(expectedResult, result);
            this.getComments.Verify();
        }
Пример #4
0
        public async Task WhenGettingComments_ItShouldIssueGetCommentsCommand()
        {
            var expectedResult = new CommentsResult(
                new List <CommentsResult.Item>
            {
                new CommentsResult.Item(CommentId.Random(), PostId.Random(), UserId.Random(), new Username("blah"), new Comment("comment"), DateTime.UtcNow),
            });
            var timestamp = DateTime.UtcNow;

            this.timestampCreator.Setup(v => v.Now()).Returns(timestamp);
            this.requesterContext.Setup(_ => _.GetRequesterAsync()).ReturnsAsync(Requester);
            this.getComments.Setup(v => v.HandleAsync(new GetCommentsQuery(Requester, PostId, timestamp)))
            .Returns(Task.FromResult(expectedResult))
            .Verifiable();

            var result = await this.target.GetComments(PostId.Value.EncodeGuid());

            Assert.AreEqual(expectedResult, result);
            this.getComments.Verify();
        }