示例#1
0
        public async void PostScream_RightData_ReturnSuccessful()
        {
            //  arrange
            const string CONTENT = "TEST: NEW SCREAM CONTENT SUCCESSFUL";

            Screams.Screams.IScreamsManager screamsManager = new Screams.Screams.DefaultScreamsManager(
                _db, redisConn);
            Screams.Models.NewScreamtion fakerNewScream = new Screams.Models.NewScreamtion
            {
                AuthorId = FakeUser.Id,
                Content  = CONTENT
            };

            //  act
            var result = await screamsManager.PostScreamAsync(fakerNewScream);

            var id        = result.Data;
            var newScream = _db.Screams.AsNoTracking().SingleOrDefault(s => s.Id == id);

            //  assert
            Assert.True(result.Succeeded);
            Assert.True(id > 0);
            Assert.NotNull(newScream);
            Assert.Equal(newScream.Content, CONTENT);
        }
示例#2
0
        public async void PostScream_NotExistAuthor_ReturnUnsuccessful()
        {
            //  arrange
            const int    ERRORS_COUNT   = 1;
            const string ERRORS_CONTENT = "该作者不存在";

            var fakerAuthor = new ScreamBackend.DB.Tables.User
            {
                Id = 0
            };

            Screams.Screams.IScreamsManager screamsManager = new Screams.Screams.DefaultScreamsManager(
                _db, redisConn);
            Screams.Models.NewScreamtion fakerNewScream = new Screams.Models.NewScreamtion
            {
                AuthorId = fakerAuthor.Id,
                Content  = "TEST: NEW SCREAM CONTENT UNSUCCESSFUL"
            };

            //  act
            var result = await screamsManager.PostScreamAsync(fakerNewScream);

            //  assert
            Assert.False(result.Succeeded);
            Assert.Equal(result.Data, NOT_DATA);
            Assert.NotNull(result.Errors);
            Assert.Equal(result.Errors.Count, ERRORS_COUNT);
            Assert.Equal(result.Errors[0], ERRORS_CONTENT);
        }
示例#3
0
        public async void RemoveComment_InvalidCommentId_ThrowException(int commentId)
        {
            //  arrange
            Screams.Screams.IScreamsManager mockScreamsManager = new Screams.Screams.DefaultScreamsManager(_db, redisConn);
            Screams.Screams.Scream          mockScream         = await mockScreamsManager.GetScreamAsync(SCREAM_ID);

            //  act
            Task actual() => mockScream.RemoveCommentAsync(commentId);

            //  assert
            await Assert.ThrowsAsync <ArgumentOutOfRangeException>(actual);
        }
示例#4
0
        public async void RemoveComment_ExistCommentId_ReturnSuccessful(int commentId)
        {
            //  arrange

            Screams.Screams.IScreamsManager mockScreamsManager = new Screams.Screams.DefaultScreamsManager(_db, redisConn);
            Screams.Screams.Scream          mockScream         = await mockScreamsManager.GetScreamAsync(SCREAM_ID);

            //  act
            var result = await mockScream.RemoveCommentAsync(commentId);

            //  assert
            Assert.True(result.Succeeded);
        }
示例#5
0
        public async void GetFullContent_ExistScreamId_ReturnFullContent()
        {
            //  arrange
            const string EXPECT_CONTENT = "TEST: SCREAM ITEM_5";

            Screams.Screams.IScreamsManager screamsManager = new Screams.Screams.DefaultScreamsManager(_db, redisConn);
            var scream = await screamsManager.GetScreamAsync(SCREAM_ID);

            //  act
            string actualContent = scream.FullContent;

            //  assert
            Assert.Equal(EXPECT_CONTENT, actualContent);
        }
        public async void Remove_ReturnSuccessful(int screamId)
        {
            //  arrange

            Screams.Screams.IScreamsManager screamsManager = new Screams.Screams.DefaultScreamsManager
                                                             (
                _db, redisConn
                                                             );

            //  act
            var result = await screamsManager.RemoveAsync(screamId);

            //  assert
            Assert.True(result.Succeeded);
        }
        public async void GetScream_InvalidId_ReturnNull()
        {
            //  arrange
            const int INVALID_ID = -1;

            Screams.Screams.IScreamsManager screamsManager = new Screams.Screams.DefaultScreamsManager
                                                             (
                _db, redisConn
                                                             );

            //  act
            var scream = await screamsManager.GetScreamAsync(INVALID_ID);

            //  assert
            Assert.Null(scream);
        }
        public async void GetScream_NotExistId_ReturnNull()
        {
            //  arrange
            const int NOT_EXIST_ID = 10111;

            Screams.Screams.IScreamsManager screamsManager = new Screams.Screams.DefaultScreamsManager
                                                             (
                _db, redisConn
                                                             );

            //  act
            var scream = await screamsManager.GetScreamAsync(NOT_EXIST_ID);

            //  assert
            Assert.Null(scream);
        }
示例#9
0
        public async void PostComment_RightComment_ReturnSuccessful()
        {
            //  arrange
            Screams.Screams.IScreamsManager mockScreamsManager = new Screams.Screams.DefaultScreamsManager(_db, redisConn);

            var mockScream = await mockScreamsManager.GetScreamAsync(SCREAM_ID);

            Screams.Models.NewComment fakerComment = new Screams.Models.NewComment
            {
                Author  = FakeUser,
                Content = "TEST: RIGTH COMMENT"
            };

            //  act
            var result = await mockScream.PostCommentAsync(fakerComment);

            //  assert
            Assert.True(result.Succeeded);
        }
示例#10
0
        public async void PostComment_NullAuthor_ReturnUnsuccessful()
        {
            //  arrange

            Screams.Screams.IScreamsManager mockScreamsManager = new Screams.Screams.DefaultScreamsManager(_db, redisConn);
            ICommentsManager mockCommentsManager = new DefaultCommentsManager(_db);

            var mockScream = await mockScreamsManager.GetScreamAsync(1);

            Screams.Models.NewComment fakerComment = new Screams.Models.NewComment
            {
                Author  = null,
                Content = "TEST: RIGHT COMMENT"
            };

            //  act
            Task actual() => mockScream.PostCommentAsync(fakerComment);

            //  assert
            await Assert.ThrowsAsync <NullReferenceException>(actual);
        }
示例#11
0
        public async void GetScreams_FirstPageIndexAndSize_ReturnFullDataOfPage()
        {
            //  arrange
            const int INDEX      = 1;
            const int SIZE       = 10;
            const int TOTAL_PAGE = 2;

            Screams.Screams.IScreamsManager screamsManager = new Screams.Screams.DefaultScreamsManager
                                                             (
                _db, redisConn
                                                             );

            //  act
            var screams = await screamsManager.GetScreamsAsync(INDEX, SIZE);

            //  assert
            Assert.Equal(screams.Index, INDEX);
            Assert.Equal(screams.Size, SIZE);
            Assert.Equal(screams.TotalSize, FakerScreamModels.Count);
            Assert.Equal(screams.TotalPage, TOTAL_PAGE);
            Assert.Equal(screams.List.Count, SIZE);
        }
示例#12
0
        public async void GetScreams_ThirdPageIndexAndSize_ReturnEmptyList()
        {
            //  arrange
            const int INDEX       = 3;
            const int SIZE        = 10;
            const int TOTAL_PAGE  = 2;
            const int RETURN_SIZE = 0;

            Screams.Screams.IScreamsManager screamsManager = new Screams.Screams.DefaultScreamsManager
                                                             (
                _db, redisConn
                                                             );

            //  act
            var screams = await screamsManager.GetScreamsAsync(INDEX, SIZE);

            //  assert
            Assert.Equal(screams.Index, INDEX);
            Assert.Equal(screams.Size, SIZE);
            Assert.Equal(screams.TotalSize, FakerScreamModels.Count);
            Assert.Equal(screams.TotalPage, TOTAL_PAGE);
            Assert.Equal(screams.List.Count, RETURN_SIZE);
        }
示例#13
0
        public async void GetComments_RightIndexAndSize_ReturnPaging(int index, int size)
        {
            //  arrange
            const int SCREAM_ID         = 5;
            const int EXPECT_TOTAL_SIZE = 25;
            const int EXPECT_TOTAL_PAGE = 3;

            CreateComments(SCREAM_ID);

            ICommentsManager commentsManager = new DefaultCommentsManager(_db);

            Screams.Screams.IScreamsManager screamsManager = new Screams.Screams.DefaultScreamsManager(_db, redisConn);
            var scream = await screamsManager.GetScreamAsync(SCREAM_ID);

            //  act
            var paging = await commentsManager.GetCommentsAsync(scream, index, size);

            //  assert
            Assert.Equal(index, paging.Index);
            Assert.Equal(size, paging.Size);
            Assert.Equal(EXPECT_TOTAL_SIZE, paging.TotalSize);
            Assert.Equal(EXPECT_TOTAL_PAGE, paging.TotalPage);
            Assert.Equal(size, paging.List.Count);
        }
示例#14
0
        public async void PostScream_EmptyContentData_ReturnUnsuccessful()
        {
            //  arrange
            const int    ERRORS_COUNT   = 1;
            const string ERRORS_CONTENT = "内容不能为空";

            Screams.Screams.IScreamsManager screamsManager = new Screams.Screams.DefaultScreamsManager(
                _db, redisConn);
            Screams.Models.NewScreamtion fakerNewScream = new Screams.Models.NewScreamtion
            {
                AuthorId = FakeUser.Id,
                Content  = ""
            };

            //  act
            var result = await screamsManager.PostScreamAsync(fakerNewScream);

            //  assert
            Assert.False(result.Succeeded);
            Assert.Equal(result.Data, NOT_DATA);
            Assert.NotNull(result.Errors);
            Assert.Equal(result.Errors.Count, ERRORS_COUNT);
            Assert.Equal(result.Errors[0], ERRORS_CONTENT);
        }
示例#15
0
        public async void PostComment_EmptyContent_ReturnUnsuccessful()
        {
            //  arrange
            const int    ERROR_COUNT = 1;
            const string ERROR       = "评论内容不能为空";

            Screams.Screams.IScreamsManager mockScreamsManager = new Screams.Screams.DefaultScreamsManager(_db, redisConn);

            var mockScream = await mockScreamsManager.GetScreamAsync(SCREAM_ID);

            Screams.Models.NewComment fakerComment = new Screams.Models.NewComment
            {
                Author  = FakeUser,
                Content = ""
            };

            //  act
            var result = await mockScream.PostCommentAsync(fakerComment);

            //  assert
            Assert.False(result.Succeeded);
            Assert.Equal(result.Errors.Count, ERROR_COUNT);
            Assert.Equal(result.Errors.First(), ERROR);
        }