예제 #1
0
        public async Task InsertKwet_InvalidJWT_ThrowsException()
        {
            var          userGuid  = Guid.NewGuid();
            var          timeStamp = DateTime.Now;
            const string jwt       = "";

            var newkwet = new NewKwetModel()
            {
                Id       = userGuid.ToString(),
                Message  = "This is my placed Kwet",
                UserName = "******"
            };

            var returnKwet = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my placed Kwet",
                TimeStamp = timeStamp,
                Likes     = new List <Likes>()
            };

            _jwtIdClaimReaderHelper.Setup(x => x.getUserIdFromToken(jwt))
            .Returns(userGuid);
            _kwetService.Setup(x => x.InsertKwet(It.IsAny <NewKwetModel>(), jwt))
            .Throws <JwtInvalidException>();
            var result = await _kwetController.Insert(newkwet, jwt) as ObjectResult;

            Assert.IsType <BadRequestObjectResult>(result);
        }
예제 #2
0
        public async Task GetKwet_GetSuccess_ReturnKwetList()
        {
            var userGuid  = Guid.NewGuid();
            var timeStamp = DateTime.Now;

            var kwet1 = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my placed Kwet",
                TimeStamp = timeStamp,
                Likes     = new List <Likes>()
            };
            var kwet2 = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my other placed Kwet",
                TimeStamp = timeStamp.AddHours(1),
                Likes     = new List <Likes>()
            };
            var kwets = new List <Kwet>();

            kwets.Add(kwet1);
            kwets.Add(kwet2);

            _kwetService.Setup(x => x.Get()).ReturnsAsync(kwets);
            var result = await _kwetController.Get() as ObjectResult;

            Assert.IsType <OkObjectResult>(result);
            Assert.Equal(kwets, ((List <Kwet>)result.Value));
        }
예제 #3
0
        public async Task CreateNewKwet_PlaceSuccess_ReturnsPlacedKwet()
        {
            var userGuid  = Guid.NewGuid();
            var timeStamp = DateTime.Now;

            var kwet1 = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my placed Kwet",
                TimeStamp = timeStamp,
                Likes     = new List <Likes>()
            };
            var kwet2 = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my other placed Kwet",
                TimeStamp = timeStamp.AddHours(1),
                Likes     = new List <Likes>()
            };

            var result1 = await _kwetRepository.Create(kwet1);

            var result2 = await _kwetRepository.Create(kwet2);

            Assert.NotNull(result1);
            Assert.NotNull(result2);
            Assert.NotEqual(result1.TimeStamp, result2.TimeStamp);
            Assert.Equal(kwet1.Likes, result2.Likes);
            Assert.Equal(kwet2.UserId, result2.UserId);
        }
예제 #4
0
        public async Task InsertKwet_ValidKwet_ReturnsKwet()
        {
            var          userGuid  = Guid.NewGuid();
            var          timeStamp = DateTime.Now;
            const string jwt       = "";

            var newkwet = new NewKwetModel()
            {
                Id       = userGuid.ToString(),
                Message  = "This is my placed Kwet",
                UserName = "******"
            };

            var returnKwet = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my placed Kwet",
                TimeStamp = timeStamp,
                Likes     = new List <Likes>()
            };

            _jwtIdClaimReaderHelper.Setup(x => x.getUserIdFromToken(jwt)).Returns(userGuid);
            _kwetService.Setup(x => x.InsertKwet(It.IsAny <NewKwetModel>(), jwt)).ReturnsAsync(returnKwet);
            var result = await _kwetController.Insert(newkwet, jwt) as ObjectResult;

            Assert.IsType <OkObjectResult>(result);
            Assert.Equal(returnKwet.KwetId, ((Kwet)result.Value).KwetId);
        }
예제 #5
0
        public async Task LikeKwet_UpdateSuccess_ReturnsLikedKwet()
        {
            var userGuid  = Guid.NewGuid();
            var likeUser  = Guid.NewGuid();
            var timeStamp = DateTime.Now;

            var kwet1 = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my placed Kwet",
                TimeStamp = timeStamp,
                Likes     = new List <Likes>()
            };
            var like = new Likes()
            {
                Name   = "LikeUser",
                userId = likeUser
            };

            var kwetWithLikes = kwet1;

            kwetWithLikes.Likes.Add(like);

            await _kwetRepository.Create(kwet1);

            var result = await _kwetRepository.Update(kwetWithLikes);

            Assert.Single(result.Likes);
            Assert.Equal(result.Likes[0].Name, like.Name);
            Assert.Equal(result.Likes[0].userId, like.userId);
        }
예제 #6
0
        public async Task UnlikeKwet_UnLikeSuccess_ReturnsUnlikedKwet()
        {
            var userGuid  = Guid.NewGuid();
            var likeUser  = Guid.NewGuid();
            var timeStamp = DateTime.Now;

            var kwet1 = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my placed Kwet",
                TimeStamp = timeStamp,
                Likes     = new List <Likes>()
            };
            var like = new Likes()
            {
                Name   = "LikeUser",
                userId = likeUser
            };

            kwet1.Likes.Add(like);

            var kwetWithoutLikes = await _kwetRepository.Create(kwet1);

            kwetWithoutLikes.Likes.Remove(like);

            var result = await _kwetRepository.Update(kwetWithoutLikes);

            Assert.Empty(result.Likes);
        }
예제 #7
0
        public async Task GetKwetsById_GetSuccess_ReturnsKwetList()
        {
            var userGuid  = Guid.NewGuid();
            var timeStamp = DateTime.Now;

            var kwet1 = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my placed Kwet",
                TimeStamp = timeStamp,
                Likes     = new List <Likes>()
            };
            var kwet2 = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = new Guid(),
                UserName  = "******",
                Message   = "This is my other placed Kwet",
                TimeStamp = timeStamp.AddHours(1),
                Likes     = new List <Likes>()
            };

            await _kwetRepository.Create(kwet1);

            await _kwetRepository.Create(kwet2);

            var result = await _kwetRepository.GetByUserId(userGuid);

            Assert.Single(result);
        }
예제 #8
0
        public async Task InsertKwets_InvalidJWT_ThrowsException()
        {
            var          userGuid  = Guid.NewGuid();
            var          timeStamp = DateTime.Now;
            const string jwt       = "";

            var newkwet = new NewKwetModel()
            {
                Id       = userGuid.ToString(),
                Message  = "This is my placed Kwet",
                UserName = "******"
            };

            var returnKwet = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my placed Kwet",
                TimeStamp = timeStamp,
                Likes     = new List <Likes>()
            };

            _repository.Setup(x => x.Create(It.IsAny <Kwet>())).ReturnsAsync(returnKwet);
            _jwtIdClaimReaderHelper.Setup(x => x.getUserIdFromToken(jwt)).Returns(Guid.Empty);

            var result = await Assert.ThrowsAsync <JwtInvalidException>(() =>
                                                                        _kwetService.InsertKwet(newkwet, jwt));

            Assert.IsType <JwtInvalidException>(result);
        }
예제 #9
0
        public async Task InsertKwets_ValidKwet_ReturnsPlacedKwet()
        {
            var          userGuid  = Guid.NewGuid();
            var          timeStamp = DateTime.Now;
            const string jwt       = "";

            var newkwet = new NewKwetModel()
            {
                Id       = userGuid.ToString(),
                Message  = "This is my placed Kwet",
                UserName = "******"
            };

            var returnKwet = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my placed Kwet",
                TimeStamp = timeStamp,
                Likes     = new List <Likes>()
            };

            _repository.Setup(x => x.Create(It.IsAny <Kwet>())).ReturnsAsync(returnKwet);
            _jwtIdClaimReaderHelper.Setup(x => x.getUserIdFromToken(jwt)).Returns(userGuid);

            var result = await _kwetService.InsertKwet(newkwet, jwt);

            Assert.Equal(returnKwet.Message, result.Message);
            Assert.Equal(returnKwet.KwetId, result.KwetId);
        }
예제 #10
0
        public async Task <Kwet> InsertKwet(NewKwetModel kwet, string token)
        {
            if (Guid.Parse(kwet.Id) != _jwtIdClaimReaderHelper.getUserIdFromToken(token))
            {
                throw new JwtInvalidException();
            }
            var newKwet = new Kwet
            {
                KwetId    = new Guid(),
                UserId    = Guid.Parse(kwet.Id),
                UserName  = kwet.UserName,
                Message   = kwet.Message,
                TimeStamp = DateTime.Now,
                Likes     = new List <Likes>()
            };

            return(await _repository.Create(newKwet));
        }
예제 #11
0
        public async Task LikeKwet_SuccessfullLike_ReturnsKwetWithLikes()
        {
            var userGuid  = Guid.NewGuid();
            var kwetGuid  = Guid.NewGuid();
            var timeStamp = DateTime.Now;

            var likedKwet = new Kwet()
            {
                KwetId    = kwetGuid,
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my placed Kwet",
                TimeStamp = timeStamp,
                Likes     = new List <Likes>()
            };

            var likemodel = new LikeModel()
            {
                Id       = userGuid,
                KwetId   = kwetGuid,
                UserName = "******"
            };
            var returnKwet = likedKwet;

            returnKwet.Likes.Add(new Likes()
            {
                userId = likemodel.Id, Name = likemodel.UserName
            });

            _repository.Setup(x => x.Get(likemodel.KwetId)).ReturnsAsync(likedKwet);
            _repository.Setup(x => x.Update(It.IsAny <Kwet>())).ReturnsAsync(returnKwet);
            var result = await _kwetService.LikeKwet(likemodel);

            Assert.NotEmpty(result.Likes);
            Assert.Equal(returnKwet.Likes, result.Likes);
            Assert.Equal(likemodel.KwetId, result.KwetId);
        }
예제 #12
0
        public async Task <Kwet> Update(Kwet likedKwet)
        {
            await _kwets.ReplaceOneAsync(kwet => kwet.KwetId == likedKwet.KwetId, likedKwet);

            return(likedKwet);
        }
예제 #13
0
        public async Task <Kwet> Create(Kwet kwet)
        {
            await _kwets.InsertOneAsync(kwet);

            return(kwet);
        }