public void Get_By_Id_Returns_Not_Found_For_Invalid_Id()
        {
            var userProfiles = new List <UserProfile>();

            var repo       = new InMemoryUserProfileRepository(userProfiles);
            var controller = new UserProfileController(repo);

            var result = controller.Get(1);

            Assert.IsType <NotFoundResult>(result);
        }
        public void Get_By_Id_Returns_NotFound_When_Given_Unknown_id()
        {
            // Arrange
            var userProfiles = new List <UserProfile>(); //no users
            var repo         = new InMemoryUserProfileRepository(userProfiles);
            var controller   = new UserProfileController(repo);

            //Act
            var result = controller.Get(1);

            //Assert
            Assert.IsType <NotFoundResult>(result);
        }
        public void Get_Returns_All_UserProfiles()
        {
            var userProfileCount = 20;
            var userProfiles     = CreateTestUserProfiles(userProfileCount);

            var repo       = new InMemoryUserProfileRepository(userProfiles);
            var controller = new UserProfileController(repo);

            var result = controller.Get();

            var okResult           = Assert.IsType <OkObjectResult>(result);
            var actualUserProfiles = Assert.IsType <List <UserProfile> >(okResult.Value);

            Assert.Equal(userProfileCount, actualUserProfiles.Count);
            Assert.Equal(userProfiles, actualUserProfiles);
        }
        public void Get_By_Id_Returns_Correct_UserProfile()
        {
            var testUserId   = 99;
            var userProfiles = CreateTestUserProfiles(5);

            userProfiles[0].Id = testUserId;

            var repo       = new InMemoryUserProfileRepository(userProfiles);
            var controller = new UserProfileController(repo);

            var result = controller.Get(testUserId);

            var okResult          = Assert.IsType <OkObjectResult>(result);
            var actualUserProfile = Assert.IsType <UserProfile>(okResult.Value);

            Assert.Equal(testUserId, actualUserProfile.Id);
        }
        public void GetByIdSuccess()
        {
            var mockService = new Mock <UserProfileService>();

            mockService.Setup(x => x.GetById(1))
            .Returns(new UserProfile {
                Id = 1
            });

            var controller = new UserProfileController(mockService.Object);


            var actionResult = controller.Get(1);

            Assert.IsNotNull(actionResult);
            Assert.IsNotNull(actionResult.Value);
            Assert.AreEqual(1, actionResult.Value.Id);
        }
        public void Get_By_Id_Returns_UserProfile_With_Given_Id()
        {
            // Arrange
            var testUserProfileId = 99;
            var userProfiles      = CreateTestUserProfiles(5);

            userProfiles[0].Id = testUserProfileId; // Make sure we know the Id of one of the userProfiles

            var repo       = new InMemoryUserProfileRepository(userProfiles);
            var controller = new UserProfileController(repo);

            // Act
            var result = controller.Get(testUserProfileId);

            // Assert
            var okResult          = Assert.IsType <OkObjectResult>(result);
            var actualUserProfile = Assert.IsType <UserProfile>(okResult.Value);

            Assert.Equal(testUserProfileId, actualUserProfile.Id);
        }
        public async Task Get_ReturnsUserProfileFromMatchService()
        {
            var userId          = Guid.NewGuid();
            var stubUserProfile = new Models.User()
            {
                Id = userId
            };
            var mockUserService = new Mock <IUserService>();

            mockUserService.Setup(x => x.GetAsync(userId)).Returns(Task.FromResult(stubUserProfile));

            var controller = new UserProfileController(mockUserService.Object);

            var claims = new List <Claim>
            {
                new Claim(ClaimTypes.NameIdentifier, userId.ToString())
            };
            var identity        = new ClaimsIdentity(claims, "TestAuthType");
            var claimsPrincipal = new ClaimsPrincipal(identity);

            var contextStub = new DefaultHttpContext
            {
                User = claimsPrincipal
            };

            controller.ControllerContext = new ControllerContext
            {
                HttpContext = contextStub
            };

            //Act
            var result = await controller.Get();

            //Assert
            Assert.Equal(stubUserProfile, result.Value);
        }