public async Task ValidateAsync_WithInvalidStoreId_ShouldThrowDomainException()
        {
            // Arrange
            var local          = new LocalFixture();
            var service        = local.CreateService();
            var availabilities = local.CreateValidAvailabilities();

            var storeIds = availabilities.Select(av => av.StoreId);

            local.StoreRepositoryMock.SetupFindByAsync(storeIds, Enumerable.Empty <IStore>());

            // Act
            Func <Task> function = async() => await service.ValidateAsync(availabilities, default);

            // Assert
            using (new AssertionScope())
            {
                (await function.Should().ThrowAsync <DomainException>())
                .Where(ex => ex.Reason.ErrorCode == ErrorReasonCode.StoreNotFound);
            }
        }
        public async Task ValidateAsync_WithValidData_ShouldNotThrow()
        {
            // Arrange
            var local          = new LocalFixture();
            var service        = local.CreateService();
            var availabilities = local.CreateValidAvailabilities().ToList();

            var storeIds = availabilities.Select(av => av.StoreId);
            var stores   = local.CreateValidStores(availabilities);

            local.StoreRepositoryMock.SetupFindByAsync(storeIds, stores);

            // Act
            Func <Task> function = async() => await service.ValidateAsync(availabilities, default);

            // Assert
            using (new AssertionScope())
            {
                await function.Should().NotThrowAsync();
            }
        }