content: /*
   * Copyright (C) 2024 Oleksii PELYKH
   *
   * This file is a part of the PCRE4J. The PCRE4J is free software: you can redistribute it and/or modify it under the
   * terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the
   * License, or (at your option) any later version.
   *
   * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
   * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
   * details.
   *
   * You should have received a copy of the GNU Lesser General Public License along with this program. If not, see
   * <https://www.gnu.org/licenses/>.
   */
  package org.pcre4j;
  
  import org.junit.jupiter.params.ParameterizedTest;
  import org.junit.jupiter.params.provider.Arguments;
  import org.junit.jupiter.params.provider.MethodSource;
  import org.pcre4j.api.IPcre2;
  
  import java.util.stream.Stream;
  
  import static org.junit.jupiter.api.Assertions.assertThrows;
  
  public class Pcre2CodeTests {
  
      private static final IPcre2 JNA_PCRE2 = new org.pcre4j.jna.Pcre2();
      private static final IPcre2 FFM_PCRE2 = new org.pcre4j.ffm.Pcre2();
  
      private static Stream<Arguments> parameters() {
          return Stream.of(
                  Arguments.of(JNA_PCRE2),
                  Arguments.of(FFM_PCRE2)
          );
      }
  
      @ParameterizedTest
      @MethodSource("parameters")
      void badPattern(IPcre2 api) {
          assertThrows(Pcre2CompileError.class, () -> {
              new Pcre2Code(api, "?");
          });
      }
  
  }
  