//Show a form for avatar editting.
        private void btnEditAvatar_Click(object sender, RoutedEventArgs e)
        {
            int        id   = Convert.ToInt32((sender as Button).Tag);
            EditAvatar form = new EditAvatar(_proxy, id);

            form.ShowDialog();
            SetAvatar(id, true);
        }
Example #2
0
        public async Task Handle_Success()
        {
            // Arrange
            var request = new EditAvatar(DiverFactory.JohnDoeDiverId, validAvatarFile);

            // Act
            var useCaseResult = await interactor.Handle(request, CancellationToken.None);

            // Assert
            useCaseResult.IsSuccessful.Should().BeTrue();
            A.CallTo(() => avatarStore.StoreAvatarAsync(
                         DiverFactory.JohnDoeFirstName,
                         A <string> ._,
                         A <string> ._,
                         A <Stream> ._)).MustHaveHappenedOnceExactly();
        }
Example #3
0
        public async Task Handle_DiverNotFound_MustReturnNotFound()
        {
            // Arrange
            var request = new EditAvatar(DiverFactory.JaneDoeDiverId, validAvatarFile);

            // Act
            var useCaseResult = await interactor.Handle(request, CancellationToken.None);

            // Assert
            useCaseResult.IsSuccessful.Should().BeFalse();
            useCaseResult.ResultCategory.Should().Be(ResultCategory.NotFound);
            A.CallTo(() => avatarStore.StoreAvatarAsync(
                         DiverFactory.JohnDoeFirstName,
                         A <string> ._,
                         A <string> ._,
                         A <Stream> ._)).MustNotHaveHappened();
        }
Example #4
0
        public async Task Handle_NotCurrentDiverAndNotAdmin_MustReturnAccessDenied()
        {
            // Arrange
            var request = new EditAvatar(DiverFactory.JaneDoeDiverId, validAvatarFile);

            A.CallTo(() => diverRepository.FindByIdAsync(DiverFactory.JaneDoeDiverId))
            .ReturnsLazily(() => Task.FromResult(DiverFactory.CreateJaneDoe()));

            // Act
            var useCaseResult = await interactor.Handle(request, CancellationToken.None);

            // Assert
            useCaseResult.IsSuccessful.Should().BeFalse();
            useCaseResult.ResultCategory.Should().Be(ResultCategory.AccessDenied);
            A.CallTo(() => avatarStore.StoreAvatarAsync(
                         DiverFactory.JohnDoeFirstName,
                         A <string> ._,
                         A <string> ._,
                         A <Stream> ._)).MustNotHaveHappened();
        }
Example #5
0
        public async Task Handle_NotCurrentDiverButAdmin_MustSucceed()
        {
            // Arrange
            var request = new EditAvatar(DiverFactory.JaneDoeDiverId, validAvatarFile);

            A.CallTo(() => diverRepository.FindByIdAsync(DiverFactory.JaneDoeDiverId))
            .ReturnsLazily(() => Task.FromResult(DiverFactory.CreateJaneDoe()));
            A.CallTo(() => currentUser.GetIsDiverOrAdmin(A <Guid> ._))
            .ReturnsLazily(() => Task.FromResult(true));

            // Act
            var useCaseResult = await interactor.Handle(request, CancellationToken.None);

            // Assert
            useCaseResult.IsSuccessful.Should().BeTrue();
            A.CallTo(() => avatarStore.StoreAvatarAsync(
                         DiverFactory.JaneDoeFirstName,
                         A <string> ._,
                         A <string> ._,
                         A <Stream> ._)).MustHaveHappenedOnceExactly();
        }