public async Task Handle_Success()
        {
            // Arrange
            var request = new GetEventEditDetails(validEventId, outputPort);

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

            // Assert
            result.IsSuccessful.Should().BeTrue();
            A.CallTo(() => outputPort.Output(A <EventEditDetailsOutput> ._))
            .MustHaveHappenedOnceExactly();
        }
        public async Task Handle_InvalidEventId_MustReturnNew()
        {
            // Arrange
            var request = new GetEventEditDetails(new Guid("C2B9BB52-BFB0-4B43-965C-C23B4598722B"), outputPort);

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

            // Assert
            result.IsSuccessful.Should().BeTrue();
            A.CallTo(() => outputPort.Output(A <EventEditDetailsOutput> ._))
            .MustHaveHappenedOnceExactly();
        }
        public async Task Handle_InvalidDiverId_MustFail()
        {
            // Arrange
            A.CallTo(() => currentUser.GetCurrentDiverAsync())
            .ReturnsLazily(() => Task.FromResult <Diver>(null));
            var request = new GetEventEditDetails(validEventId, outputPort);

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

            // Assert
            result.IsSuccessful.Should().BeFalse();
            result.ResultCategory.Should().Be(ResultCategory.NotFound);
            A.CallTo(() => outputPort.Output(A <EventEditDetailsOutput> ._))
            .MustNotHaveHappened();
        }
        public async Task Handle_NotOrganisatorUser_MustFail()
        {
            // Arrange
            var request = new GetEventEditDetails(validEventId, outputPort);

            A.CallTo(() => currentUser.GetCurrentDiverAsync())
            .ReturnsLazily(() => Task.FromResult(
                               new Diver
            {
                Id       = new Guid("F9D10AB9-A076-448A-9391-755122FC01B8"),
                Fullname = "Jane Doe",
            }));

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

            // Assert
            result.IsSuccessful.Should().BeFalse();
            result.ResultCategory.Should().Be(ResultCategory.AccessDenied);
            A.CallTo(() => outputPort.Output(A <EventEditDetailsOutput> ._))
            .MustNotHaveHappened();
        }