Ejemplo n.º 1
0
        public async Task GivenValidRequest_UpdatesTheUser()
        {
            // Arrange
            _currentUserMock.Setup(x => x.IsAuthenticated).Returns(true);
            _currentUserMock.Setup(x => x.UserId).Returns("HAMZA");
            _currentUserMock.Setup(x => x.Username).Returns("hrahimy");
            var command = new EditShowcaseProfileCommand
            {
                ProfileId             = "HAMZA",
                NewProfileDescription = "Dummy Description",
                NewProfileUsername    = "******",
                NewThumbnailFileId    = "hamzaProfileImage1",
                NewProfileName        = "Hamza Rahimy"
            };

            // Act
            await _sut.Handle(command, CancellationToken.None);

            // Assert
            _userManagerMock.Verify(m => m.EditUserAsync(It.Is <string>(c => c == _currentUserMock.Object.UserId)
                                                         , It.Is <string>(c => c == command.NewProfileUsername)
                                                         , It.Is <string>(c => c == command.NewProfileName)
                                                         , It.Is <string>(c => c == command.NewProfileDescription))
                                    , Times.Once);
            var profile = await _context.Profiles.FindAsync(_currentUserMock.Object.UserId);

            Assert.Equal(profile.LastModifiedOn, _dateTimeMock.Object.Now);
            Assert.Equal(profile.LastModifiedBy, _currentUserMock.Object.UserId);
        }
Ejemplo n.º 2
0
        public async Task GivenNonExistingProfileImage_ThrowsNotFoundException()
        {
            _currentUserMock.Setup(x => x.IsAuthenticated).Returns(true);
            _currentUserMock.Setup(x => x.UserId).Returns("HAMZA");
            var nonExistantFileId = new Guid().ToString();
            var command           = new EditShowcaseProfileCommand
            {
                ProfileId             = "HAMZA",
                NewProfileDescription = "Dummy description",
                NewProfileUsername    = "******",
                NewThumbnailFileId    = nonExistantFileId
            };

            // Assert
            await Assert.ThrowsAsync <NotFoundException>(() => _sut.Handle(command, CancellationToken.None));
        }
Ejemplo n.º 3
0
        public async Task GivenNonUniqueUsername_ThrowsResourceConflictException()
        {
            _currentUserMock.Setup(x => x.IsAuthenticated).Returns(true);
            _currentUserMock.Setup(x => x.UserId).Returns("HAMZA");
            // Arrange
            var command = new EditShowcaseProfileCommand
            {
                ProfileId             = "HAMZA",
                NewProfileDescription = "Dummy Description",
                NewProfileUsername    = "******",
                NewThumbnailFileId    = "hamzaProfileImage1"
            };

            // Assert
            await Assert.ThrowsAsync <ResourceConflictException>(() => _sut.Handle(command, CancellationToken.None));

            var profile = await _context.Profiles.FindAsync("HAMZA");

            Assert.False(profile.LastModifiedOn == DateTime.Now);
        }
Ejemplo n.º 4
0
        public async Task GivenRequesterAndTargetProfileIdMismatch_ThrowsForbiddenException()
        {
            // Arrange
            _currentUserMock.Setup(x => x.IsAuthenticated).Returns(true);
            _currentUserMock.Setup(x => x.UserId).Returns("HRAH");
            _currentUserMock.Setup(x => x.Username).Returns("hrahimy");
            var command = new EditShowcaseProfileCommand
            {
                ProfileId             = "HAMZA",
                NewProfileDescription = "Dummy Description",
                NewProfileUsername    = "******",
                NewThumbnailFileId    = "hamzaProfileImage1"
            };

            // Assert
            await Assert.ThrowsAsync <ForbiddenException>(() => _sut.Handle(command, CancellationToken.None));

            var profile = await _context.Profiles.FindAsync("HAMZA");

            Assert.False(profile.LastModifiedOn == DateTime.Now);
        }