public async Task Create_MissingName_BadRequestException(string name)
        {
            await ExecuteWithDb((db) =>
            {
                var handler = new CreateLibraryCommandHandler(
                    MockMediator.Object,
                    db,
                    Mapper,
                    MockAuthorizationService.Object);

                var dto = SetupLibraryDto();

                return(handler.Handle(new CreateLibraryCommand()
                {
                    Library = dto
                }, default));
            });
        }
        public async Task Create_Valid_PublishesLibraryCreatedDomainEvent()
        {
            await ExecuteWithDb((db) =>
            {
                var handler = new CreateLibraryCommandHandler(
                    MockMediator.Object,
                    db,
                    Mapper,
                    MockAuthorizationService.Object);

                var dto = SetupLibraryDto(RandomFactory.GetLibraryName());

                return(handler.Handle(new CreateLibraryCommand()
                {
                    Library = dto
                }, default));
            }, (result, db) =>
            {
                MockMediator.Verify(x => x.Publish(It.IsAny <LibraryCreatedDomainEvent>(), It.IsAny <CancellationToken>()), Times.Once);
            });
        }
        public async Task Create_MissingAddress_NullReferenceException()
        {
            await ExecuteWithDb((db) =>
            {
                var handler = new CreateLibraryCommandHandler(
                    MockMediator.Object,
                    db,
                    Mapper,
                    MockAuthorizationService.Object);

                var dto = new LibraryDto()
                {
                    Name    = RandomFactory.GetLibraryName(),
                    Address = null
                };

                return(handler.Handle(new CreateLibraryCommand()
                {
                    Library = dto
                }, default));
            });
        }