public async Task Handle_GivenNullRequest_ShouldThrowArgumentNullException()
        {
            // Arrange
            var sut = new DropTeamTableResultCommandHandler(It.IsAny <IDeletableEntityRepository <TeamTableResult> >());

            // Act & Assert
            await Should.ThrowAsync <ArgumentNullException>(sut.Handle(null, It.IsAny <CancellationToken>()));
        }
        public async Task Handle_GivenInvalidRequest_ThrowNotFoundException()
        {
            // Arrange
            var command = new DropTeamTableResultCommand {
                TeamTableResultId = 1134
            };
            var sut = new DropTeamTableResultCommandHandler(this.deletableEntityRepository);

            // Act & Assert
            await Should.ThrowAsync <NotFoundException>(sut.Handle(command, It.IsAny <CancellationToken>()));
        }
        public async Task Handle_GivenValidRequest_ShouldDropTeam()
        {
            // Arrange
            var command = new DropTeamTableResultCommand {
                TeamTableResultId = 1
            };
            var sut = new DropTeamTableResultCommandHandler(this.deletableEntityRepository);

            // Act
            var affectedRows = await sut.Handle(command, It.IsAny <CancellationToken>());

            // Assert
            affectedRows.ShouldBe(1);

            var updatedEntity = this.deletableEntityRepository.AllAsNoTracking().SingleOrDefault(x => x.Id == 1);

            updatedEntity.IsDropped.ShouldBe(true);
        }