content: /*
   *  Copyright 2016-2024 Qameta Software Inc
   *
   *  Licensed under the Apache License, Version 2.0 (the "License");
   *  you may not use this file except in compliance with the License.
   *  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   *  Unless required by applicable law or agreed to in writing, software
   *  distributed under the License is distributed on an "AS IS" BASIS,
   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *  See the License for the specific language governing permissions and
   *  limitations under the License.
   */
  package io.qameta.allure;
  
  import io.qameta.allure.model.TestResult;
  import io.qameta.allure.model.TestResultContainer;
  
  import java.io.InputStream;
  
  /**
   * @author charlie (Dmitry Baev).
   * @since 1.0-BETA2
   */
  public interface AllureResultsWriter {
  
      /**
       * Writes Allure test result bean.
       *
       * @param testResult the given bean to write.
       * @throws AllureResultsWriteException if some error occurs
       *                                     during operation.
       */
      void write(TestResult testResult);
  
      /**
       * Writes Allure test result container bean.
       *
       * @param testResultContainer the given bean to write.
       * @throws AllureResultsWriteException if some error occurs
       *                                     during operation.
       */
      void write(TestResultContainer testResultContainer);
  
      /**
       * Writes given attachment. Will close the given stream.
       *
       * @param source     the file name of the attachment. Make sure that file name
       *                   matches the following glob: <pre>*-attachment*</pre>. The right way
       *                   to generate attachment is generate UUID, determinate attachment
       *                   extension and then use it as <pre>{UUID}-attachment.{ext}</pre>
       * @param attachment the steam that contains attachment body.
       */
      void write(String source, InputStream attachment);
  
  }
  