Exemplo n.º 1
0
        public async Task <IActionResult> PostNewScreamAsync([FromBody] Screams.Models.NewScreamtion model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userModel = await _accountManager.GetUserAsync(User);

            if (userModel == null)
            {
                return(Unauthorized());
            }

            model.AuthorId = userModel.Model.Id;

            var result = await _screamsManager.PostScreamAsync(model);

            if (result.Succeeded)
            {
                return(Created("", result.Data));
            }

            ParseModelStateErrors(result.Errors);
            return(BadRequest(ModelState));
        }
Exemplo n.º 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);
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 4
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);
        }