Пример #1
0
        public void addFavouriteVideo(NewFavouriteVideoDTO newFav)
        {
            // Make sure the passed down object does not contain null variables
            if (newFav.username == null ||
                newFav.password == null ||
                newFav.email == null ||
                newFav.fullName == null ||
                newFav.accessToken == null ||
                newFav.videoId == null)
            {
                throw new InvalidParametersException("All parameters of NewFavouriteVideoDTO must be set");
            }
            // if userId is null the user does not exist and we throw an exception
            int?userId = _mapper.getUserId(newFav.username);

            if (userId == null)
            {
                throw new InvalidParametersException("User does not exist in database");
            }

            // Make sure we are Authenticated using a authentication service
            if (!_tokenService.validateUserToken(newFav.accessToken, (int)userId))
            {
                throw new InvalidParametersException("To favourite a video you must use a valid token and a valid username");
            }


            // Datalayer call to add favourite video to the favourites
            _mapper.addFavourite((int)userId, newFav.videoId);
        }
Пример #2
0
        public void addFavouriteVideoTest()
        {
            MockTokenService   tokenService = new MockTokenService();
            MockUserDataMapper mockMapper   = new MockUserDataMapper();
            IUserService       _service     = new UserService(tokenService, mockMapper);


            mockMapper.Users.Add(new User {
                id       = 1,
                username = "******",
                email    = "*****@*****.**",
                password = "******",
                fullName = "Janus Þór"
            });
            Video v = new Video {
                id        = 1,
                title     = "testing",
                source    = "testing",
                creator   = 1,
                channelId = 0
            };

            mockMapper.Videos.Add(v);
            var vDTO = new VideoDTO {
                id        = 1,
                title     = "testing",
                source    = "testing",
                creator   = 1,
                channelId = 0
            };
            var authDTO = new NewFavouriteVideoDTO {
                username    = "******",
                email       = "*****@*****.**",
                password    = "******",
                fullName    = "Janus Þór",
                accessToken = "1",
                videoId     = vDTO.id
            };

            _service.addFavouriteVideo(authDTO);

            Assert.Equal(1, mockMapper.Favourites.Count());
            Assert.Equal(1, mockMapper.Favourites[0].userId);
            Assert.Equal(1, mockMapper.Favourites[0].videoId);
        }
Пример #3
0
        public IActionResult addFavourite(NewFavouriteVideoDTO newFavVid)
        {
            string accessToken = Request.Headers["Authorization"];

            newFavVid.accessToken = accessToken;
            // Basic API -> Service Cals
            // Receive Object Through Post/Get Request
            // Pass Object Too Service Layer
            // Catch Defined Errors Else Return 2xx Message
            try
            {
                _userService.addFavouriteVideo(newFavVid);

                return(Ok());
            }
            catch (InvalidParametersException e) {
                return(BadRequest(e.Message));
            }
            catch (DuplicateException e) {
                return(new BadRequestObjectResult(e.Message));
            }
        }
Пример #4
0
        public void getFavVidsTest()
        {
            MockTokenService   tokenService = new MockTokenService();
            MockUserDataMapper mockMapper   = new MockUserDataMapper();
            IUserService       _service     = new UserService(tokenService, mockMapper);


            mockMapper.Users.Add(new User {
                id       = 1,
                username = "******",
                email    = "*****@*****.**",
                password = "******",
                fullName = "Janus Þór"
            });

            Video v1 = new Video {
                id        = 1,
                title     = "testing",
                source    = "testing",
                creator   = 1,
                channelId = 0
            };
            Video v2 = new Video {
                id        = 2,
                title     = "testing2",
                source    = "testing2",
                creator   = 1,
                channelId = 0
            };

            Video v3 = new Video {
                id        = 3,
                title     = "testing3",
                source    = "testing3",
                creator   = 1,
                channelId = 0
            };

            mockMapper.Videos.Add(v1);
            mockMapper.Videos.Add(v2);
            mockMapper.Videos.Add(v3);

            var vDTO1 = new VideoDTO {
                id        = 1,
                title     = "testing",
                source    = "testing",
                creator   = 1,
                channelId = 0
            };
            var vDTO2 = new VideoDTO {
                id        = 2,
                title     = "testing2",
                source    = "testing2",
                creator   = 1,
                channelId = 0
            };
            var vDTO3 = new VideoDTO {
                id        = 3,
                title     = "testing3",
                source    = "testing3",
                creator   = 1,
                channelId = 0
            };

            var authDTO = new NewFavouriteVideoDTO {
                username    = "******",
                email       = "*****@*****.**",
                password    = "******",
                fullName    = "Janus Þór",
                accessToken = "1",
                videoId     = vDTO1.id
            };

            _service.addFavouriteVideo(authDTO);
            authDTO.videoId += 1;
            _service.addFavouriteVideo(authDTO);
            authDTO.videoId += 1;
            _service.addFavouriteVideo(authDTO);


            List <VideoDTO> verifyData = (from v in mockMapper.Videos
                                          select new VideoDTO {
                id = v.id,
                title = v.title,
                source = v.source,
                creator = v.creator,
                channelId = v.channelId
            }).ToList();
            List <VideoDTO> testData = _service.getFavouriteVideos(authDTO);

            Assert.Equal(mockMapper.Favourites.Count(), 3);

            Assert.Equal(verifyData.Count(), testData.Count());
            for (int i = 0; i < 0; i++)
            {
                Assert.Equal(verifyData[i].id, testData[i].id);
                Assert.Equal(verifyData[i].title, testData[i].title);
                Assert.Equal(verifyData[i].source, testData[i].source);
                Assert.Equal(verifyData[i].creator, testData[i].creator);
                Assert.Equal(verifyData[i].channelId, testData[i].channelId);
            }
        }